Wikibooks enwikibooks https://en.wikibooks.org/wiki/Main_Page MediaWiki 1.47.0-wmf.23 first-letter Media Special Talk User User talk Wikibooks Wikibooks talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Cookbook Cookbook talk Transwiki Transwiki talk Wikijunior Wikijunior talk Subject Subject talk TimedText TimedText talk Module Module talk Event Event talk Wikibooks:Requests for deletion 4 385 4675461 4675429 2026-10-10T19:51:22Z Omphalographer 3427146 /* The Permanent Advantage */ Reply 4675461 wikitext text/x-wiki __NEWSECTIONLINK__ [[Category:Wikibooks deletion|{{PAGENAME}}]] {{Discussion Rooms}} {{TOCleft}} {{shortcut|WB:RFD}} {{Requests for deletion/New deletion}} {{Requests for deletion/Deletion intro}} <!-- New deletion nominations go at the bottom of page. --> == [[Salute, Jonathan!]] and its translations == <div style="column-count: 7;"> * [[Salute, Jonathan!|Interlingue/Occidental]] ([[w:en:Occidental|w]], original) * [[Òla, Ionatà!|Audià]] * [[Holo, Jonathan!|Cristianés]] * [[Terve, Jonathan!|Ekumenski]] * [[Hej, Jonathan! (Germanisch)|Germanisch]] * [[Salom, Jonatan!|Globasa]] * [[Àlŏ, Jonathan!|Guosa]] ([[w:en:Guosa|w]]) * [[Salut, Jonathan!|Idiom Neutral]] ([[w:en:Idiom Neutral|w]]) * [[Saluto, Jonathan! (Ido)|Ido]] ([[w:en:Ido|w]]) * [[Hallo, Jonathan!|Interlingua]] ([[w:en:Interlingua|w]]) * [[Salut, Jonathan! (Interocidental)|Interocidental]] * [[Bune Ğonatan!|Lingaust]] * [[Oila, Jonatan!|Lingue Simple]] * [[Haloo, Jonatan!|Lingwa de Planeta]] ([[w:en:Lingwa de Planeta|w]]) * [[Sin Chao, Jonathan!|Masa Tang]] * [[Salut, ionatano!|Meteza]] * [[Salu, Jon!|Mini]] * [[Hay, Jonathan!|Mirad]] * [[Hai, Jon!|Monav]] * [[Sesan Jon!|Monkel]] * [[Salam, Jonathan!|Mundeze]] * [[Dag, Jonathan!|Negerhollands]] ([[w:en:Negerhollands|w]]) * [[Salut Jonathan!|Neo]] ([[w:en:Neo|w]]) * [[Hej, Jonathan!|Nordien]] * [[Saluto, Jonathan!|Novial]] ([[w:en:Novial|w]]) * [[Salute, Jonathan! (Novlingue)|Novlingue]] * [[Alo, Jonathan!|Numo]] * [[Hela, Jonathan!|Proyo]] * [[Salute, Jonathan! (Romanica)|Romanica]] ([[w:en:Romanica|w]]) * [[Simi, Jonathan!|Solresol]] ([[w:en:Solresol|w]]) * [[Toki a, jan Jonatan!|Toki Pona]] ([[w:en:Toki Pona|w]]) * [[Glidis, o Jonathan!|Volapük]] ([[w:en:Volapük|w]]) </div> There are a couple of issues here: # Beyond their introductions, all of these books are written in languages which are not English, making them out of scope for the English Wikibooks. # All but one of these books are in fact written in constructed languages, most of them in recently created conlangs. In some cases (e.g. [[Sin Chao, Jonathan!]]), I can't find any reliable sources describing the target language outside of the translation itself. # Most of the translations (i.e. other than [[Salute, Jonathan!]] itself) were abandoned within the first five or so chapters (out of 100); none of them are complete, and there seems to be little effort to complete any of them. While I recognize that this is an unusual project, and potentially one which could have some value, it's not at all clear to me that the English Wikibooks is the right place for it. — [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:24, 29 September 2024 (UTC) : I'm really not sure what to do about these ones. While I recognize that this approach is certainly one method of teaching a language, I'm not sure that it constitutes an educational textbook. We do require that the English Wikibooks be written in English—for language-learning books, this typically means that the instructional parts are in English while the exercises are in the language being taught. I do think that if the language doesn't have much supporting evidence outside the book itself, it can safely be deleted. — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:01, 29 September 2024 (UTC) : Author of the book here. I originally wanted to put it in the Interlingue Wikibooks https://ie.wikibooks.org/wiki/Principal_p%C3%A1gine but it somehow got locked when I wasn't paying attention and so I ended up putting it here. Getting it unlocked requires going through the process of starting an Incubator and all the rest so I opted for here and then started putting some English-only content once it was done. It's sort of in the same vein as books like Lingua Latina per se Illustrata that have separate versions with teacher notes and whatnot. [[Salute, Jonathan!/Capitul 1 - with notes]] After it was done the auxlang community really took to it which was a nice surprise. I think Ido has the largest number of chapters at the moment at 15. :If the vast content of this book could be used to justify a quick reopening of the Interlingue Wikibooks to move it there, I'd love to do that. I imagine that an incubator with 100+ book chapters would be enough to open a Wikibooks and that's what this is. — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 06:02, 29 September 2024 (UTC) : Ah, I just realized that we do have a proposal to reopen the Interlingue Wikibooks: https://meta.wikimedia.org/wiki/Requests_for_new_languages/Wikibooks_Interlingue along with an Incubator page here. https://incubator.wikimedia.org/wiki/Wb/ie/Principal_p%C3%A1gine : How easy would it be to migrate the entirety of Salute Jonathan to there? — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 06:30, 29 September 2024 (UTC) :: Hi @[[User:Mithridates|Mithridates]]! I'm not sure how incubator projects work, but I fully support migrating these books there. You may want to inquire over there and link to this discussion to support your request to move the content over there. Cheers! — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:16, 29 September 2024 (UTC) ::: Hi! Actually I have a third idea to propose after thinking about this again today (haven't been here much since I finished the book): I noticed that there is more English content than I remember and that might make it an awkward fit for the Interlingue Wikibooks. I definitely agree that having all the auxlang translations for new auxlang projects goes well beyond the scope of this Wikibooks. Finally, there are some auxlangs that are notable with their own Wikipedias. ::: So the idea is the following: :::# Leave the original here and I can continue the work on the version with English notes and grammar. That will make it the same as Lingua Latina per se Illustrata, English by the Nature Method, Athenaze and all the rest. :::# The Interlingua one can move to the Interlingua Wikibooks (maybe Romanica too if they want as it is sort of a dialect of Interlingua). :::# For Ido and Lingua Franca Nova which have a Wikipedia but not a Wikibooks, I'm a little bit unsure...technically they could have their own version like the original one but would require English explanations. I could let them know and see if they are willing to do so and see what they think (work on adding English to the books vs. move the content elsewhere). :::# The rest can move to a Github repo, then be deleted, and the front page of this book can have a single link to the repo. ::: Any thoughts on that? Adding the extra English content will be easy as it is my book and I know it inside and out. ::: Edit: [https://en.wikibooks.org/wiki/Salute,_Jonathan!/Grammar_(pronouns) this page] I just added. — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 13:50, 29 September 2024 (UTC) :::: Thanks for taking the time to consider this! Here are my responses/questions: ::::* Is the original [[Salute, Jonathan!]] (Occidental)? Since that one is quite fleshed out, I agree that if you edit it so the primary language of the book (e.g. headers, instructions, etc) are written in English while leaving the actual story in Occidental, it would be okay and fit in more with instructional language textbooks. ::::* For your points 2 and 3, I'm not sure how those other projects work, so I'll leave it up to them. I'm not quite sure why they would need to move, since in theory they could be revised with English as the language of instruction? Although, they have been left incomplete for a long time. ::::* For your point 4, I have no problem with that. Cheers! — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 16:51, 29 September 2024 (UTC) ::::: Hello again, it's the weekend so I have a bit more time to work on this. I've decided to merge the extra content from the following five chapters since the difference is fairly small and the original chapters should now have this English content. Could you delete these five pages now that they are no longer needed? [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 14:02, 5 October 2024 (UTC) ::::: [[Salute, Jonathan!/Capitul 1 - with notes]] ::::: [[Salute, Jonathan!/Capitul 2 - with notes]] ::::: [[Salute, Jonathan!/Capitul 3 - with notes]] ::::: [[Salute, Jonathan!/Capitul 4 - with notes]] ::::: [[Salute, Jonathan!/Capitul 5 - with notes]] [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 14:02, 5 October 2024 (UTC) :::::: [[File:Yes_check.svg|{{#ifeq:|small|8|15}}px|link=|alt=]] {{#ifeq:|small|<small>|}}'''Done'''{{#ifeq:|small|</small>|}} — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 23:34, 5 October 2024 (UTC) ::::::: Hi again! No luck trying to find a home for the random language translations on other auxlang wikis, can't find one that is actively maintained. ::::::: The thought struck me that maybe I could just put those ones on a sub page of my user page, would that be permitted? If not, I think I'll just stick them somewhere in GitHub and call it a day since none of the people who started the translations seem to care enough to do anything about them. I'd rather not see them outright disappear but since they aren't mine I don't care enough about them to do much more work than copy and paste them somewhere. ::::::: (I would leave the ones in languages with an ISO-639 code and Wikipedia here, of course) — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 14:13, 9 November 2024 (UTC) :::::::: Thank you for checking! I don't personally see an issue with moving them to your user space right now. Cheers — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 17:21, 9 November 2024 (UTC) ::::::::: Thanks a lot! I've started a single page where I will put them all here [[User:Mithridates/SJ]] and will proceed slowly due to lack of time and also to avoid stepping on any toes / asking you to delete too much at a time and possibly deleting the wrong content. ::::::::: For this week I have put the content for the languages Audia, Cristianès, Guosa, Lingaust, Mini, Mirad, and Monav on that page as they all have a single page of content and didn't take much time to move. Please delete those. Once they are gone I will add a note on the main page letting people know where they have gone (in addition to a thank you for their interest in the book! I do love how many people have recognized it as a good source material for teaching a language). — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 04:09, 10 November 2024 (UTC) : {{keep}} the translations for languages that have an article on the English Wikipedia, i.e. Guosa, Idiom Neutral, Ido, Interlingua, Lingwa de Planeta, Negerhollands, Neo, Novial, Occidental, Romanica, Solresol, Toki Pona, and Volapük. : Translations for languages that don't have an article can be kept if they have reliable sources, which I was able to find for the following languages (if you think they are not reliable, please let me know): :* Globasa: [https://www.languagesandnumbers.com/how-to-count-in-globasa/en/globasa/] [https://greyson.conlang.org/2020/01/29/shouting-out-globasa-and-pandunia/] :* Mini: [https://jprogr.github.io/mini] [https://www.omniglot.com/language/phrases/mini.htm] [https://www.languagesandnumbers.com/how-to-count-in-mini/en/mini/] : {{del}} and move to [[User:Mithridates/SJ]] the rest of the translations, i.e. Audià/Audian, Cristianés, Ekumenski, Germanisch, Interocidental, Lingaust, Lingue Simple, Masa Tang, Mirad, Monav, Monkel, Mundeze, Nordien, Novlingue, Numo, Proyo, and Scuian/Meteza. If you can find reliable sources for those languages, please let me know. : In particular, I could not find resources for Audià/Audian and Monav after searching through 15 and 17 pages on Google, respectively. It doesn't help that [[Òla, Ionatà!|their]] [[Hai, Jon!|translations]] don't explain what those languages are and where to find resources for them. This makes contributing to those translations almost impossible until @[[User:Caro de Segeda|Caro de Segeda]] can provide resources to us. It's possible that the resources may have disappared from the Internet, or that those languages were created by Caro de Segeda him/herself. If you can find resources for Audià/Audian and Monav, please let me know. : I'm notifying the primary contributors of the translations: @[[User:Caro de Segeda|Caro de Segeda]], @[[User:Frzzl|Frzzl]], @[[User:Greatscotteh|Greatscotteh]], @[[User:IHateNumbers234|IHateNumbers234]], @[[User:Jayeless2|Jayeless2]], @[[User:Morozof|Morozof]], @[[User:Omnihom|Omnihom]], @[[User:Omoutuazn|Omoutuazn]], @[[User:PovriNaivon|PovriNaivon]], @[[User:Sir Beluga|Sir Beluga]] and @[[User:Tyoyafud|Tyoyafud]]. — [[User:EJPPhilippines|EJPPhilippines]] ([[User talk:EJPPhilippines|discuss]] • [[Special:Contributions/EJPPhilippines|contribs]]) 09:52, 30 June 2025 (UTC) :: Caro de Segeda said on [https://www.reddit.com/r/conlangs/comments/1lcnz9g/comment/n0sc3wx/ Reddit] that Monav was created by him/her and that he/she didn't publish any resources about it other than [[Hai, Jon!]]. With '''zero''' other resources to rely on for contributing to the translation, and the fact that Monav is in [[User:Mithridates/SJ]], [[Hai, Jon!]] should be speedy deleted. — [[User:EJPPhilippines|EJPPhilippines]] ([[User talk:EJPPhilippines|discuss]] • [[Special:Contributions/EJPPhilippines|contribs]]) 01:38, 3 July 2025 (UTC) ::: I've undone the speedy deletion as Caro de Segeda posted a [https://prexins.wordpress.com/2025/07/04/monav/ resource] for Monav. — [[User:EJPPhilippines|EJPPhilippines]] ([[User talk:EJPPhilippines|discuss]] • [[Special:Contributions/EJPPhilippines|contribs]]) 07:18, 4 July 2025 (UTC) :::: You can delete all the ones that I have created myself, I have already moved them to other places. — [[User:Caro de Segeda|Caro de Segeda]] ([[User talk:Caro de Segeda|discuss]] • [[Special:Contributions/Caro de Segeda|contribs]]) 12:39, 5 July 2025 (UTC) {{outdent|::::}}I don't know if this is helpful since it wouldn't apply to most of these, but [[s:mul:]] could hold some of these. — [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|discuss]] • [[Special:Contributions/Arlo Barnes|contribs]]) 09:18, 30 November 2025 (UTC) : I don't think that would be within the scope of that project. I'm not aware of any other situation where Wikisource publishes translations of texts created on Wikimedia projects - that's usually left up to other language editions of the same project. — [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 05:34, 1 December 2025 (UTC) :: In this situation there isn't a separate [[s:ie:]] distinct from Multilingual Wikisource (see [[meta:Wikisource#List of Wikisources]]). In fact, there are very few multilingual wikis in the Wikimedia sphere; while this project ''could'' move to a Miraheze-hosted or similar wiki farm location, I think it would be a missed opportunity. I suppose an [[Interlingue]] book could be started in [[shelf:Constructed languages]] which would have all 100 chapters as an appendix (and likewise for the other languages), but that also seems non-ideal since it requires an English-language text that doesn't currently exist to be created. [[WB:AT]] seems to describe a similar situation to this one and prescribe Wikisource as the solution, and [[WB:SOURCE]] mentions fiction as out-of-scope for Wikibooks (even as in this case, language-educational fiction). [[s:mul:Wikisource:about Wikisource]] simply speaks of source texts and doesn't mention publication requirements, so maybe that is specific to some of the monolingual editions? — [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|discuss]] • [[Special:Contributions/Arlo Barnes|contribs]]) 22:28, 5 December 2025 (UTC) :{{keep}} 100% keep. These books are a core part of language textbooks on Wikibooks and have been for years. Not sure why this is even being debated.--[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 17:55, 16 May 2026 (UTC) ::With all due respect, some of the books included in this nomination (like [[Sin Chao, Jonathan!]]) are written in constructed languages which are not substantially attested anywhere else. I struggle to imagine any educational purpose for such a book. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:12, 17 May 2026 (UTC) == [[International Baccalaureate]] == Not actually a book in and of itself; rather, it is just a compilation of links to other books —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 23:24, 18 October 2024 (UTC) : Could this be salvaged as a shelf? [[User:Pppery|Pppery]] ([[User talk:Pppery|discuss]] • [[Special:Contributions/Pppery|contribs]]) 05:23, 27 January 2025 (UTC) ::Probably, but are the linked books even useful? IB exams change from year to year - sometimes quite dramatically - so an old exam guide is of very limited value. Many of these books were written 10-15 years ago, and some of them (like [[IB French]]) even have comments indicating that they're no longer applicable. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 02:18, 8 December 2025 (UTC) == [[Character List for Baxter&Sagart]] == Seems completely out of scope as an educational book; it's just a list of characters and outlinks —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 23:53, 18 October 2024 (UTC) :Adding [[Character List for Karlgren's GSR]] and [[Character List for Schuessler's CGSR]] for the same reason —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 23:55, 18 October 2024 (UTC) :These three books do make a package and I agree they should be considered together. However, I strongly object to deleting them. They are really extremely useful resources. I use them every week and I know that many people who do work on Old Chinese phonology do so. There are lots of books out there that are lists of characters, these are called dictionaries. For example Axel Schuessler's ABC Etymological Dictionary of Old Chinese, or Pulleyblank's Lexicon of Reconstructed Pronunciation in Early Middle Chinese, Late Middle Chinese, and Early Mandarin. I see it as entirely a good thing for reference works of this kind to be available free online rather than only in expensive books in university research libraries. If this is in violation of a Wikibooks policy, I would at least like that policy to be drawn to my attention and to have some constructive comment offered about which Wikiproject such a resource should fall under. I will also say on a personal note that I have put literally hundreds of hours of work into these projects and it would grieve me a lot to see this work simply vanish, in particular when I know that colleagues around the world use these books. --[[User:Tibetologist|Tibetologist]] ([[User talk:Tibetologist|discuss]] • [[Special:Contributions/Tibetologist|contribs]]) 07:27, 1 November 2024 (UTC) ::Hi @[[User:Tibetologist|Tibetologist]], and thank you for the feedback! Official Wikibooks policy does not permit standalone dictionaries (see [[WB:DICT]]), though I understand the argument that it is a useful resource. I am wondering if there might be a home for it at [[Wiktionary:Wiktionary:Welcome, newcomers|Wiktionary]] or [[Wikiversity:Wikiversity:SHARE|Wikiversity]]? Cheers —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 12:14, 1 November 2024 (UTC) :::The policy says to use Wiktionary, but these books cannot be moved there. In fact they link there, you can understand me as having made an index to wiktionary, if you like, where the ORDER of the characters is extremely important, information that would be lost in Wiktionary. :::Wikiversity is not a project I participate in, and in any event my books here are older than it, so this option was not available for me at the relevant moment. If you are offering to move my books to Wikiversity, that is very kind of you and I will very graciously accept. [[User:Tibetologist|Tibetologist]] ([[User talk:Tibetologist|discuss]] • [[Special:Contributions/Tibetologist|contribs]]) 14:10, 1 November 2024 (UTC) ::::I have pinged over at Wikiversity Colloquium to ask about suitability and have looped you into the conversation over there. Cheers —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 18:20, 1 November 2024 (UTC) ::I concur. I'm just an undergrad who tries to learn about Sino-Tibetan historical linguistics in his free time but I've found this wikibook to be incredibly useful, and I keep it open in one tab while I watch Professor Nathan Hill's lectures that he uploads to youtube in another tab, and another tab for taking notes. In fact if I remember correctly Professor Hill actually pointed his students to this wikibook. ::I'm not familiar with [[wikiversity:Wikiversity:SHARE|Wikiversity]] but if all the content were as accessible there as it is here then I think that could work. [[User:ChromeBones|ChromeBones]] ([[User talk:ChromeBones|discuss]] • [[Special:Contributions/ChromeBones|contribs]]) 02:43, 9 July 2025 (UTC) :Per [[:v:Wikiversity:Colloquium#Import_Resource_From_Wikibooks?]], I recommend copying and pasting, including attribution via the edit summary and talk page, add appropriate categories and links, and then it could be deleted locally. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 22:32, 3 November 2024 (UTC) == [[Suomen kieli käyttöön]] == Multiple pages in this book are written entirely in Finnish, which is out of the enWB scope. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 00:09, 19 October 2024 (UTC) :I was going to say whether we should ask any fiwikibooks sysop to maybe see if this could be transwikied to fiwb if it's within the scope there. But [[:fi:Toiminnot:Käyttäjät/sysop]] indicates that there are only 3 sysops, and only {{u|Anr}} and {{u|Zache}} have made edits this ''year''. If they deem it to be salvageable, then transwiki + delete, otherwise straight-up delete. --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 11:24, 14 November 2024 (UTC) ::It seems that the idea behind the book was for the pages to be bilingual, as it’s a language learning book. That’s why there are Finnish texts included intentionally even on the pages that are complete. There are similar books in dewikibooks and ruwikibooks as well. For the English version, I think the easiest way to proceed would be to clean up and adjust the page layout to fit enwikibooks better, and then translate the missing parts. By the way, if anyone wants to update the book’s name in English, it can be titled ''"Using the Finnish Language"'' or ''"Put Finnish Language into Use"'' for a direct translation. [[User:Zache|Zache]] ([[User talk:Zache|discuss]] • [[Special:Contributions/Zache|contribs]]) 11:57, 14 November 2024 (UTC) == [[AT&T Mobility FAQ]] == * [[AT&T Mobility FAQ]] * [[AT&T Mobility FAQ/MEdia Net Configuration]] * [[AT&T Mobility FAQ/Data Connect Configuration]] An ''extremely'' outdated FAQ on AT&T's cell phone services. Most of this document was written 20+ years ago as a Usenet FAQ; very little of it is accurate or useful anymore (particularly the two subpages, which have to do with obsolete configurations for "tethering" a computer to a cell phone). No objection if someone wants to update it, but there's clearly been no appetite to do that. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:20, 30 December 2024 (UTC) :I'm wondering if it might make sense for us to develop some kind of policy on archiving books here. There are many like this one that have a good deal of content but are extremely out of date and just not useful as originally intended. ——[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 22:34, 30 December 2024 (UTC) ::@[[User:Kittycataclysm|Kittycataclysm]]: See the newly developed [[Wikibooks:Outdated books]]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 00:16, 31 December 2024 (UTC) :::Ooh, thanks - something like that seems like it could be an appropriate way to handle this book. A lot of the other outdated books I've tagged have been so incomplete that they wouldn't have been particularly useful even as historical references; this one might at least have some interest. :::Any chance we can get a separate namespace (maybe "Archive:") set up for archived book content? That'd make it possible to do things like exclude them from on-site search by default. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 21:07, 31 December 2024 (UTC) ::::I think this might be a more extended discussion, so I'll bump it over to the [[Wikibooks talk:Outdated books|talk page of the draft policy]]! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 21:54, 31 December 2024 (UTC) == Algebra/Chapter 10/Symmetric Polynomials == I personally believe that [[Algebra/Chapter 10/Symmetric Polynomials|this]], and all of the sections should be deleted for the fact that this goes WAY beyond the scope of what was intended for the Chapter (Algebra II level polynomials). [[User:GoreyCat|GoreyCat]] ([[User talk:GoreyCat|discuss]] • [[Special:Contributions/GoreyCat|contribs]]) 15:07, 6 February 2025 (UTC) :'''Split''': Deletion here is not the best solution (see [[w:WP:ATD]]). Instead, this page and its subpages should be moved to another book, most likely [[Abstract Algebra]]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:35, 6 February 2025 (UTC) :{{keep}} since there is a good amount of content. If [[Abstract Algebra]] is appropriate, it seems like a fine idea to move there. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 22:59, 7 February 2025 (UTC) ::Eh, yeah, I supposed moving it is better. I just don't think it's suitable for where it appears. [[User:GoreyCat|GoreyCat]] ([[User talk:GoreyCat|discuss]] • [[Special:Contributions/GoreyCat|contribs]]) 01:40, 8 February 2025 (UTC) == [[Puredyne]] == Development of Puredyne Linux was discontinued in 2012, and the software no longer appears to be available for download anywhere. (An archive of the web site is still up - with a bunch of embedded spam links - but the download links are all dead.) Is this a suitable candidate for archival (cf. [[Wikibooks:Outdated books]]), or should it just be deleted? [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 04:35, 5 March 2025 (UTC) :I'd just archive stuff like this. Looks like a decent bit of work went into it, and you never know when someone might need to use Puredyne for some obscure project. I'd be willing to bet mirrors exist of it somewhere, or someone has it on a drive. If you want to find some stuff worth deleting, comb through [[:Category:Allbooks categories]]. [[User:MediaKyle|MediaKyle]] ([[User talk:MediaKyle|discuss]] • [[Special:Contributions/MediaKyle|contribs]]) 11:30, 5 March 2025 (UTC) == [[Template:Qr-twwp]] == This isn't exactly a request to delete the template, but rather to merge it with {{tlx|Copypaste}}. The {{tlx|Qr-twwp}} template serves the same purpose as {{tlx|Copypaste}}, but without the seven-day period after which the page is deleted. This leads to confusion, as well as a perpetually full [[:Category:Queried pages]]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:37, 30 March 2025 (UTC) == [[Ghouls of the Miskatonic]] == I don't think that a plot summary of a book is in-scope here. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 18:43, 20 August 2025 (UTC) :{{vd}} - at least, not a summary of ''this'' book. A summary and/or study guide to a notable work of literature might be in scope, but this is certainly not one. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 21:23, 25 August 2025 (UTC) ::Hi. I am the creator of the pages of this book. If I understand correctly, it has to be a summary of a notable work of literature? So what exactly is defined as such? I only started this as I thought it would be fun, interesting and encouraging to others who read the Arkham Horror novels, and I thought it was permitted as I've seen other summaries of books on wikibooks. [[User:Dayne90|Dayne90]] ([[User talk:Dayne90|discuss]] • [[Special:Contributions/Dayne90|contribs]]) 13:27, 26 August 2025 (UTC) :::Your problem is it is just the plot... it needs to include an educational textual analysis to be in scope [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 12:47, 28 August 2025 (UTC) ::::And ideally it'd be a text which has ''already'' been the subject of literary analysis, such that the analysis on Wikibooks isn't original research. A notable work of literature like ''Frankenstein'' or ''Moby-Dick'' would easily meet that requirement; a tie-in novel for a tabletop RPG probably does not. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:08, 29 August 2025 (UTC) == [[A-level Computing AQA Paper 1 Skeleton program 2027]] == This was proposed for speedy deletion by [[User:Omphalographer]] as 'not being a book'. However, I think this page's future requires further discussion from the community. Maybe some input would be appreciated?[[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 23:51, 21 September 2026 (UTC) :As best I can tell, this is a page students are using to collaborate on solutions for a standardized test. There are a number of similar pages for other years linked from [[A-level Computing/AQA/Paper 1/Skeleton program]]. :This is not a good fit for Wikibooks. If these students are interested in this kind of collaboration, it should take place elsewhere. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:14, 22 September 2026 (UTC) ::The project can be moved to Wikiversity, I think. If the students can contribute it and make sure it complies with Wikibooks' guidelines, it can stay here. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:17, 22 September 2026 (UTC) :::@[[User:Omphalographer|Omphalographer]] @[[User:TechVindicator|TechVindicator]] :::There's been a Wikibook on this every single year, as I mentioned in my comment on the deletion notice. That doesn't mean that this shouldn't be on Wikiversity, just that there is ample precedent of it being a Wikibook. Dunno if this matter to those kind of editorial decisions, though. [[Special:Contributions/~2026-51010-27|~2026-51010-27]] ([[User talk:~2026-51010-27|talk]]) 13:39, 22 September 2026 (UTC) ::::@[[User:~2026-51010-27|~2026-51010-27]]: How would the page comply with [[WB:What is Wikibooks?|Wikibooks' mission]]?. Could you provide an explanation of what the project is? If it's a collaborative project to work on solutions for a standardized test (like @[[User:Omphalographer|Omphalographer]] said), it would be more suitable for Wikiversity. If it's a textbook about A-level computing, then it would be suitable here. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:58, 22 September 2026 (UTC) :::::Hi, :::::This is definitely the former, not the latter. As I said, I don't particularly think this should be on Wikibooks, it just happens the previous years had been, and clearly they weren't subject to this degree of scrutiny 😅 :::::I have created https://en.wikiversity.org/wiki/A-level_Computer_Science_AQA_Paper_1_Skeleton_program_2027 - I'll delete the content of the page and put the link at the top. If there is a more appropriate banner to indicate the migration, please make it look how it should :D [[User:MrBerard|MrBerard]] ([[User talk:MrBerard|discuss]] • [[Special:Contributions/MrBerard|contribs]]) 10:23, 29 September 2026 (UTC) ::::::I can't seem to put a link without the edit being deemed destructive, so I'll let you trusted people do what's needed. [[User:MrBerard|MrBerard]] ([[User talk:MrBerard|discuss]] • [[Special:Contributions/MrBerard|contribs]]) 10:27, 29 September 2026 (UTC) == [[Talmudic aramic]] == Per the user's other mass-created pages, I concur with the AI flagging that Kittycataclysm placed on the page. I believe this to be LLM-generated, and it should thus be deleted. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 03:29, 30 September 2026 (UTC) :{{vd}}, LLM spam. [[User:Ternera|Ternera]] ([[User talk:Ternera|discuss]] • [[Special:Contributions/Ternera|contribs]]) 13:22, 30 September 2026 (UTC) :{{vd}} - like most LLM-generated books, this is heavy on structure and light on substance. Most of the content amounts to a poorly organized glossary, and there are a lot of pieces missing. (For instance, there is no discussion of the grammar of the language beyond a couple of fixed expressions.) [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:11, 1 October 2026 (UTC) == [[Job Search]] == * as well as [[Job Search Automation for College Students]]. Neither of these books contains any useful information. The first book seems to be written primarily to funnel users to the second, and the second to funnel users to [[PlanoTse Handbook for Job Search Automation]], which was deleted last year. (The deletion request doesn't seem to have been archived.) The sum total of information in these two books is, essentially, "you can search for jobs online", which is insultingly trivial. The second book's suggestion that users automate the job search process is of no practical value; most web search engines and job search sites nowadays will detect and block automated access. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:36, 1 October 2026 (UTC) : {{vd}} and redirect to [[Find Employment]]. ‑‑[[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|discuss]] • [[Special:Contributions/Kai Burghardt|contribs]]) 05:14, 2 October 2026 (UTC) == [[Wikipage]] == Like a few other books created by this user, the purpose of this book appears to have been to promote a piece of software written by the author ([[User:Planotse]]). The software is no longer available, and there is no actual content in the book. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:40, 1 October 2026 (UTC) == [[Becoming a Linguistic Mastermind]] == Old book (created 2007) with no substantial content. The intent of this book appears to have been to create a single textbook encompassing ''all'' languages, with sub-courses for each language at [[Becoming a Linguistic Mastermind/The courses]], but no such courses were ever created. An analogous project on dewikibooks [[:b:de:Wikibooks:Löschkandidaten/ 2011-04#Der einfache Weg zum Sprachgenie|was deleted in 2011 for similar reasons]]. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 21:20, 7 October 2026 (UTC) == [[The Permanent Advantage]] == Probably LLM-generated, given broken templates, references to Claude, and section identifiers. This could probably be speedied, but not 100% sure so throwing it to RfD. Even regardless of whether it's LLM-generated or not, I can't see any way it's really suitable for the project. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 07:49, 10 October 2026 (UTC) :{{vd}} - a book ''about'' chess problems isn't necessarily out of scope, but there needs to be some written content to accompany the problems. And I'm not sure these are even meaningful problems - the few problems with viewable Lichess links appear to be in the early game, so there aren't necessarily objective "solutions" to them. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:51, 10 October 2026 (UTC) lrjgdu4dx175w1cn9179t7nzutaxftn US History/Pre-Columbian 0 1637 4675470 4620712 2026-10-10T22:22:29Z Classclown18 3503220 verb tense 4675470 wikitext text/x-wiki [[File:Kincaid Mounds Site aerial illustration HRoe 2019.jpg|thumb|Artist depiction of the Kincaid Mounds Site in the Pre-Columbian era.]] Human civilization in the Americas probably began in the last ice age, when prehistoric hunters crossed a land bridge between the Asian and North American continents.<ref>{{cite news |last1=Gerszak |first1=Fen Montaigne,Jennie Rothenberg Gritz,Rafal |title=The Story of How Humans Came to the Americas Is Constantly Evolving |url=https://www.smithsonianmag.com/science-nature/how-humans-came-to-americas-180973739/ |access-date=26 December 2020 |work=Smithsonian Magazine |language=en}}</ref> Civilizations in North America, Central America, and South America had different levels of complexity, technology, and cohesiveness. Some of the most powerful and organized societies occurred in South and Central America. These cultures developed writing, allowing them to spread and dominate. They created some of the largest cities in the Ancient world. North American cultures were more fragmented and less unified. The tribe was often the major social unit, with exchanges between tribes creating similar societies over vast distances. Tribal dwellings as large as European towns flourished in the rugged desert of southwestern North America. European-descended historians have difficulty referring to these cultures as a whole, as the native people did not have a unified name for themselves. At first, Europeans called natives "Indians". This term came from the belief by Christopher Columbus that he had discovered a new passage to India.<ref name="indianname">{{cite web |title=American Indians and Native Americans |url=https://www.umass.edu/legal/derrico/shoshone/indian.html |website=www.umass.edu |accessdate=23 September 2020}}</ref> Despite Amerigo Vespucci ascertaining that the Americas were not actually India, Indian continued to be used as the 'de facto' name for native inhabitants until around 1960.<ref name="indianname"/> Starting in the 1960s, the term "Native American" was used. Yet this term may be too problematic: The name America derives from Amerigo Vespucci, an Italian who had little to do with the native people.<ref name="indianname"/> There is also "American Indian". This is too general a term for a group having little in common other than skin tone and non-European language. In Canada, the term "First People" is used. All these terms for the native people of America show just how diverse Pre-Columbian America was and the disagreement continues among scholars today about this period. ==Early Inhabitants of the Americas== ===Bering Land Bridge=== [[Image:Map of gene flow in and out of Beringia.jpg|thumb|upright|A map depicting the crossing of the people into the Americas from Asia.]] American history does not begin with Columbus's 1492 arrival. The Americas were settled long before the first European arrived.<ref name="landbridge">{{cite web |title=Migration of Humans into the Americas (c. 14,000 BCE) |url=https://www.science.smith.edu/climatelit/migration-of-humans-into-north-america/ |website=Climate Across Curriculum |accessdate=23 September 2020}}</ref> Civilization began during the last ice age, some 15 to 40 thousand years ago.<ref name="landbridge"/> Huge ice sheets covered the north, so sea levels were much lower, creating a land bridge between Asia and North America.<ref name="landbridge"/> This was the Bering land bridge, a gap in two large ice sheets creating a connection from lands near present day Alaska, through Alberta, and into the continental United States.<ref name="landbridge"/> Nomadic Asians following herds of wild game traveled into the continental United States. A characteristic arrow point was found and first described near the present day town of Clovis, NM. Specialized tools and common burial practices are seen in many archaeological sites through North America and into South America. ===Clovis People=== The '''Clovis people''' are one of North America's earliest civilizations. It is not clear if the finds represent one unified tribe, or many tribes with a common technology and belief. Their trek across 2000 rugged miles is one of the great feats of pre-history. Their culture disappears dramatically from the archaeological record 12,900 years ago, with widespread speculation about what caused their disappearance. Theories range from the extinction of the mammoth, to sudden environmental changes caused by a comet, to flooding caused by the break of a massive freshwater lake, Lake Agassiz. There is controversy about Pre-Clovis settlement of North and South America. Comparisons of culture and linguistics offer evidence of the influence of early America by several different contemporary cultures. Some genetic and time-dating studies point to the possibility that ancient Americans came from other places and arrived earlier than at the Clovis sites in North America. Perhaps some ancient settlers to the hemisphere traveled by boat along the seashore, or arrived by boats from the Polynesian islands. As time went on, many of these first settlers settled down into agricultural societies, complete with domesticated animals. Groups of people formed stable tribes and developed distinct languages of their own, to the point that more distant relatives could no longer understand them. Comparative linguistics -- the study of languages of different tribes -- shows fascinating diversity, with similarities between tribes hundreds of miles apart, yet startling differences with neighboring groups. At times, tribes would gain regional importance and dominate large areas of America. Empires rose across the Americas that rivaled the greatest ones in Europe. For their time, some of these empires were highly advanced. ==Early Empires of Mesoamerica== Meso-American civilizations were among of the most powerful and advanced civilizations of the ancient world. Reading and writing were widespread throughout Meso-America, and these civilizations achieved impressive political, artistic, scientific, agricultural, and architectural accomplishments. Many of these civilizations gathered the political and technological resources to build some of the largest, most ornate, and highly populated cities in the ancient world. ===Maya=== [[File:Dintel 26 de Yachilán 3.jpg|thumb|The Mayans were a sophisticated civilization, who had great skill in the arts.]] The aboriginal Americans settled in the Yucatan peninsulas of present-day Mexico around 10,000 BCE. By 2000 BCE, the '''Mayan''' culture had evolved into a complex civilization. The Mayans developed a strong political, artistic and religious identity among the highly populated Yucatan lowlands. The classic period (250-900 CE) witnessed a rapid growth of the Mayan culture and it gained dominance within the region and influence throughout present-day Mexico. Large, independent city-states were founded and became the political, religious, and cultural centers for the Mayan people. Mayan society was unified not by politics, but by their complex and highly-developed religion. Mayan religion was astrologically based, and supported by careful observations of the sky. The Mayans had a strong grasp of astronomy that rivaled, and, in many ways, exceeded that of concurrent European societies. They developed a very sophisticated system for measuring time, and had a great awareness of the movements in the nighttime sky. Particular significance was attached to the planet Venus, which was particularly bright and appeared in both the late evening and early morning sky. Mayan art is also considered one of the most sophisticated and beautiful of the ancient New World. The Mayan culture saw a decline during the 8th and 9th century. Although its causes are still the subject of intense scientific speculation, archaeologists see a definite cessation of inscriptions and architectural construction. The Mayan culture continued as a regional power until its discovery by Spanish conquistadors. In fact, an independent, non-centralized government allowed the Mayans to strongly resist the Spanish conquest of present-day Mexico. Mayan culture is preserved today throughout the Yucatan, although many of the inscriptions have been lost. ===Aztec=== [[File:1479 Stein der fünften Sonne, sog. Aztekenkalender, Ollin Tonatiuh anagoria.JPG|thumb|An Aztec calendar stone]] The '''Aztec''' culture began with the migration of the Mexica people to present-day central Mexico. The leaders of this group of people created an alliance with the dominant tribes forming the Aztec triple alliance, and created an empire that influenced much of present-day Mexico. The Aztec confederacy began a campaign of conquest and assimilation. Outlying lands were inducted into the empire and became part of the complex Aztec society. Local leaders could gain prestige by adopting and adding to the culture of the Aztec civilization. The Aztecs, in turn, adopted cultural, artistic, and astronomical innovations from its conquered people. The heart of Aztec power was economic unity. Conquered lands paid tribute to the capital city Tenochtitlan, the present-day site of Mexico City. Rich in tribute, this capital grew in influence, size, and population. When the Spanish arrived in 1521, it was the fourth largest city in the world (including the once independent city Tlatelolco, which was by then a residential suburb) with an estimated population of 212,500 people. It contained the massive Temple de Mayo (a twin-towered pyramid 197 feet tall), 45 public buildings, a palace, two zoos, a botanical garden, and many houses. Surrounding the city and floating on the shallow flats of Lake Texcoco were enormous ''chinampas'' -- floating garden beds that fed the many thousands of residents of Tenochtitlan. While many Meso-American civilizations practiced human sacrifice, none performed it to the scale of the Aztecs. To the Aztecs, human sacrifice was a necessary appeasement to the gods. According to their own records, one of the largest slaughters ever performed happened when the great pyramid of Tenochtitlan was reconsecrated in 1487. The Aztecs reported that they had sacrificed 84,400 prisoners over the course of four days. With their arrival at Tenochtitlan, the Spanish would be the downfall of Aztec culture. Although shocked and impressed by the scale of Tenochtitlan, the display of massive human sacrifice offended European sensitivity, and the abundant displays of gold and silver inflamed their greed. The Spanish killed the reigning ruler, Montezuma in June 1520 and lay siege to the city, destroying it in 1521, aided by their alliance with a competing tribe, the Tlaxcala. ===Inca=== [[Image:Peru_Machu_Picchu_Sunrise.jpg|thumb|upright|Machu Picchu, the "Lost city of the Incas".]] With the ascension of Manco Capac to emperor of a tribe in the Cuzco area of what is modern-day Peru around 1200 BCE, the '''Incan''' civilization emerged as the largest Pre-Columbian empire in the Americas. Religion was significant in Inca life. The royal family were believed to be descendants of the Inca Sun God. Thus, the emperor had absolute authority, checked only by tradition. Under the emperors, a complex political structure was apparent. The Incan emperor, regional and village leaders, and others were part of an enormous bureaucracy. For every ten people, there was, on average, one official. The organization of the Empire also included a complex transportation infrastructure. To communicate across the entire empire, runners ran from village to village, relaying royal messages. In 1438, the ambitious Pachacuti, likely the greatest of the Incan emperors, came to the throne. Pachacuti rebuilt much of the capital city, Cuzco, and the Temple of the Sun. The success of Pachacuti was based upon his brilliant talent for military command (he is sometimes referred to as the "Napoleon of the Andes") and an amazing political campaign of integration. Leaders of regions that he wanted to conquer were bribed with luxury goods and enticed by promises of privilege and importance. As well, the Incans had developed a prestigious educational system which, not incidentally, just happened to extol the benefits of Incan civilization. Thus, much of the expansion throughout South America was peaceful. At its height of power in the late 15th century, Incan civilization had conquered a vast patchwork of languages, people and cultures from present-day Ecuador, along the whole length of South America, to present-day Argentina.Cuzco, the capital city, was said by the Spanish to be "as fine as any city in Spain". Perhaps the most impressive city of the Incan empire, though, was not its capital, Cuzco, but the city Machu Picchu. This mountain retreat was built high in the Andes and is sometimes called the "Lost City of the Incas." It was intended as a mountain retreat for the leaders of the Incan empire and demonstrates great artistry -- the abundant dry stone walls were entirely built without mortar, and the blocks were cut so carefully that one can't insert a knife-blade between them. The Spanish discovered the Inca during a civil war of succession and enjoyed great military superiority over the slow siege warfare that the Incan empire had employed against its enemies. Fueled by greed at the opportunity to plunder another rich civilization, they conquered and executed the Incan emperor. The Incan empire fell quickly in 1533, but a small resistance force fled to the mountains, waging a guerrilla war of resistance for another 39 years. ===Meso-American Empires=== The Meso-American Empires were undoubtedly the most powerful and unified civilizations in the new world. Writings were common in Meso-America and allowed these cultures to spread in power and influence with far more ease than their counterparts in north America. Each of these civilizations built impressive urban areas and had a complex culture. They were as 'civilized' as the Spanish who conquered them in the 15th and 16th centuries. ==Early Empires of the Southwest== Native Americans adapted the arid desert southwest. A period of relatively wet conditions saw many cultures in the area flourish. Extensive irrigation was developed that were among the biggest of the ancient world. Elaborate adobe and sandstone buildings were constructed. Highly ornamental and artistic pottery was created. The unusual weather conditions could not continue forever, though, and gave way, in time, to the more common drought of the area. These dry conditions necessitated a more minimal way of life and, eventually, the elaborate accomplishments of these cultures were abandoned. ===Ancestral Puebloans=== [[File:Mesaverde cliffpalace 20030914.752.jpg|thumb|Cliff Palace, a structure of the Ancestral Puebloans.]] One prominent group were the '''Ancestral Puebloans''', who lived in the present day Northeastern Arizona and surrounding areas. The geography of this area is that of a flat arid, desert plain, surrounded by small areas of high plateau, called mesas. Softer rock layers within the mesas eroded to form steep canyons and overhangs along their slopes. The Ancestral Puebloans culture used these cave-like overhangs in the side of steep mesas as shelter from the brief, fierce southwestern storms. They also found natural seeps and diverted small streams of snow melt into small plots of maize, squash and beans. Small seasonal rivers formed beds of natural clays and dried mud. The Ancestral Puebloans used hardened dry mud, called adobe, along with sandstone, to form intricate buildings that were sometimes found high in the natural overhangs of the mesas. The Ancestral Puebloans were also skilled at forming the natural clays into pottery. Between 900 - 1130 CE a period of relatively wet conditions allowed the Ancestral Puebloans to flourish. Traditional architecture was perfected, pottery became intricate and artistic, turkeys were domesticated, and trade over long distances influenced the entire region. Following this golden period was the 300 year drought called Great Drought. The Ancestral Puebloan culture was stressed and erupted into warfare. Scientists once believed the entire people vanished, possibly moving great distances to avoid the arid desert. New research suggests that the Ancestral Puebloans dispersed; abandoning the intricate buildings and moving towards smaller settlements to utilize the limited water that existed. ===Hohokam=== [[File:CasaGrandeRuin.jpg|thumb|Casa Grande Ruins, sheltered by a modern roof.]] Bordering the Ancestral Puebloan culture in the north, a separate civilization emerged in southern Arizona, called the '''Hohokam'''. While many native Americans in the southwest used water irrigation on a limited scale, it was the Hohokam culture that perfected the technology (all without the benefit of modern powered excavating tools). The ability to divert water into small agricultural plots meant that the Hohokam could live in large agricultural communities of relatively high population density. This was particularly true in the Gila River valley, where the Gila River was diverted in many places to irrigate large fertile plains and numerous compact towns. The bigger towns had a 'Great House' at their centers, which was a large Adobe/stone structure. Some of these structures were four stories in size and probably were used by the managerial or religious elites. Smaller excavation or pits were enclosed by adobe walls and used as primary residences. Smaller pit rooms and pits were used for many different functions. The successful use of irrigation is evident in the extensive Casa Grande village. Situated between two primary canals, the Casa Grande site has been the focus of nearly 9 decades of archaeological work. The original town was built around a Great House and incorporated open courtyards and circular plazas. By the 10th century neighboring settlements had been built to accommodate a large, highly developed region. The scale of this community can be seen in the results of one excavation of part of it in 1997. The project identified 247 pit houses, 27 pit rooms, 866 pits, 11 small canals, a ball court, and portions of four adobe walled compounds. The Hohokam culture disintegrated when they had difficulty maintaining the canals in the dry conditions of the drought. Small blockages or collapses of the canal would choke the intricate irrigation networks. Large towns and extensive irrigation canals were abandoned. The people gave up their cultural way of life and dispersed into neighboring tribes. ==Early Empires of the Mississippi== [[File:Serpent Mound (aerial view).jpg|thumb|upright|The Great Serpent Mount]] Native Americans in the Eastern Continental United States developed mound-building cultures early in North American History. Groups of native Americans became more stratified as time went on and developed into tribes. These tribes participated in long networks of trade and cultural exchanges. The importance of trade routes developed urban cities of great influence. The mound-building people were one of the earliest civilizations to emerge in North America. Beginning around 1000 BCE cultures developed that used mounds for religious and burial purposes. These mound-building people are categorized by a series of cultures that describe distinctive artwork and artifacts found in large areas throughout the present-day eastern United States. The burial mound was the principle characteristic of all of these societies. These large structures were built by piling baskets of carefully selected earth into a mound. Mounds were pyramid shaped with truncated tops. Sometimes small buildings were built on top of them. Some of these mounds were quite large. The Grave Creek Mound, in the panhandle of present day West Virginia, is nearly 70 feet tall and 300 feet in diameter. Other mounds have even been shown to be oriented in a way that allows for astronomical alignments such as solstices and equinoxes. Mound building cultures spread out in size and importance. The first culture, the '''Adena''', lived in present-day Southern Ohio and the surrounding areas. The succeeding cultures united to create an impressive trade system that allowed each culture to influence the other. The '''Hopewell''' exchange included groups of people throughout the continental Eastern United States. There began to be considerable social stratification within these people. This organization predates the emergence of the tribe as a socio-political group of people that would dominate later eastern and western native American civilization. The climax of this civilization was the '''Mississippian''' culture. The mound-building cultures had progressed to social complexity comparable to Post-Roman, Pre-Consolidation Tribal England. Mounds became numerous and some settlements had large complexes of them. Structures were frequently built on top of the mounds. Institutional social inequalities existed, such as slavery and human sacrifice. Cahokia, near the important trade routes of the Mississippi and Missouri rivers, became an influential and highly developed community. Extensive trade networks extended from the Great Lakes to the Gulf of Mexico. Cahokia was one of the great centers of Mississippian culture and its largest settlement of Mississippi. The focal point of the settlement was the ceremonial mound called Monk's Mound. Monk's Mound was the largest mound ever constructed by mound-building people and was nearly 100 feet tall and 900 feet long. Excavation on the top of Monk's Mound has revealed evidence of a large building - perhaps a temple - that could be seen throughout the city. The city was spread out on a large plain south of Monks mound. [[Image:Monks Mound in July.JPG|thumb|Monk's Mound located at the Cahokia site near Collinsville, Illinois.]] The city proper contained 120 mounds at varying distances from the city center. The mounds were divided into several different types, each of which may have had its own meaning and function. A circle of posts immediate to Monk's Mound marked a great variety of astronomical alignments. The city was surrounded by a series of watchtowers and occupied a diamond shape pattern that was nearly 5 miles across. At its best, the city may have contained as many as 40,000 people, making it the largest in North America. It is likely the Mississippian culture was dispersed by the onslaught of viral diseases, such as smallpox, which were brought by European explorers. Urban areas were particularly vulnerable to these diseases, and Cahokia was abandoned in the 1500's. The dispersal of tribes made it impractical to build or maintain mounds and many were found abandoned by European explorers. ==Contact with European Culture== ===Epidemics=== [[File:Acuna-Soto EID-v8n4p360 Fig1.png|thumb|Graph of the population population of Mexico, with major epidemics marked.]] European contact brought immediate changes in many tribes of North America. One of the most significant changes to all Indian tribes was the introduction of viral diseases and epidemics.<ref>{{cite web |title=Conclusion :: U.S. History |url=https://www.dhr.history.vt.edu/modules/us/mod01_pop/conclusion.html |website=www.dhr.history.vt.edu |access-date=26 December 2020}}</ref><ref>{{cite news |title=Columbian Exchange |url=https://cla.umn.edu/ihrc/news-events/other/columbian-exchange |access-date=26 December 2020 |work=Immigration History Research Center College of Liberal Arts |date=16 June 2015 |language=en}}</ref> Smallpox was probably the single biggest scourge to hit North America. Infected contagious Indians spread the plague far inland almost immediately after early encounters with European settlers. It is estimated that around 90% of all Native Americans died from diseases soon after first contact.<ref>{{cite web |title=Guns Germs & Steel: Variables. Smallpox PBS |url=https://www.pbs.org/gunsgermssteel/variables/smallpox.html |website=www.pbs.org |access-date=26 December 2020}}</ref> The effects traumatized many powerful and important cultures. Urban areas were particularly vulnerable and Native American culture adapted by becoming more isolated, less unified, and with a renewed round of inter-tribal warfare as tribes seized the opportunity to gain resources once owned by rivals. ===Columbian Exchange=== On the other hand, Europeans brought invasive plants and animals.<ref>{{cite web |title=APWG: Background Information |url=https://cybercemetery.unt.edu/archive/nisic/20110630090151/http://www.nps.gov/plants/alien/bkgd.htm |website=cybercemetery.unt.edu |access-date=26 December 2020}}</ref><ref>{{cite news |title=Escape of the invasives: Top six invasive plant species in the United States |url=https://www.si.edu/stories/escape-invasives |access-date=26 December 2020 |work=Smithsonian Institution |language=en}}</ref> The horse was re-introduced to America<ref>{{cite web |title=History of Horses in America |url=https://www.belrea.edu/a-history-of-horses-in-america/ |website=www.belrea.edu |access-date=26 December 2020}}</ref> (as original paleo-American populations of wild horses from the Bering land bridge were extinct) and quickly adapted to free range on the sprawling great plains. Tribes of nomadic Native Americans were quick to see the horse's value as an increase in their mobility;<ref>{{cite web |title=Wealth & Status A Song for the Horse Nation - October 29, 2011 through January 7, 2013 - The National Museum of the American Indian - Washington, D.C. |url=https://americanindian.si.edu/static/exhibitions/horsenation/wealth.html |website=americanindian.si.edu |access-date=26 December 2020}}</ref> allowing them to better adapt to changing conditions and as a valuable asset in warfare.<ref>{{cite web |title=Warfare A Song for the Horse Nation - October 29, 2011 through January 7, 2013 - The National Museum of the American Indian - Washington, D.C. |url=https://americanindian.si.edu/static/exhibitions/horsenation/warfare.html |website=americanindian.si.edu |access-date=26 December 2020}}</ref> Along with Europeans bringing plants and animals, the Europeans were able to take several plants such as corn, potatoes, and tomatoes back to their native countries.<ref>{{cite web |title=Columbian Exchange (1492-1800) |url=https://mypages.unh.edu/hoslac/book/columbian-exchange-1492-1800 |access-date=26 December 2020 |language=en}}</ref> == Review Questions == 1. Give two names for the indigenous peoples living in America, and name the circumstances behind each name. 2. What evidence do we have for the Inca, Mayan, and Aztec cultures? 3. What in the climate contributed to the rise and fall of the indigenous peoples of South-West North America? == References == {{Reflist}} {{status|100%}} {{BookCat}} {{chapnav|America|European History}} ir94ilm9fjd1p7oogeomcsztr33mny9 4675471 4675470 2026-10-10T22:23:10Z Classclown18 3503220 /* Early Empires of Mesoamerica */ 4675471 wikitext text/x-wiki [[File:Kincaid Mounds Site aerial illustration HRoe 2019.jpg|thumb|Artist depiction of the Kincaid Mounds Site in the Pre-Columbian era.]] Human civilization in the Americas probably began in the last ice age, when prehistoric hunters crossed a land bridge between the Asian and North American continents.<ref>{{cite news |last1=Gerszak |first1=Fen Montaigne,Jennie Rothenberg Gritz,Rafal |title=The Story of How Humans Came to the Americas Is Constantly Evolving |url=https://www.smithsonianmag.com/science-nature/how-humans-came-to-americas-180973739/ |access-date=26 December 2020 |work=Smithsonian Magazine |language=en}}</ref> Civilizations in North America, Central America, and South America had different levels of complexity, technology, and cohesiveness. Some of the most powerful and organized societies occurred in South and Central America. These cultures developed writing, allowing them to spread and dominate. They created some of the largest cities in the Ancient world. North American cultures were more fragmented and less unified. The tribe was often the major social unit, with exchanges between tribes creating similar societies over vast distances. Tribal dwellings as large as European towns flourished in the rugged desert of southwestern North America. European-descended historians have difficulty referring to these cultures as a whole, as the native people did not have a unified name for themselves. At first, Europeans called natives "Indians". This term came from the belief by Christopher Columbus that he had discovered a new passage to India.<ref name="indianname">{{cite web |title=American Indians and Native Americans |url=https://www.umass.edu/legal/derrico/shoshone/indian.html |website=www.umass.edu |accessdate=23 September 2020}}</ref> Despite Amerigo Vespucci ascertaining that the Americas were not actually India, Indian continued to be used as the 'de facto' name for native inhabitants until around 1960.<ref name="indianname"/> Starting in the 1960s, the term "Native American" was used. Yet this term may be too problematic: The name America derives from Amerigo Vespucci, an Italian who had little to do with the native people.<ref name="indianname"/> There is also "American Indian". This is too general a term for a group having little in common other than skin tone and non-European language. In Canada, the term "First People" is used. All these terms for the native people of America show just how diverse Pre-Columbian America was and the disagreement continues among scholars today about this period. ==Early Inhabitants of the Americas== ===Bering Land Bridge=== [[Image:Map of gene flow in and out of Beringia.jpg|thumb|upright|A map depicting the crossing of the people into the Americas from Asia.]] American history does not begin with Columbus's 1492 arrival. The Americas were settled long before the first European arrived.<ref name="landbridge">{{cite web |title=Migration of Humans into the Americas (c. 14,000 BCE) |url=https://www.science.smith.edu/climatelit/migration-of-humans-into-north-america/ |website=Climate Across Curriculum |accessdate=23 September 2020}}</ref> Civilization began during the last ice age, some 15 to 40 thousand years ago.<ref name="landbridge"/> Huge ice sheets covered the north, so sea levels were much lower, creating a land bridge between Asia and North America.<ref name="landbridge"/> This was the Bering land bridge, a gap in two large ice sheets creating a connection from lands near present day Alaska, through Alberta, and into the continental United States.<ref name="landbridge"/> Nomadic Asians following herds of wild game traveled into the continental United States. A characteristic arrow point was found and first described near the present day town of Clovis, NM. Specialized tools and common burial practices are seen in many archaeological sites through North America and into South America. ===Clovis People=== The '''Clovis people''' are one of North America's earliest civilizations. It is not clear if the finds represent one unified tribe, or many tribes with a common technology and belief. Their trek across 2000 rugged miles is one of the great feats of pre-history. Their culture disappears dramatically from the archaeological record 12,900 years ago, with widespread speculation about what caused their disappearance. Theories range from the extinction of the mammoth, to sudden environmental changes caused by a comet, to flooding caused by the break of a massive freshwater lake, Lake Agassiz. There is controversy about Pre-Clovis settlement of North and South America. Comparisons of culture and linguistics offer evidence of the influence of early America by several different contemporary cultures. Some genetic and time-dating studies point to the possibility that ancient Americans came from other places and arrived earlier than at the Clovis sites in North America. Perhaps some ancient settlers to the hemisphere traveled by boat along the seashore, or arrived by boats from the Polynesian islands. As time went on, many of these first settlers settled down into agricultural societies, complete with domesticated animals. Groups of people formed stable tribes and developed distinct languages of their own, to the point that more distant relatives could no longer understand them. Comparative linguistics -- the study of languages of different tribes -- shows fascinating diversity, with similarities between tribes hundreds of miles apart, yet startling differences with neighboring groups. At times, tribes would gain regional importance and dominate large areas of America. Empires rose across the Americas that rivaled the greatest ones in Europe. For their time, some of these empires were highly advanced. ==Early Empires of Mesoamerica== Meso-American civilizations were among the most powerful and advanced civilizations of the ancient world. Reading and writing were widespread throughout Meso-America, and these civilizations achieved impressive political, artistic, scientific, agricultural, and architectural accomplishments. Many of these civilizations gathered the political and technological resources to build some of the largest, most ornate, and highly populated cities in the ancient world. ===Maya=== [[File:Dintel 26 de Yachilán 3.jpg|thumb|The Mayans were a sophisticated civilization, who had great skill in the arts.]] The aboriginal Americans settled in the Yucatan peninsulas of present-day Mexico around 10,000 BCE. By 2000 BCE, the '''Mayan''' culture had evolved into a complex civilization. The Mayans developed a strong political, artistic and religious identity among the highly populated Yucatan lowlands. The classic period (250-900 CE) witnessed a rapid growth of the Mayan culture and it gained dominance within the region and influence throughout present-day Mexico. Large, independent city-states were founded and became the political, religious, and cultural centers for the Mayan people. Mayan society was unified not by politics, but by their complex and highly-developed religion. Mayan religion was astrologically based, and supported by careful observations of the sky. The Mayans had a strong grasp of astronomy that rivaled, and, in many ways, exceeded that of concurrent European societies. They developed a very sophisticated system for measuring time, and had a great awareness of the movements in the nighttime sky. Particular significance was attached to the planet Venus, which was particularly bright and appeared in both the late evening and early morning sky. Mayan art is also considered one of the most sophisticated and beautiful of the ancient New World. The Mayan culture saw a decline during the 8th and 9th century. Although its causes are still the subject of intense scientific speculation, archaeologists see a definite cessation of inscriptions and architectural construction. The Mayan culture continued as a regional power until its discovery by Spanish conquistadors. In fact, an independent, non-centralized government allowed the Mayans to strongly resist the Spanish conquest of present-day Mexico. Mayan culture is preserved today throughout the Yucatan, although many of the inscriptions have been lost. ===Aztec=== [[File:1479 Stein der fünften Sonne, sog. Aztekenkalender, Ollin Tonatiuh anagoria.JPG|thumb|An Aztec calendar stone]] The '''Aztec''' culture began with the migration of the Mexica people to present-day central Mexico. The leaders of this group of people created an alliance with the dominant tribes forming the Aztec triple alliance, and created an empire that influenced much of present-day Mexico. The Aztec confederacy began a campaign of conquest and assimilation. Outlying lands were inducted into the empire and became part of the complex Aztec society. Local leaders could gain prestige by adopting and adding to the culture of the Aztec civilization. The Aztecs, in turn, adopted cultural, artistic, and astronomical innovations from its conquered people. The heart of Aztec power was economic unity. Conquered lands paid tribute to the capital city Tenochtitlan, the present-day site of Mexico City. Rich in tribute, this capital grew in influence, size, and population. When the Spanish arrived in 1521, it was the fourth largest city in the world (including the once independent city Tlatelolco, which was by then a residential suburb) with an estimated population of 212,500 people. It contained the massive Temple de Mayo (a twin-towered pyramid 197 feet tall), 45 public buildings, a palace, two zoos, a botanical garden, and many houses. Surrounding the city and floating on the shallow flats of Lake Texcoco were enormous ''chinampas'' -- floating garden beds that fed the many thousands of residents of Tenochtitlan. While many Meso-American civilizations practiced human sacrifice, none performed it to the scale of the Aztecs. To the Aztecs, human sacrifice was a necessary appeasement to the gods. According to their own records, one of the largest slaughters ever performed happened when the great pyramid of Tenochtitlan was reconsecrated in 1487. The Aztecs reported that they had sacrificed 84,400 prisoners over the course of four days. With their arrival at Tenochtitlan, the Spanish would be the downfall of Aztec culture. Although shocked and impressed by the scale of Tenochtitlan, the display of massive human sacrifice offended European sensitivity, and the abundant displays of gold and silver inflamed their greed. The Spanish killed the reigning ruler, Montezuma in June 1520 and lay siege to the city, destroying it in 1521, aided by their alliance with a competing tribe, the Tlaxcala. ===Inca=== [[Image:Peru_Machu_Picchu_Sunrise.jpg|thumb|upright|Machu Picchu, the "Lost city of the Incas".]] With the ascension of Manco Capac to emperor of a tribe in the Cuzco area of what is modern-day Peru around 1200 BCE, the '''Incan''' civilization emerged as the largest Pre-Columbian empire in the Americas. Religion was significant in Inca life. The royal family were believed to be descendants of the Inca Sun God. Thus, the emperor had absolute authority, checked only by tradition. Under the emperors, a complex political structure was apparent. The Incan emperor, regional and village leaders, and others were part of an enormous bureaucracy. For every ten people, there was, on average, one official. The organization of the Empire also included a complex transportation infrastructure. To communicate across the entire empire, runners ran from village to village, relaying royal messages. In 1438, the ambitious Pachacuti, likely the greatest of the Incan emperors, came to the throne. Pachacuti rebuilt much of the capital city, Cuzco, and the Temple of the Sun. The success of Pachacuti was based upon his brilliant talent for military command (he is sometimes referred to as the "Napoleon of the Andes") and an amazing political campaign of integration. Leaders of regions that he wanted to conquer were bribed with luxury goods and enticed by promises of privilege and importance. As well, the Incans had developed a prestigious educational system which, not incidentally, just happened to extol the benefits of Incan civilization. Thus, much of the expansion throughout South America was peaceful. At its height of power in the late 15th century, Incan civilization had conquered a vast patchwork of languages, people and cultures from present-day Ecuador, along the whole length of South America, to present-day Argentina.Cuzco, the capital city, was said by the Spanish to be "as fine as any city in Spain". Perhaps the most impressive city of the Incan empire, though, was not its capital, Cuzco, but the city Machu Picchu. This mountain retreat was built high in the Andes and is sometimes called the "Lost City of the Incas." It was intended as a mountain retreat for the leaders of the Incan empire and demonstrates great artistry -- the abundant dry stone walls were entirely built without mortar, and the blocks were cut so carefully that one can't insert a knife-blade between them. The Spanish discovered the Inca during a civil war of succession and enjoyed great military superiority over the slow siege warfare that the Incan empire had employed against its enemies. Fueled by greed at the opportunity to plunder another rich civilization, they conquered and executed the Incan emperor. The Incan empire fell quickly in 1533, but a small resistance force fled to the mountains, waging a guerrilla war of resistance for another 39 years. ===Meso-American Empires=== The Meso-American Empires were undoubtedly the most powerful and unified civilizations in the new world. Writings were common in Meso-America and allowed these cultures to spread in power and influence with far more ease than their counterparts in north America. Each of these civilizations built impressive urban areas and had a complex culture. They were as 'civilized' as the Spanish who conquered them in the 15th and 16th centuries. ==Early Empires of the Southwest== Native Americans adapted the arid desert southwest. A period of relatively wet conditions saw many cultures in the area flourish. Extensive irrigation was developed that were among the biggest of the ancient world. Elaborate adobe and sandstone buildings were constructed. Highly ornamental and artistic pottery was created. The unusual weather conditions could not continue forever, though, and gave way, in time, to the more common drought of the area. These dry conditions necessitated a more minimal way of life and, eventually, the elaborate accomplishments of these cultures were abandoned. ===Ancestral Puebloans=== [[File:Mesaverde cliffpalace 20030914.752.jpg|thumb|Cliff Palace, a structure of the Ancestral Puebloans.]] One prominent group were the '''Ancestral Puebloans''', who lived in the present day Northeastern Arizona and surrounding areas. The geography of this area is that of a flat arid, desert plain, surrounded by small areas of high plateau, called mesas. Softer rock layers within the mesas eroded to form steep canyons and overhangs along their slopes. The Ancestral Puebloans culture used these cave-like overhangs in the side of steep mesas as shelter from the brief, fierce southwestern storms. They also found natural seeps and diverted small streams of snow melt into small plots of maize, squash and beans. Small seasonal rivers formed beds of natural clays and dried mud. The Ancestral Puebloans used hardened dry mud, called adobe, along with sandstone, to form intricate buildings that were sometimes found high in the natural overhangs of the mesas. The Ancestral Puebloans were also skilled at forming the natural clays into pottery. Between 900 - 1130 CE a period of relatively wet conditions allowed the Ancestral Puebloans to flourish. Traditional architecture was perfected, pottery became intricate and artistic, turkeys were domesticated, and trade over long distances influenced the entire region. Following this golden period was the 300 year drought called Great Drought. The Ancestral Puebloan culture was stressed and erupted into warfare. Scientists once believed the entire people vanished, possibly moving great distances to avoid the arid desert. New research suggests that the Ancestral Puebloans dispersed; abandoning the intricate buildings and moving towards smaller settlements to utilize the limited water that existed. ===Hohokam=== [[File:CasaGrandeRuin.jpg|thumb|Casa Grande Ruins, sheltered by a modern roof.]] Bordering the Ancestral Puebloan culture in the north, a separate civilization emerged in southern Arizona, called the '''Hohokam'''. While many native Americans in the southwest used water irrigation on a limited scale, it was the Hohokam culture that perfected the technology (all without the benefit of modern powered excavating tools). The ability to divert water into small agricultural plots meant that the Hohokam could live in large agricultural communities of relatively high population density. This was particularly true in the Gila River valley, where the Gila River was diverted in many places to irrigate large fertile plains and numerous compact towns. The bigger towns had a 'Great House' at their centers, which was a large Adobe/stone structure. Some of these structures were four stories in size and probably were used by the managerial or religious elites. Smaller excavation or pits were enclosed by adobe walls and used as primary residences. Smaller pit rooms and pits were used for many different functions. The successful use of irrigation is evident in the extensive Casa Grande village. Situated between two primary canals, the Casa Grande site has been the focus of nearly 9 decades of archaeological work. The original town was built around a Great House and incorporated open courtyards and circular plazas. By the 10th century neighboring settlements had been built to accommodate a large, highly developed region. The scale of this community can be seen in the results of one excavation of part of it in 1997. The project identified 247 pit houses, 27 pit rooms, 866 pits, 11 small canals, a ball court, and portions of four adobe walled compounds. The Hohokam culture disintegrated when they had difficulty maintaining the canals in the dry conditions of the drought. Small blockages or collapses of the canal would choke the intricate irrigation networks. Large towns and extensive irrigation canals were abandoned. The people gave up their cultural way of life and dispersed into neighboring tribes. ==Early Empires of the Mississippi== [[File:Serpent Mound (aerial view).jpg|thumb|upright|The Great Serpent Mount]] Native Americans in the Eastern Continental United States developed mound-building cultures early in North American History. Groups of native Americans became more stratified as time went on and developed into tribes. These tribes participated in long networks of trade and cultural exchanges. The importance of trade routes developed urban cities of great influence. The mound-building people were one of the earliest civilizations to emerge in North America. Beginning around 1000 BCE cultures developed that used mounds for religious and burial purposes. These mound-building people are categorized by a series of cultures that describe distinctive artwork and artifacts found in large areas throughout the present-day eastern United States. The burial mound was the principle characteristic of all of these societies. These large structures were built by piling baskets of carefully selected earth into a mound. Mounds were pyramid shaped with truncated tops. Sometimes small buildings were built on top of them. Some of these mounds were quite large. The Grave Creek Mound, in the panhandle of present day West Virginia, is nearly 70 feet tall and 300 feet in diameter. Other mounds have even been shown to be oriented in a way that allows for astronomical alignments such as solstices and equinoxes. Mound building cultures spread out in size and importance. The first culture, the '''Adena''', lived in present-day Southern Ohio and the surrounding areas. The succeeding cultures united to create an impressive trade system that allowed each culture to influence the other. The '''Hopewell''' exchange included groups of people throughout the continental Eastern United States. There began to be considerable social stratification within these people. This organization predates the emergence of the tribe as a socio-political group of people that would dominate later eastern and western native American civilization. The climax of this civilization was the '''Mississippian''' culture. The mound-building cultures had progressed to social complexity comparable to Post-Roman, Pre-Consolidation Tribal England. Mounds became numerous and some settlements had large complexes of them. Structures were frequently built on top of the mounds. Institutional social inequalities existed, such as slavery and human sacrifice. Cahokia, near the important trade routes of the Mississippi and Missouri rivers, became an influential and highly developed community. Extensive trade networks extended from the Great Lakes to the Gulf of Mexico. Cahokia was one of the great centers of Mississippian culture and its largest settlement of Mississippi. The focal point of the settlement was the ceremonial mound called Monk's Mound. Monk's Mound was the largest mound ever constructed by mound-building people and was nearly 100 feet tall and 900 feet long. Excavation on the top of Monk's Mound has revealed evidence of a large building - perhaps a temple - that could be seen throughout the city. The city was spread out on a large plain south of Monks mound. [[Image:Monks Mound in July.JPG|thumb|Monk's Mound located at the Cahokia site near Collinsville, Illinois.]] The city proper contained 120 mounds at varying distances from the city center. The mounds were divided into several different types, each of which may have had its own meaning and function. A circle of posts immediate to Monk's Mound marked a great variety of astronomical alignments. The city was surrounded by a series of watchtowers and occupied a diamond shape pattern that was nearly 5 miles across. At its best, the city may have contained as many as 40,000 people, making it the largest in North America. It is likely the Mississippian culture was dispersed by the onslaught of viral diseases, such as smallpox, which were brought by European explorers. Urban areas were particularly vulnerable to these diseases, and Cahokia was abandoned in the 1500's. The dispersal of tribes made it impractical to build or maintain mounds and many were found abandoned by European explorers. ==Contact with European Culture== ===Epidemics=== [[File:Acuna-Soto EID-v8n4p360 Fig1.png|thumb|Graph of the population population of Mexico, with major epidemics marked.]] European contact brought immediate changes in many tribes of North America. One of the most significant changes to all Indian tribes was the introduction of viral diseases and epidemics.<ref>{{cite web |title=Conclusion :: U.S. History |url=https://www.dhr.history.vt.edu/modules/us/mod01_pop/conclusion.html |website=www.dhr.history.vt.edu |access-date=26 December 2020}}</ref><ref>{{cite news |title=Columbian Exchange |url=https://cla.umn.edu/ihrc/news-events/other/columbian-exchange |access-date=26 December 2020 |work=Immigration History Research Center College of Liberal Arts |date=16 June 2015 |language=en}}</ref> Smallpox was probably the single biggest scourge to hit North America. Infected contagious Indians spread the plague far inland almost immediately after early encounters with European settlers. It is estimated that around 90% of all Native Americans died from diseases soon after first contact.<ref>{{cite web |title=Guns Germs & Steel: Variables. Smallpox PBS |url=https://www.pbs.org/gunsgermssteel/variables/smallpox.html |website=www.pbs.org |access-date=26 December 2020}}</ref> The effects traumatized many powerful and important cultures. Urban areas were particularly vulnerable and Native American culture adapted by becoming more isolated, less unified, and with a renewed round of inter-tribal warfare as tribes seized the opportunity to gain resources once owned by rivals. ===Columbian Exchange=== On the other hand, Europeans brought invasive plants and animals.<ref>{{cite web |title=APWG: Background Information |url=https://cybercemetery.unt.edu/archive/nisic/20110630090151/http://www.nps.gov/plants/alien/bkgd.htm |website=cybercemetery.unt.edu |access-date=26 December 2020}}</ref><ref>{{cite news |title=Escape of the invasives: Top six invasive plant species in the United States |url=https://www.si.edu/stories/escape-invasives |access-date=26 December 2020 |work=Smithsonian Institution |language=en}}</ref> The horse was re-introduced to America<ref>{{cite web |title=History of Horses in America |url=https://www.belrea.edu/a-history-of-horses-in-america/ |website=www.belrea.edu |access-date=26 December 2020}}</ref> (as original paleo-American populations of wild horses from the Bering land bridge were extinct) and quickly adapted to free range on the sprawling great plains. Tribes of nomadic Native Americans were quick to see the horse's value as an increase in their mobility;<ref>{{cite web |title=Wealth & Status A Song for the Horse Nation - October 29, 2011 through January 7, 2013 - The National Museum of the American Indian - Washington, D.C. |url=https://americanindian.si.edu/static/exhibitions/horsenation/wealth.html |website=americanindian.si.edu |access-date=26 December 2020}}</ref> allowing them to better adapt to changing conditions and as a valuable asset in warfare.<ref>{{cite web |title=Warfare A Song for the Horse Nation - October 29, 2011 through January 7, 2013 - The National Museum of the American Indian - Washington, D.C. |url=https://americanindian.si.edu/static/exhibitions/horsenation/warfare.html |website=americanindian.si.edu |access-date=26 December 2020}}</ref> Along with Europeans bringing plants and animals, the Europeans were able to take several plants such as corn, potatoes, and tomatoes back to their native countries.<ref>{{cite web |title=Columbian Exchange (1492-1800) |url=https://mypages.unh.edu/hoslac/book/columbian-exchange-1492-1800 |access-date=26 December 2020 |language=en}}</ref> == Review Questions == 1. Give two names for the indigenous peoples living in America, and name the circumstances behind each name. 2. What evidence do we have for the Inca, Mayan, and Aztec cultures? 3. What in the climate contributed to the rise and fall of the indigenous peoples of South-West North America? == References == {{Reflist}} {{status|100%}} {{BookCat}} {{chapnav|America|European History}} th52o5jna0omwrs66lxavy36putmweu 4675472 4675471 2026-10-10T22:25:11Z Classclown18 3503220 /* Maya */ 4675472 wikitext text/x-wiki [[File:Kincaid Mounds Site aerial illustration HRoe 2019.jpg|thumb|Artist depiction of the Kincaid Mounds Site in the Pre-Columbian era.]] Human civilization in the Americas probably began in the last ice age, when prehistoric hunters crossed a land bridge between the Asian and North American continents.<ref>{{cite news |last1=Gerszak |first1=Fen Montaigne,Jennie Rothenberg Gritz,Rafal |title=The Story of How Humans Came to the Americas Is Constantly Evolving |url=https://www.smithsonianmag.com/science-nature/how-humans-came-to-americas-180973739/ |access-date=26 December 2020 |work=Smithsonian Magazine |language=en}}</ref> Civilizations in North America, Central America, and South America had different levels of complexity, technology, and cohesiveness. Some of the most powerful and organized societies occurred in South and Central America. These cultures developed writing, allowing them to spread and dominate. They created some of the largest cities in the Ancient world. North American cultures were more fragmented and less unified. The tribe was often the major social unit, with exchanges between tribes creating similar societies over vast distances. Tribal dwellings as large as European towns flourished in the rugged desert of southwestern North America. European-descended historians have difficulty referring to these cultures as a whole, as the native people did not have a unified name for themselves. At first, Europeans called natives "Indians". This term came from the belief by Christopher Columbus that he had discovered a new passage to India.<ref name="indianname">{{cite web |title=American Indians and Native Americans |url=https://www.umass.edu/legal/derrico/shoshone/indian.html |website=www.umass.edu |accessdate=23 September 2020}}</ref> Despite Amerigo Vespucci ascertaining that the Americas were not actually India, Indian continued to be used as the 'de facto' name for native inhabitants until around 1960.<ref name="indianname"/> Starting in the 1960s, the term "Native American" was used. Yet this term may be too problematic: The name America derives from Amerigo Vespucci, an Italian who had little to do with the native people.<ref name="indianname"/> There is also "American Indian". This is too general a term for a group having little in common other than skin tone and non-European language. In Canada, the term "First People" is used. All these terms for the native people of America show just how diverse Pre-Columbian America was and the disagreement continues among scholars today about this period. ==Early Inhabitants of the Americas== ===Bering Land Bridge=== [[Image:Map of gene flow in and out of Beringia.jpg|thumb|upright|A map depicting the crossing of the people into the Americas from Asia.]] American history does not begin with Columbus's 1492 arrival. The Americas were settled long before the first European arrived.<ref name="landbridge">{{cite web |title=Migration of Humans into the Americas (c. 14,000 BCE) |url=https://www.science.smith.edu/climatelit/migration-of-humans-into-north-america/ |website=Climate Across Curriculum |accessdate=23 September 2020}}</ref> Civilization began during the last ice age, some 15 to 40 thousand years ago.<ref name="landbridge"/> Huge ice sheets covered the north, so sea levels were much lower, creating a land bridge between Asia and North America.<ref name="landbridge"/> This was the Bering land bridge, a gap in two large ice sheets creating a connection from lands near present day Alaska, through Alberta, and into the continental United States.<ref name="landbridge"/> Nomadic Asians following herds of wild game traveled into the continental United States. A characteristic arrow point was found and first described near the present day town of Clovis, NM. Specialized tools and common burial practices are seen in many archaeological sites through North America and into South America. ===Clovis People=== The '''Clovis people''' are one of North America's earliest civilizations. It is not clear if the finds represent one unified tribe, or many tribes with a common technology and belief. Their trek across 2000 rugged miles is one of the great feats of pre-history. Their culture disappears dramatically from the archaeological record 12,900 years ago, with widespread speculation about what caused their disappearance. Theories range from the extinction of the mammoth, to sudden environmental changes caused by a comet, to flooding caused by the break of a massive freshwater lake, Lake Agassiz. There is controversy about Pre-Clovis settlement of North and South America. Comparisons of culture and linguistics offer evidence of the influence of early America by several different contemporary cultures. Some genetic and time-dating studies point to the possibility that ancient Americans came from other places and arrived earlier than at the Clovis sites in North America. Perhaps some ancient settlers to the hemisphere traveled by boat along the seashore, or arrived by boats from the Polynesian islands. As time went on, many of these first settlers settled down into agricultural societies, complete with domesticated animals. Groups of people formed stable tribes and developed distinct languages of their own, to the point that more distant relatives could no longer understand them. Comparative linguistics -- the study of languages of different tribes -- shows fascinating diversity, with similarities between tribes hundreds of miles apart, yet startling differences with neighboring groups. At times, tribes would gain regional importance and dominate large areas of America. Empires rose across the Americas that rivaled the greatest ones in Europe. For their time, some of these empires were highly advanced. ==Early Empires of Mesoamerica== Meso-American civilizations were among the most powerful and advanced civilizations of the ancient world. Reading and writing were widespread throughout Meso-America, and these civilizations achieved impressive political, artistic, scientific, agricultural, and architectural accomplishments. Many of these civilizations gathered the political and technological resources to build some of the largest, most ornate, and highly populated cities in the ancient world. ===Maya=== [[File:Dintel 26 de Yachilán 3.jpg|thumb|The Mayans were a sophisticated civilization, who had great skill in the arts.]] The aboriginal Americans settled in the Yucatan peninsula of present-day Mexico around 10,000 BCE. By 2000 BCE, the '''Mayan''' culture had evolved into a complex civilization. The Mayans developed a strong political, artistic and religious identity among the highly populated Yucatan lowlands. The classic period (250-900 CE) witnessed a rapid growth of the Mayan culture and it gained dominance within the region and influence throughout present-day Mexico. Large, independent city-states were founded and became the political, religious, and cultural centers for the Mayan people. Mayan society was unified not by politics, but by their complex and highly-developed religion. Mayan religion was astrologically based, and supported by careful observations of the sky. The Mayans had a strong grasp of astronomy that rivaled, and, in many ways, exceeded that of concurrent European societies. They developed a very sophisticated system for measuring time, and had a great awareness of the movements in the nighttime sky. Particular significance was attached to the planet Venus, which was particularly bright and appeared in both the late evening and early morning sky. Mayan art is also considered one of the most sophisticated and beautiful of the ancient New World. The Mayan culture saw a decline during the 8th and 9th century. Although its causes are still the subject of intense scientific speculation, archaeologists see a definite cessation of inscriptions and architectural construction. The Mayan culture continued as a regional power until its discovery by Spanish conquistadors. In fact, an independent, non-centralized government allowed the Mayans to strongly resist the Spanish conquest of present-day Mexico. Mayan culture is preserved today throughout the Yucatan, although many of the inscriptions have been lost. ===Aztec=== [[File:1479 Stein der fünften Sonne, sog. Aztekenkalender, Ollin Tonatiuh anagoria.JPG|thumb|An Aztec calendar stone]] The '''Aztec''' culture began with the migration of the Mexica people to present-day central Mexico. The leaders of this group of people created an alliance with the dominant tribes forming the Aztec triple alliance, and created an empire that influenced much of present-day Mexico. The Aztec confederacy began a campaign of conquest and assimilation. Outlying lands were inducted into the empire and became part of the complex Aztec society. Local leaders could gain prestige by adopting and adding to the culture of the Aztec civilization. The Aztecs, in turn, adopted cultural, artistic, and astronomical innovations from its conquered people. The heart of Aztec power was economic unity. Conquered lands paid tribute to the capital city Tenochtitlan, the present-day site of Mexico City. Rich in tribute, this capital grew in influence, size, and population. When the Spanish arrived in 1521, it was the fourth largest city in the world (including the once independent city Tlatelolco, which was by then a residential suburb) with an estimated population of 212,500 people. It contained the massive Temple de Mayo (a twin-towered pyramid 197 feet tall), 45 public buildings, a palace, two zoos, a botanical garden, and many houses. Surrounding the city and floating on the shallow flats of Lake Texcoco were enormous ''chinampas'' -- floating garden beds that fed the many thousands of residents of Tenochtitlan. While many Meso-American civilizations practiced human sacrifice, none performed it to the scale of the Aztecs. To the Aztecs, human sacrifice was a necessary appeasement to the gods. According to their own records, one of the largest slaughters ever performed happened when the great pyramid of Tenochtitlan was reconsecrated in 1487. The Aztecs reported that they had sacrificed 84,400 prisoners over the course of four days. With their arrival at Tenochtitlan, the Spanish would be the downfall of Aztec culture. Although shocked and impressed by the scale of Tenochtitlan, the display of massive human sacrifice offended European sensitivity, and the abundant displays of gold and silver inflamed their greed. The Spanish killed the reigning ruler, Montezuma in June 1520 and lay siege to the city, destroying it in 1521, aided by their alliance with a competing tribe, the Tlaxcala. ===Inca=== [[Image:Peru_Machu_Picchu_Sunrise.jpg|thumb|upright|Machu Picchu, the "Lost city of the Incas".]] With the ascension of Manco Capac to emperor of a tribe in the Cuzco area of what is modern-day Peru around 1200 BCE, the '''Incan''' civilization emerged as the largest Pre-Columbian empire in the Americas. Religion was significant in Inca life. The royal family were believed to be descendants of the Inca Sun God. Thus, the emperor had absolute authority, checked only by tradition. Under the emperors, a complex political structure was apparent. The Incan emperor, regional and village leaders, and others were part of an enormous bureaucracy. For every ten people, there was, on average, one official. The organization of the Empire also included a complex transportation infrastructure. To communicate across the entire empire, runners ran from village to village, relaying royal messages. In 1438, the ambitious Pachacuti, likely the greatest of the Incan emperors, came to the throne. Pachacuti rebuilt much of the capital city, Cuzco, and the Temple of the Sun. The success of Pachacuti was based upon his brilliant talent for military command (he is sometimes referred to as the "Napoleon of the Andes") and an amazing political campaign of integration. Leaders of regions that he wanted to conquer were bribed with luxury goods and enticed by promises of privilege and importance. As well, the Incans had developed a prestigious educational system which, not incidentally, just happened to extol the benefits of Incan civilization. Thus, much of the expansion throughout South America was peaceful. At its height of power in the late 15th century, Incan civilization had conquered a vast patchwork of languages, people and cultures from present-day Ecuador, along the whole length of South America, to present-day Argentina.Cuzco, the capital city, was said by the Spanish to be "as fine as any city in Spain". Perhaps the most impressive city of the Incan empire, though, was not its capital, Cuzco, but the city Machu Picchu. This mountain retreat was built high in the Andes and is sometimes called the "Lost City of the Incas." It was intended as a mountain retreat for the leaders of the Incan empire and demonstrates great artistry -- the abundant dry stone walls were entirely built without mortar, and the blocks were cut so carefully that one can't insert a knife-blade between them. The Spanish discovered the Inca during a civil war of succession and enjoyed great military superiority over the slow siege warfare that the Incan empire had employed against its enemies. Fueled by greed at the opportunity to plunder another rich civilization, they conquered and executed the Incan emperor. The Incan empire fell quickly in 1533, but a small resistance force fled to the mountains, waging a guerrilla war of resistance for another 39 years. ===Meso-American Empires=== The Meso-American Empires were undoubtedly the most powerful and unified civilizations in the new world. Writings were common in Meso-America and allowed these cultures to spread in power and influence with far more ease than their counterparts in north America. Each of these civilizations built impressive urban areas and had a complex culture. They were as 'civilized' as the Spanish who conquered them in the 15th and 16th centuries. ==Early Empires of the Southwest== Native Americans adapted the arid desert southwest. A period of relatively wet conditions saw many cultures in the area flourish. Extensive irrigation was developed that were among the biggest of the ancient world. Elaborate adobe and sandstone buildings were constructed. Highly ornamental and artistic pottery was created. The unusual weather conditions could not continue forever, though, and gave way, in time, to the more common drought of the area. These dry conditions necessitated a more minimal way of life and, eventually, the elaborate accomplishments of these cultures were abandoned. ===Ancestral Puebloans=== [[File:Mesaverde cliffpalace 20030914.752.jpg|thumb|Cliff Palace, a structure of the Ancestral Puebloans.]] One prominent group were the '''Ancestral Puebloans''', who lived in the present day Northeastern Arizona and surrounding areas. The geography of this area is that of a flat arid, desert plain, surrounded by small areas of high plateau, called mesas. Softer rock layers within the mesas eroded to form steep canyons and overhangs along their slopes. The Ancestral Puebloans culture used these cave-like overhangs in the side of steep mesas as shelter from the brief, fierce southwestern storms. They also found natural seeps and diverted small streams of snow melt into small plots of maize, squash and beans. Small seasonal rivers formed beds of natural clays and dried mud. The Ancestral Puebloans used hardened dry mud, called adobe, along with sandstone, to form intricate buildings that were sometimes found high in the natural overhangs of the mesas. The Ancestral Puebloans were also skilled at forming the natural clays into pottery. Between 900 - 1130 CE a period of relatively wet conditions allowed the Ancestral Puebloans to flourish. Traditional architecture was perfected, pottery became intricate and artistic, turkeys were domesticated, and trade over long distances influenced the entire region. Following this golden period was the 300 year drought called Great Drought. The Ancestral Puebloan culture was stressed and erupted into warfare. Scientists once believed the entire people vanished, possibly moving great distances to avoid the arid desert. New research suggests that the Ancestral Puebloans dispersed; abandoning the intricate buildings and moving towards smaller settlements to utilize the limited water that existed. ===Hohokam=== [[File:CasaGrandeRuin.jpg|thumb|Casa Grande Ruins, sheltered by a modern roof.]] Bordering the Ancestral Puebloan culture in the north, a separate civilization emerged in southern Arizona, called the '''Hohokam'''. While many native Americans in the southwest used water irrigation on a limited scale, it was the Hohokam culture that perfected the technology (all without the benefit of modern powered excavating tools). The ability to divert water into small agricultural plots meant that the Hohokam could live in large agricultural communities of relatively high population density. This was particularly true in the Gila River valley, where the Gila River was diverted in many places to irrigate large fertile plains and numerous compact towns. The bigger towns had a 'Great House' at their centers, which was a large Adobe/stone structure. Some of these structures were four stories in size and probably were used by the managerial or religious elites. Smaller excavation or pits were enclosed by adobe walls and used as primary residences. Smaller pit rooms and pits were used for many different functions. The successful use of irrigation is evident in the extensive Casa Grande village. Situated between two primary canals, the Casa Grande site has been the focus of nearly 9 decades of archaeological work. The original town was built around a Great House and incorporated open courtyards and circular plazas. By the 10th century neighboring settlements had been built to accommodate a large, highly developed region. The scale of this community can be seen in the results of one excavation of part of it in 1997. The project identified 247 pit houses, 27 pit rooms, 866 pits, 11 small canals, a ball court, and portions of four adobe walled compounds. The Hohokam culture disintegrated when they had difficulty maintaining the canals in the dry conditions of the drought. Small blockages or collapses of the canal would choke the intricate irrigation networks. Large towns and extensive irrigation canals were abandoned. The people gave up their cultural way of life and dispersed into neighboring tribes. ==Early Empires of the Mississippi== [[File:Serpent Mound (aerial view).jpg|thumb|upright|The Great Serpent Mount]] Native Americans in the Eastern Continental United States developed mound-building cultures early in North American History. Groups of native Americans became more stratified as time went on and developed into tribes. These tribes participated in long networks of trade and cultural exchanges. The importance of trade routes developed urban cities of great influence. The mound-building people were one of the earliest civilizations to emerge in North America. Beginning around 1000 BCE cultures developed that used mounds for religious and burial purposes. These mound-building people are categorized by a series of cultures that describe distinctive artwork and artifacts found in large areas throughout the present-day eastern United States. The burial mound was the principle characteristic of all of these societies. These large structures were built by piling baskets of carefully selected earth into a mound. Mounds were pyramid shaped with truncated tops. Sometimes small buildings were built on top of them. Some of these mounds were quite large. The Grave Creek Mound, in the panhandle of present day West Virginia, is nearly 70 feet tall and 300 feet in diameter. Other mounds have even been shown to be oriented in a way that allows for astronomical alignments such as solstices and equinoxes. Mound building cultures spread out in size and importance. The first culture, the '''Adena''', lived in present-day Southern Ohio and the surrounding areas. The succeeding cultures united to create an impressive trade system that allowed each culture to influence the other. The '''Hopewell''' exchange included groups of people throughout the continental Eastern United States. There began to be considerable social stratification within these people. This organization predates the emergence of the tribe as a socio-political group of people that would dominate later eastern and western native American civilization. The climax of this civilization was the '''Mississippian''' culture. The mound-building cultures had progressed to social complexity comparable to Post-Roman, Pre-Consolidation Tribal England. Mounds became numerous and some settlements had large complexes of them. Structures were frequently built on top of the mounds. Institutional social inequalities existed, such as slavery and human sacrifice. Cahokia, near the important trade routes of the Mississippi and Missouri rivers, became an influential and highly developed community. Extensive trade networks extended from the Great Lakes to the Gulf of Mexico. Cahokia was one of the great centers of Mississippian culture and its largest settlement of Mississippi. The focal point of the settlement was the ceremonial mound called Monk's Mound. Monk's Mound was the largest mound ever constructed by mound-building people and was nearly 100 feet tall and 900 feet long. Excavation on the top of Monk's Mound has revealed evidence of a large building - perhaps a temple - that could be seen throughout the city. The city was spread out on a large plain south of Monks mound. [[Image:Monks Mound in July.JPG|thumb|Monk's Mound located at the Cahokia site near Collinsville, Illinois.]] The city proper contained 120 mounds at varying distances from the city center. The mounds were divided into several different types, each of which may have had its own meaning and function. A circle of posts immediate to Monk's Mound marked a great variety of astronomical alignments. The city was surrounded by a series of watchtowers and occupied a diamond shape pattern that was nearly 5 miles across. At its best, the city may have contained as many as 40,000 people, making it the largest in North America. It is likely the Mississippian culture was dispersed by the onslaught of viral diseases, such as smallpox, which were brought by European explorers. Urban areas were particularly vulnerable to these diseases, and Cahokia was abandoned in the 1500's. The dispersal of tribes made it impractical to build or maintain mounds and many were found abandoned by European explorers. ==Contact with European Culture== ===Epidemics=== [[File:Acuna-Soto EID-v8n4p360 Fig1.png|thumb|Graph of the population population of Mexico, with major epidemics marked.]] European contact brought immediate changes in many tribes of North America. One of the most significant changes to all Indian tribes was the introduction of viral diseases and epidemics.<ref>{{cite web |title=Conclusion :: U.S. History |url=https://www.dhr.history.vt.edu/modules/us/mod01_pop/conclusion.html |website=www.dhr.history.vt.edu |access-date=26 December 2020}}</ref><ref>{{cite news |title=Columbian Exchange |url=https://cla.umn.edu/ihrc/news-events/other/columbian-exchange |access-date=26 December 2020 |work=Immigration History Research Center College of Liberal Arts |date=16 June 2015 |language=en}}</ref> Smallpox was probably the single biggest scourge to hit North America. Infected contagious Indians spread the plague far inland almost immediately after early encounters with European settlers. It is estimated that around 90% of all Native Americans died from diseases soon after first contact.<ref>{{cite web |title=Guns Germs & Steel: Variables. Smallpox PBS |url=https://www.pbs.org/gunsgermssteel/variables/smallpox.html |website=www.pbs.org |access-date=26 December 2020}}</ref> The effects traumatized many powerful and important cultures. Urban areas were particularly vulnerable and Native American culture adapted by becoming more isolated, less unified, and with a renewed round of inter-tribal warfare as tribes seized the opportunity to gain resources once owned by rivals. ===Columbian Exchange=== On the other hand, Europeans brought invasive plants and animals.<ref>{{cite web |title=APWG: Background Information |url=https://cybercemetery.unt.edu/archive/nisic/20110630090151/http://www.nps.gov/plants/alien/bkgd.htm |website=cybercemetery.unt.edu |access-date=26 December 2020}}</ref><ref>{{cite news |title=Escape of the invasives: Top six invasive plant species in the United States |url=https://www.si.edu/stories/escape-invasives |access-date=26 December 2020 |work=Smithsonian Institution |language=en}}</ref> The horse was re-introduced to America<ref>{{cite web |title=History of Horses in America |url=https://www.belrea.edu/a-history-of-horses-in-america/ |website=www.belrea.edu |access-date=26 December 2020}}</ref> (as original paleo-American populations of wild horses from the Bering land bridge were extinct) and quickly adapted to free range on the sprawling great plains. Tribes of nomadic Native Americans were quick to see the horse's value as an increase in their mobility;<ref>{{cite web |title=Wealth & Status A Song for the Horse Nation - October 29, 2011 through January 7, 2013 - The National Museum of the American Indian - Washington, D.C. |url=https://americanindian.si.edu/static/exhibitions/horsenation/wealth.html |website=americanindian.si.edu |access-date=26 December 2020}}</ref> allowing them to better adapt to changing conditions and as a valuable asset in warfare.<ref>{{cite web |title=Warfare A Song for the Horse Nation - October 29, 2011 through January 7, 2013 - The National Museum of the American Indian - Washington, D.C. |url=https://americanindian.si.edu/static/exhibitions/horsenation/warfare.html |website=americanindian.si.edu |access-date=26 December 2020}}</ref> Along with Europeans bringing plants and animals, the Europeans were able to take several plants such as corn, potatoes, and tomatoes back to their native countries.<ref>{{cite web |title=Columbian Exchange (1492-1800) |url=https://mypages.unh.edu/hoslac/book/columbian-exchange-1492-1800 |access-date=26 December 2020 |language=en}}</ref> == Review Questions == 1. Give two names for the indigenous peoples living in America, and name the circumstances behind each name. 2. What evidence do we have for the Inca, Mayan, and Aztec cultures? 3. What in the climate contributed to the rise and fall of the indigenous peoples of South-West North America? == References == {{Reflist}} {{status|100%}} {{BookCat}} {{chapnav|America|European History}} l7vgmmgyb7xcngok58c4x4bec333m1r LaTeX/Tables 0 42436 4675499 4653353 2026-10-11T07:44:49Z ~2026-54796-15 3628135 /* Basic examples */ 4675499 wikitext text/x-wiki <noinclude>{{LaTeX/Top}} </noinclude> Tables are a common feature in academic writing, often used to summarize research results. Mastering the art of table construction in LaTeX is therefore necessary to produce quality papers and with sufficient practice one can print beautiful tables of any kind. Keeping in mind that LaTeX is not a spreadsheet; it makes sense to use a dedicated tool to build tables and then to export these tables into the document. Basic tables are not too taxing, but anything more advanced can take a fair bit of construction; in these cases, more advanced packages can be very useful. However, first it is important to know the basics. Once you are comfortable with basic LaTeX tables, you might have a look at more advanced packages or the [[#Using spreadsheets and data analysis tools|export options of your favorite spreadsheet]]. Thanks to the modular nature of LaTeX, the whole process can be automated in a fairly comfortable way. == Introduction == LaTeX has built-in support to typeset tables and provides two environments: {{LaTeX/Environment|tabular}} and {{LaTeX/Environment|table}}. To typeset material in rows and columns, the {{LaTeX/Environment|tabular}} environment is needed; the optional {{LaTeX/Environment|table}} environment is a container for floating material similar to {{LaTeX/Environment|figure}}, into which a {{LaTeX/Environment|tabular}} environment may be included. The {{LaTeX/Environment|table}} environment contains the caption and defines the float for the table, i.e., where in the document the table should be positioned and whether we want it to be displayed centered. The {{LaTeX/Inline|code=\caption}} and {{LaTeX/Inline|code=\label}} commands can be used in the same way as for pictures. For more information about the {{LaTeX/Environment|table}} environment, see the [[#Floating with table|Floating with ''table'']] section. In any case, the actual content of the table is contained within the {{LaTeX/Environment|tabular}} environment. == The ''tabular'' environment == The {{LaTeX/Environment|tabular}} environment can be used to typeset tables with optional horizontal and vertical lines. LaTeX determines the width of the columns automatically. The first line of the environment has the form: {{LaTeX/Usage|code= \begin{tabular}[pos]{table spec} }} The {{LaTeX/Parameter|table spec}} argument tells LaTeX the alignment to be used in each column and the vertical lines to insert. The number of columns does not need to be specified as it is inferred by looking at the number of arguments provided. It is also possible to add vertical lines between the columns here. The following symbols are available to describe the table columns (some of them require that the package {{LaTeX/Package|array}} has been loaded): {| class="wikitable" | {{LaTeX/Parameter|l}} | left-justified column |- | {{LaTeX/Parameter|c}} | centered column |- | {{LaTeX/Parameter|r}} | right-justified column |- | {{LaTeX/Parameter|p{'width'}<!---->}} | paragraph column with text vertically aligned at the top |- | {{LaTeX/Parameter|m{'width'}<!---->}} | paragraph column with text vertically aligned in the middle (requires array package) |- | {{LaTeX/Parameter|b{'width'}<!---->}} | paragraph column with text vertically aligned at the bottom (requires array package) |- | <code><nowiki>|</nowiki></code> | vertical line |- | <code><nowiki>||</nowiki></code> | double vertical line |} By default, if the text in a column is too wide for the page, LaTeX won’t automatically wrap it. Using {{LaTeX/Parameter|p{'width'}<!---->}} you can define a special type of column which will wrap-around the text as in a normal paragraph. You can pass the width using any unit supported by LaTeX, such as 'pt' and 'cm', or ''command lengths'', such as {{LaTeX/LaTeX|code=\textwidth<!---->}}. You can find a list in chapter [[LaTeX/Lengths|Lengths]]. The optional parameter {{LaTeX/Parameter|pos}} can be used to specify the vertical position of the table relative to the baseline of the surrounding text. In most cases, you will not need this option. It becomes relevant only if your table is not in a paragraph of its own. You can use the following letters: {| class="wikitable" |- | {{LaTeX/Parameter|b}} | bottom |- | {{LaTeX/Parameter|c}} | center (default) |- | {{LaTeX/Parameter|t}} | top |- |} To specify a font format (such as bold, italic, etc.) for an entire column, you can add {{LaTeX/LaTeX|code=>{\format}<!---->}} before you declare the alignment. For example {{LaTeX/LaTeX|code=\begin{tabular}{ >{\bfseries}l c >{\itshape}r }<!---->}} will indicate a three column table with the first one aligned to the left and in bold font, the second one aligned in the center and with normal font, and the third aligned to the right and in italic. The "array" package needs to be activated in the preamble for this to work. In the first line you have pointed out how many columns you want, their alignment and the vertical lines to separate them. Once in the environment, you have to introduce the text you want, separating between cells and introducing new lines. The commands you have to use are the following: {| class="wikitable" | {{LaTeX/LaTeX|code=&<!---->}} | column separator |- | {{LaTeX/LaTeX|code=\\<!---->}} | start new row (additional space may be specified after {{LaTeX/LaTeX|code=\\<!---->}} using square brackets, such as {{LaTeX/Parameter|\\[6pt]}}) |- | {{LaTeX/LaTeX|code=\hline<!---->}} | horizontal line |- | {{LaTeX/LaTeX|code=\newline<!---->}} | start a new line within a cell (in a paragraph column) |- | {{LaTeX/LaTeX|code=\cline{i-j}<!---->}} | partial horizontal line beginning in column ''i'' and ending in column ''j'' |} Note, any white space inserted between these commands is purely down to one's preferences. I personally add spaces between to make it easier to read. \begin{tabular}{|l|l|l|l|} \hline \textbf{Parameter} & \textbf{Nilai} & \textbf{Parameter} & \textbf{Nilai} \\ \hline Power Rated ($P_{rated}$) & 5 kW & Machine Constant ($K$) & 0.81 \\ \hline Voltage Rated ($V_{rated}$) & 220 V & Inertia Moment ($J$) & $0.05 \text{ kg.m}^2$ \\ \hline Current Rated ($I_{rated}$) & 22.73 A & Viscos ($B$) & 0.005 N.m.s/rad \\ \hline Speed Rated ($N_{rated}$) & 1500 RPM & Coeff. of Hysteresis ($K_H$) & 0.1455 \\ \hline Angular Velocity ($\omega$) & 157.08 rad/s & Coeff. of Eddy Current ($K_e$) & 3.97e-4 \\ \hline \end{tabular} === Text wrapping in tables === LaTeX's algorithms for formatting tables have a few shortcomings. One is that it will not automatically wrap text in cells, even if it overruns the width of the page. For columns that will contain text whose length exceeds the column's desired width, it is recommended that you use the {{LaTeX/Parameter|p}} attribute and specify the desired width of the column (although it may take some trial-and-error to get the result you want). For a more convenient method, have a look at [[#The tabularx package|The tabularx package]], or [[#The tabulary package|The tabulary package]]. Instead of {{LaTeX/Parameter|p}}, use the {{LaTeX/Parameter|m}} attribute to have the lines aligned toward the middle of the box or the {{LaTeX/Parameter|b}} attribute to align along the bottom of the box. Here is a simple example. The following code creates two tables with the same code; the only difference is that the last column of the second one has a defined width of 5 centimeters, while in the first one we didn't specify any width. Compiling this code: {{LaTeX/Usage|code= \documentclass{article} \usepackage[english]{babel} \begin{document} Without specifying width for last column: \begin{center} \begin{tabular}{{{!}} l {{!}} l {{!}} l {{!}} l {{!}}} \hline Day & Min Temp & Max Temp & Summary \\ \hline Monday & 11C & 22C & A clear day with lots of sunshine. However, the strong breeze will bring down the temperatures. \\ \hline Tuesday & 9C & 19C & Cloudy with rain, across many northern regions. Clear spells across most of Scotland and Northern Ireland, but rain reaching the far northwest. \\ \hline Wednesday & 10C & 21C & Rain will still linger for the morning. Conditions will improve by early afternoon and continue throughout the evening. \\ \hline \end{tabular} \end{center} With width specified: \begin{center} \begin{tabular}{ {{!}} l {{!}} l {{!}} l {{!}} p{5cm} {{!}}} \hline Day & Min Temp & Max Temp & Summary \\ \hline Monday & 11C & 22C & A clear day with lots of sunshine. However, the strong breeze will bring down the temperatures. \\ \hline Tuesday & 9C & 19C & Cloudy with rain, across many northern regions. Clear spells across most of Scotland and Northern Ireland, but rain reaching the far northwest. \\ \hline Wednesday & 10C & 21C & Rain will still linger for the morning. Conditions will improve by early afternoon and continue throughout the evening. \\ \hline \end{tabular} \end{center} \end{document} }} You get the following output: {{Dark mode invert|[[Image:Latex example wrapped table.svg|800px|center]]}} Note that the first table has been cropped, since the output is wider than the page width. === Manually broken paragraphs in table cells === Sometimes it is necessary to not rely on the breaking algorithm when using the {{LaTeX/Parameter|p}} specifier, but rather specify the line breaks by hand. In this case it is easiest to use a {{LaTeX/LaTeX|code=\parbox<!---->}}: {{LaTeX/Usage|code= \begin{tabular}{cc} boring cell content & \parbox[t]{5cm}{rather long par\\new par} \end{tabular} }} Here the {{LaTeX/Parameter|t}} argument controls the placement of the text inside the box. Other allowed values are {{LaTeX/Parameter|c}} for center and {{LaTeX/Parameter|b}} for bottom. === Space between columns === To tweak the space between columns (LaTeX will by default choose very tight columns), one can alter the column separation: {{LaTeX/LaTeX|code=\setlength{\tabcolsep}{5pt}<!---->}}. The default value is 6pt. One can also introduce a horizontal space with hspace like this: {{LaTeX/LaTeX|code=\begin{tabular}{r@{\hspace{1in}<!---->}<!---->rr}<!---->}} There are different options for the hspace [[LaTeX/Lengths|length]]. === Space between rows === Re-define the {{LaTeX/LaTeX|code=\arraystretch<!---->}} command to set the space between rows: {{LaTeX/Usage|code= \renewcommand{\arraystretch}{1.5} }} Default value is 1.0. An alternative way to adjust the rule spacing is to add {{LaTeX/LaTeX|code=\noalign{\smallskip}<!---->}} before or after the {{LaTeX/LaTeX|code=\hline<!---->}} and {{LaTeX/LaTeX|code=\cline{i-j}<!---->}} commands: {{LaTeX/Usage|code= \begin{tabular}{ {{!}} l {{!}} l {{!}} r {{!}} } \hline\noalign{\smallskip} \multicolumn{2}{c}{Item} \\ \cline{1-2}\noalign{\smallskip} Animal & Description & Price (\$) \\ \noalign{\smallskip}\hline\noalign{\smallskip} Gnat & per gram & 13.65 \\ & each & 0.01 \\ Gnu & stuffed & 92.50 \\ Emu & stuffed & 33.33 \\ Armadillo & frozen & 8.99 \\ \noalign{\smallskip}\hline \end{tabular} }} You may also specify the skip after a line explicitly using glue after the line terminator {{LaTeX/Usage|code= \begin{tabular}{ll} \hline Mineral & Color \\[1cm] Ruby & red \\ Sapphire & blue \\ \hline \end{tabular} }} === Other environments inside tables === If you use some LaTeX environments inside table cells, like {{LaTeX/Environment|verbatim}} or {{LaTeX/Environment|enumerate}}: {{LaTeX/Usage|code= \begin{tabular}{c c} \hline \begin{verbatim} code \end{verbatim} & description \\ \hline \end{tabular} }} you might encounter errors similar to <syntaxhighlight lang="output"> ! LaTeX Error: Something's wrong--perhaps a missing \item. </syntaxhighlight> To solve this problem, change [[#The tabular environment|column specifier]] to "paragraph" ({{LaTeX/Parameter|p}}, {{LaTeX/Parameter|m}} or {{LaTeX/Parameter|b}}). {{LaTeX/Usage|code= \begin{tabular}{m{5cm} c} }} === Defining multiple columns === It is possible to define many identically aligned columns at once using the {{LaTeX/LaTeX|code=*{num}{str}<!---->}} syntax. This is particularly useful when your table has many columns. Here is a table with six centered columns flanked by a single column on each side: {{LaTeX/Example|code= \begin{tabular}{l*{6}{c}r} Team & P & W & D & L & F & A & Pts \\ \hline Manchester United & 6 & 4 & 0 & 2 & 10 & 5 & 12 \\ Celtic & 6 & 3 & 0 & 3 & 8 & 9 & 9 \\ Benfica & 6 & 2 & 1 & 3 & 7 & 8 & 7 \\ FC Copenhagen & 6 & 2 & 1 & 3 & 5 & 8 & 7 \\ \end{tabular} |render= {{Dark mode invert|[[Image:Latex example defining multiple columns.svg|450px]]}} }} === Column specification using <code>>{\cmd}</code> and <code><{\cmd}</code> === The column specification can be altered using the {{LaTeX/Package|array}} package. This is done in the argument of the tabular environment using {{LaTeX/LaTeX|code=>{\command}}} for commands executed right ''before'' each column element and {{LaTeX/LaTeX|code=<{\command}}} for commands to be executed right ''after'' each column element. As an example: to get a column in math mode enter: <syntaxhighlight lang="tex" inline>\begin{tabular}{>{$}c<{$}}</syntaxhighlight>. Another example is changing the font: {{LaTeX/LaTeX|code=\begin{tabular}{>{\small}c}|}} to print the column in a small font. The argument of the {{LaTeX/LaTeX|code=>|}} and {{LaTeX/LaTeX|code=<|}} specifications must be correctly balanced when it comes to {{LaTeX/LaTeX|code={|}} and {{LaTeX/LaTeX|code=}|}} characters. This means that {{LaTeX/LaTeX|code=>{\bfseries}|}} is valid, while {{LaTeX/LaTeX|code=>{\textbf}|}} will not work and <code>{\textbf{}}</code> is not valid. If there is the need to use the text of the table as an argument (for instance, using the {{LaTeX/LaTeX|code=\textbf|}} to produce bold text), one should use the {{LaTeX/LaTeX|code=\bgroup|}} and {{LaTeX/LaTeX|code=\egroup|}} commands: {{LaTeX/LaTeX|code=>{\textbf\bgroup}c<{\egroup}|}} produces the intended effect. This works only for some basic LaTeX commands. For other commands, such as {{LaTeX/LaTeX|code=\underline|}} to underline text, it is necessary to temporarily store the column text in a box using {{LaTeX/LaTeX|code=lrbox|}}. First, you must define such a box with {{LaTeX/LaTeX|code=\newsavebox{\boxname}|}} and then you can define: {{LaTeX/Usage|code= >{\begin{lrbox}{\boxname} }% l% <{\end{lrbox}% \underline{\unhbox\boxname} }% } }} This stores the text in a box and afterwards, takes the text out of the box with {{LaTeX/LaTeX|code=\unhbox|}} (this destroys the box, if the box is needed again one should use {{LaTeX/LaTeX|code=\unhcopy|}} instead) and passing it to {{LaTeX/LaTeX|code=\underline|}}. (For LaTeX2e, you may want to use {{LaTeX/LaTeX|code=\usebox{\boxname}|}} instead of {{LaTeX/LaTeX|code=\unhbox\boxname|}}.) This same trick done with {{LaTeX/LaTeX|code=\raisebox|}} instead of {{LaTeX/LaTeX|code=\underline|}} can force all lines in a table to have equal height, instead of the natural varying height that can occur when e.g. math terms or superscripts occur in the text. Here is an example showing the use of both {{LaTeX/LaTeX|code=p{...}|}} and {{LaTeX/LaTeX|code=>{\centering}|}} : <syntaxhighlight lang="tex"> \begin{tabular}{>{\centering}p{3.5cm}>{\centering}p{3.5cm} } Geometry & Algebra \tabularnewline \hline Points & Addition \tabularnewline Spheres & Multiplication \end{tabular} </syntaxhighlight> Note the use of {{LaTeX/LaTeX|code=\tabularnewline|}} instead of {{LaTeX/LaTeX|code=\\|}} to avoid a <samp>Misplaced \noalign</samp> error. === @ and ! expressions === The column separator can be specified with the {{LaTeX/LaTeX|code=@{...}<!---->}} or {{LaTeX/LaTeX|code=!{...}<!---->}} constructs. It typically takes some text as its argument, and when appended to a column, it will automatically insert that text into each cell in that column before the actual data for that cell. The {{LaTeX/LaTeX|code=@{...}<!---->}} command kills the inter-column space and replaces it with whatever is between the curly braces. To keep the initial space, use {{LaTeX/LaTeX|code=!{...}<!---->}}. To add space, use {{LaTeX/LaTeX|code=@{\hspace{''width''}<!---->}<!---->}}. Admittedly, this is not that clear, and so will require a few examples to clarify. Sometimes, it is desirable in scientific tables to have the numbers aligned on the decimal point. This can be achieved by doing the following: {{LaTeX/Example|code= \begin{tabular}{r@{.}l} 3 & 14159 \\ 16 & 2 \\ 123 & 456 \\ \end{tabular} |render= <math>\begin{align}3&.14159\\16&.2\\123&.456\end{align}</math> }} The space-suppressing qualities of the @-expression actually make it quite useful for manipulating the horizontal spacing between columns. Given a basic table, and varying the column descriptions: {{LaTeX/Usage|code= \begin{tabular}{ {{!}}l{{!}}l{{!}} } \hline stuff & stuff \\ \hline stuff & stuff \\ \hline \end{tabular} }} {| | style="vertical-align: middle;" | <code><nowiki>{|l|l|}</nowiki></code> | style="vertical-align: middle;" | {{Dark mode invert|[[Image:specifier1.svg]]}} |- | style="vertical-align: middle;" | <code><nowiki>{|@{}l|l@{}|}</nowiki></code> | style="vertical-align: middle;" | {{Dark mode invert|[[Image:specifier2.svg]]}} |- | style="vertical-align: middle;" | <code><nowiki>{|@{}l@{}|l@{}|}</nowiki></code> | style="vertical-align: middle;" | {{Dark mode invert|[[Image:specifier3.svg]]}} |- | style="vertical-align: middle;" | <code><nowiki>{|@{}l@{}|@{}l@{}|}</nowiki></code> | style="vertical-align: middle;" | {{Dark mode invert|[[Image:specifier4.svg]]}} |} === Aligning columns at decimal points using dcolumn === Instead of using @-expressions to build columns of decimals aligned to the decimal point (or equivalent symbol), it is possible to center a column on the decimal separator using the {{LaTeX/Package|dcolumn}} package, which provides a new column specifier for floating point data. See the [http://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/latex/required/tools/dcolumn.pdf dcolumn package documentation] for more information, but a simple way to use {{LaTeX/Package|dcolumn}} is as follows. {{LaTeX/Example|code= \usepackage{dcolumn} \ldots \newcolumntype{d}[1]{D{.}{\cdot}{#1} } %the argument for d specifies the maximum number of decimal places \begin{tabular}{l r c d{1} } Left&Right&Center&\mathrm{Decimal}\\ 1&2&3&4\\ 11&22&33&44\\ 1.1&2.2&3.3&4.4\\ \end{tabular} |render={{Dark mode invert|[[File:LaTeX_example_dcolumn.png|200px]]}} }} A negative argument provided for the number of decimal places in the new column type allows unlimited decimal places, but may result in rather wide columns. Rounding is not applied, so the data to be tabulated should be adjusted to the number of decimal places specified. Note that a decimal aligned column is typeset in math mode, hence the use of \mathrm for the column heading in the example above. Also, text in a decimal aligned column (for example the header) will be right-aligned before the decimal separator (assuming there's no decimal separator in the text). While this may be fine for very short text, or numeric column headings, it looks cumbersome in the example above. A solution to this is to use the {{LaTeX/LaTeX|code=\multicolumn}} command described below, specifying a single column and its alignment. For example to center the header ''Decimal'' over its column in the above example, the first line of the table itself would be {{LaTeX/LaTeX|code=Left&Right&Center&\multicolumn{1}{c}{Decimal}\\}} ====Bold text and dcolumn==== To draw attention to particular entries in a table, it may be nice to use bold text. Ordinarily this is easy, but as dcolumn needs to ''see'' the decimal point it is rather harder to do. In addition, the usual bold characters are wider than their normal counterparts, meaning that although the decimals may align nicely, the figures (for more than 2--3 digits on one side of the decimal point) will be visibly misaligned. It is however possible to use normal width bold characters and define a new bold column type, as shown below.<ref>{{cite web|url=http://tex.stackexchange.com/questions/118458/decimals-in-table-dont-align-with-dcolumn-when-bolded|title=Decimals in table don't align with dcolumn when bolded|author=D Carlisle|publisher=Stackexchange}}</ref> {{LaTeX/Example|code= \usepackage{dcolumn} %here we're setting up a version of the math fonts with normal x-width \DeclareMathVersion{nxbold} \SetSymbolFont{operators}{nxbold}{OT1}{cmr} {b}{n} \SetSymbolFont{letters} {nxbold}{OML}{cmm} {b}{it} \SetSymbolFont{symbols} {nxbold}{OMS}{cmsy}{b}{n} \begin{document} \makeatletter \newcolumntype{d}{D{.}{.}{-1} } %decimal column as before %wide bold decimal column \newcolumntype{B}[3]{>{\boldmath\DC@{#1}{#2}{#3} }c<{\DC@end} } %normal width bold decimal column \newcolumntype{Z}[3]{>{\mathversion{nxbold}\DC@{#1}{#2}{#3} }c<{\DC@end} } \makeatother \begin{tabular}{l l d} Type &M & \multicolumn{1}{c}{N} \\ Normal & 1 & 22222.222 \\ Bold (standard)&10 & \multicolumn{1}{B{.}{.}{-1} }{22222.222}\\ Bold (nxbold)&100 & \multicolumn{1}{Z{.}{.}{-1} }{22222.222}\\ \end{tabular} \end{document} |render={{Dark mode invert|[[file:LaTeX example dcolumn bold.png|200px]]}} }} == Row specification == It might be convenient to apply the same command over every cell of a row, just as for column. Unfortunately the {{LaTeX/Environment|tabular}} environment cannot do that by default. We will need {{LaTeX/Package|tabu}} instead, which provides the {{LaTeX/LaTeX|code=\rowfont<!---->}} option. {{LaTeX/Usage|code= \begin{tabu}{XX} \rowfont{\bfseries\itshape\large} Header1 & Header2 \\ \hline Cell2 & Cell2 \end{tabu} }} == Spanning == To complete this tutorial, we take a quick look at how to generate slightly more complex tables. Unsurprisingly, the commands necessary have to be embedded within the table data itself. === Rows spanning multiple columns === The command for this looks like this: {{LaTeX/LaTeX|code=\multicolumn{num_cols}{alignment}{contents}<!---->}}. {{LaTeX/Parameter|num_cols}} is the number of subsequent columns to merge; {{LaTeX/Parameter|alignment}} is either {{LaTeX/Parameter|l}}, {{LaTeX/Parameter|c}}, {{LaTeX/Parameter|r}}, or to have text wrapping specify a width {{LaTeX/LaTeX|code=p{5.0cm}<!---->}} . And {{LaTeX/Parameter|contents}} is simply the actual data you want to be contained within that cell. You can also use {{LaTeX/LaTeX|code=\multicolumn{1}{alignment}{contents}<!---->}} for a single column. In this simple example, the name David Batty is an exception, shifted to the right: {{LaTeX/Example|code= \begin{tabular}{ {{!}}l{{!}}l{{!}} } \hline \multicolumn{2}{{{!}}c{{!}}}{Team sheet} \\ \hline GK & Paul Robinson \\ LB & Lucas Radebe \\ DC & Michael Duberry \\ DC & Dominic Matteo \\ RB & Dider Domi \\ MC & \multicolumn{1}{r{{!}}}{David Batty} \\ MC & Eirik Bakke \\ MC & Jody Morris \\ FW & Jamie McMaster \\ ST & Alan Smith \\ ST & Mark Viduka \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:multicolumn.svg]]}} }} === Columns spanning multiple rows === The first thing you need to do is add {{LaTeX/LaTeX|code=\usepackage{multirow}|}} to the preamble<ref name="multirow">Package multirow [http://www.ctan.org/tex-archive/macros/latex/contrib/multirow/ on CTAN]</ref>. This then provides the command needed for spanning rows: <code>\multirow{''num_rows''}{''width''}{''contents''}</code>. The arguments are pretty simple to deduce ({{LaTeX/LaTeX|code=*<!---->}} for the ''width'' means the content's natural width). {{LaTeX/Example|code= ... \usepackage{multirow} ... \begin{tabular}{ {{!}}l{{!}}l{{!}}l{{!}} } \hline \multicolumn{3}{ {{!}}c{{!}} }{Team sheet} \\ \hline Goalkeeper & GK & Paul Robinson \\ \hline \multirow{4}{*}{Defenders} & LB & Lucas Radebe \\ & DC & Michael Duburry \\ & DC & Dominic Matteo \\ & RB & Didier Domi \\ \hline \multirow{3}{*}{Midfielders} & MC & David Batty \\ & MC & Eirik Bakke \\ & MC & Jody Morris \\ \hline Forward & FW & Jamie McMaster \\ \hline \multirow{2}{*}{Strikers} & ST & Alan Smith \\ & ST & Mark Viduka \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:multirow.svg]]}} }} The main thing to note when using {{LaTeX/LaTeX|code=\multirow<!---->}} is that a blank entry must be inserted for each appropriate cell in each subsequent row to be spanned. If there is no data for a cell, just don't type anything, but you still need the "&" separating it from the next column's data. The astute reader will already have deduced that for a table of <math>n</math> columns, there must always be <math>n-1</math> ampersands in each row (unless {{LaTeX/LaTeX|code=\multicolumn<!---->}} is also used). === Spanning in both directions simultaneously === Here is a nontrivial example of how to use spanning in both directions simultaneously and have the borders of the cells drawn correctly: {{LaTeX/Example|code= \usepackage{multirow} \begin{tabular}{cc{{!}}c{{!}}c{{!}}c{{!}}c{{!}}l} \cline{3-6} & & \multicolumn{4}{ c{{!}} }{Primes} \\ \cline{3-6} & & 2 & 3 & 5 & 7 \\ \cline{1-6} \multicolumn{1}{ {{!}}c }{\multirow{2}{*}{Powers} } & \multicolumn{1}{ {{!}}c{{!}} }{504} & 3 & 2 & 0 & 1 & \\ \cline{2-6} \multicolumn{1}{ {{!}}c }{} & \multicolumn{1}{ {{!}}c{{!}} }{540} & 2 & 3 & 1 & 0 & \\ \cline{1-6} \multicolumn{1}{ {{!}}c }{\multirow{2}{*}{Powers} } & \multicolumn{1}{ {{!}}c{{!}} }{gcd} & 2 & 2 & 0 & 0 & min \\ \cline{2-6} \multicolumn{1}{ {{!}}c }{} & \multicolumn{1}{ {{!}}c{{!}} }{lcm} & 3 & 3 & 1 & 1 & max \\ \cline{1-6} \end{tabular} |render= {{Dark mode invert|[[Image:multirowandcolumnexample.svg|300px]]}} }} The command {{LaTeX/LaTeX|code=\multicolumn{1}{|c|}{...}<!---->}} is just used to draw vertical borders both on the left and on the right of the cell. Even when combined with {{LaTeX/LaTeX|code=\multirow{2}{*}{...}<!---->}}, it still draws vertical borders that only span the first row. To compensate for that, we add {{LaTeX/LaTeX|code=\multicolumn{1}{|c|}{...}<!---->}} in the following rows spanned by the multirow. Note that we cannot just use {{LaTeX/LaTeX|code=\hline<!---->}} to draw horizontal lines, since we do not want the line to be drawn over the text that spans several rows. Instead we use the command {{LaTeX/LaTeX|code=\cline{2-6}<!---->}} and opt out the first column that contains the text "Powers". Here is another example exploiting the same ideas to make the familiar and popular "2x2" or double dichotomy: {{LaTeX/Example|code= \begin{tabular}{ r{{!}}c{{!}}c{{!}} } \multicolumn{1}{r}{} & \multicolumn{1}{c}{noninteractive} & \multicolumn{1}{c}{interactive} \\ \cline{2-3} massively multiple & Library & University \\ \cline{2-3} one-to-one & Book & Tutor \\ \cline{2-3} \end{tabular} |render= {{Dark mode invert|[[Image:Latex-tables-double-dichotomy-example.svg|400px]]}} }} ==Controlling table size== === Resize tables === The {{LaTeX/Package|graphicx}} packages features the command {{LaTeX/LaTeX|code=\resizebox{width}{height}{object}<!---->}} which can be used with {{LaTeX/Environment|tabular}} to specify the height and width of a table. The following example shows how to resize a table to 8cm width while maintaining the original width/height ratio. {{LaTeX/Usage|code= \usepackage{graphicx} % ... \resizebox{8cm}{!} { \begin{tabular}... \end{tabular} } }} Resizing table including the caption {{LaTeX/Usage|code= \begin{table}[h] \resizebox{1.4\textwidth}{!}{\begin{minipage}{\textwidth} \begin{tabular}{r{{!}}c{{!}}c{{!}}} & \multicolumn{1}{c}{noninteractive} & \multicolumn{1}{c}{interactive} \\ \cline{2-3} massively multiple & Library & University \\ \cline{2-3} one-to-one & Book & Tutor \\ \cline{2-3} \end{tabular} \caption[Table caption text]{Table taken from \cite[p.10]{refid} } \label{table:name} \end{minipage} } \end{table} }} Alternatively you can use {{LaTeX/LaTeX|code=\scalebox{ratio}{object}<!---->}} in the same way but with ratios rather than fixed sizes: {{LaTeX/Usage|code= \usepackage{graphicx} % ... \scalebox{0.7}{ \begin{tabular}... \end{tabular} } }} === Changing font size === A table can be globally switched to a different font size by simply adding the desired size command (here: {{LaTeX/LaTeX|code=\footnotesize<!---->}}) in the table scope, which may be after the {{LaTeX/LaTeX|code=\begin{table}<!---->}} statement if you use floats, otherwise you need to add a group delimiter. {{LaTeX/Usage|code= {\footnotesize \begin{tabular}{{{!}} r {{!}} r {{!}}{{!}} c {{!}} c {{!}} c {{!}}} % ... \end{tabular} } }} {{LaTeX/Usage|code= \begin{table}[h]\footnotesize \caption{Performance at peak F-measure} \begin{tabular}{{{!}} r {{!}} r {{!}}{{!}} c {{!}} c {{!}} c {{!}}} % ... \end{tabular} \end{table} }} Alternatively, you can change the default font for all the tables in your document by placing the following code in the preamble: {{LaTeX/Usage|code= \let\oldtabular\tabular \renewcommand{\tabular}{\footnotesize\oldtabular} }} See [[LaTeX/Fonts#Sizing_text|Fonts]] for named font sizes. The table caption font size is not affected. To control the caption font size, see [[LaTeX/Floats,_Figures_and_Captions#Caption_Styles|Caption Styles]]. It is also possible to change the vertical space between rows using {{LaTeX/LaTeX|code=\renewcommand{\arraystretch}{0.8}<!---->}} before {{LaTeX/LaTeX|code=\begin{tabular}<!---->}}. == Colors == === Alternate row colors in tables === The {{LaTeX/Package|xcolor}} package provides the necessary commands to produce tables with alternate row colors, when loaded with the {{LaTeX/Parameter|table}} option. The command <code>\rowcolors{<''starting row''>}{<''odd color''>}{<''even color''>}</code> has to be specified right before the {{LaTeX/Environment|tabular}} environment starts. {{LaTeX/Example|code= \documentclass{article} \usepackage[table]{xcolor} \begin{document} \begin{center} \rowcolors{1}{green}{pink} \begin{tabular}{lll} odd & odd & odd \\ even & even & even\\ odd & odd & odd \\ even & even & even\\ \end{tabular} \end{center} \end{document} |render= [[File:LaTeXAlternateRowTable.svg|right]] }} The command {{LaTeX/LaTeX|code=\hiderowcolors<!---->}} is available to deactivate highlighting from a specified row until the end of the table. Highlighting can be reactivated within the table via the {{LaTeX/LaTeX|code=\showrowcolors<!---->}} command. If while using these commands you experience <samp>misplaced \noalign errors</samp> then use the commands at the very beginning or end of a row in your tabular. {{LaTeX/Usage|code=\hiderowcolors odd & odd & odd \\<!---->}} or {{LaTeX/Usage|code=odd & odd & odd \\ \showrowcolors<!---->}} === Colors of individual cells === As above this uses the {{LaTeX/Package|xcolor<!---->}} package. {{LaTeX/Usage|code= % Include this somewhere in your document \usepackage[table]{xcolor} % Enter this in the cell you wish to color a light grey. % NB: the word 'gray' here denotes the grayscale color scheme, not the color grey. '0.9' denotes how dark the grey is. \cellcolor[gray]{0.9} % The following will color the cell red. \cellcolor{red} }} == Width and stretching == We keep providing documentation for {{LaTeX/Environment|tabular*}} and {{LaTeX/Environment|tabularx}}. === The ''tabular*'' environment=== This is basically a slight extension on the original tabular version, although it requires an extra argument (before the column descriptions) to specify the preferred width of the table. {{LaTeX/Example|code= \begin{tabular*}{0.75\textwidth}{ {{!}} c {{!}} c {{!}} c {{!}} r {{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabular*} |render= {{Dark mode invert|[[Image:LaTeX TabWidth1.svg|right]]}} }} However, that may not look quite as intended. The columns are still at their natural width (just wide enough to fit their contents) while the rows are as wide as the table width specified. If you do not like this default, you must also explicitly insert extra column space. LaTeX has ''rubber lengths'', which, unlike others, are not fixed. LaTeX can dynamically decide how long the lengths should be. So, an example of this is the following. {{LaTeX/Example|code= \begin{tabular*}{0.75\textwidth}{@{\extracolsep{\fill} } {{!}} c {{!}} c {{!}} c {{!}} r {{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabular*} |render= {{Dark mode invert|[[Image:LaTeX TabWidth2.svg|right]]}} }} You will notice the {{LaTeX/LaTeX|code=@{...}<!---->}} construct added at the beginning of the column description. Within it is the {{LaTeX/LaTeX|code=\extracolsep<!---->}} command, which requires a width. A fixed width could have been used. However, by using a rubber length, such as {{LaTeX/LaTeX|code=\fill<!---->}}, the columns are automatically spaced evenly. === The ''tabularx'' package === This package provides a table environment called {{LaTeX/Environment|tabularx}}, which is similar to the {{LaTeX/Environment|tabular*}} environment except that it has a new column specifier {{LaTeX/Parameter|X}} (in uppercase). The column(s) specified with this specifier will be stretched to make the table as wide as specified, greatly simplifying the creation of tables. {{LaTeX/Example|code= \usepackage{tabularx} % ... \begin{tabularx}{\textwidth}{ {{!}}X{{!}}X{{!}}X{{!}}X{{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabularx} |render= {{Dark mode invert|[[Image:LaTeX TabXWidth1.svg|450px|right]]}} }} The content provided for the boxes is treated as for a {{LaTeX/Parameter|p}} column, except that the width is calculated automatically. If you use the package {{LaTeX/Package|array}}, you may also apply any {{LaTeX/LaTeX|code=>{\cmd}|}} or {{LaTeX/LaTeX|code=<{\cmd}|}} command to achieve specific behavior (like {{LaTeX/LaTeX|code=\centering<!---->}}, or {{LaTeX/LaTeX|code=\raggedright\arraybackslash<!---->}}) as described previously. Another option is to use {{LaTeX/LaTeX|code=\newcolumntype<!---->}} to format selected columns in a different way. It defines a new column specifier, e.g. {{LaTeX/Parameter|R}} (in uppercase). In this example, the second and fourth column is adjusted in a different way ({{LaTeX/LaTeX|code=\raggedleft<!---->}}): {{LaTeX/Example|code= \usepackage{tabularx} % ... \newcolumntype{R}{>{\raggedleft\arraybackslash}X}% \begin{tabularx}{\textwidth}{ {{!}}l{{!}}R{{!}}l{{!}}R{{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabularx} |render= {{Dark mode invert|[[Image:LaTeX TabXWidth2.svg|450px|right]]}} }} Tabularx with rows spanning multiple columns using {{LaTeX/LaTeX|code=\multicolumn<!---->}}. The two central columns are posing as one by using the {{LaTeX/Parameter|X@{}}} option. Note that the {{LaTeX/LaTeX|code=\multicolumn<!---->}} width (which in this example is 2) should equal the (in this example 1+1) width of the spanned columns: {{LaTeX/Example|code= \usepackage{tabularx} % ... \begin{tabularx}{1\textwidth}{ {{!}}>{\setlength\hsize{1\hsize}\centering}X{{!}}>{\setlength\hsize{1\hsize}\raggedleft}X@{} >{\setlength\hsize{1\hsize}\raggedright}X{{!}}>{\setlength\hsize{1\hsize}\centering}X{{!}} } \hline Label 1 & \multicolumn{2}{>{\centering\setlength\hsize{2\hsize} }X{{!}}}{Label 2} & Label 3\tabularnewline \hline 123 & 123 & 456 & 123 \tabularnewline \hline 123 & 123 & 456 & 123 \tabularnewline \hline \end{tabularx} |render= {{Dark mode invert|[[Image:LaTeX tabularx_multi.svg|450px|right]]}} }} In a way analogous to how new commands with arguments can be created with {{code|\newcommand}}, new column types with arguments can be created with {{code|\newcolumntype}} as follows: {{LaTeX/Usage|code= \usepackage{tabularx} \usepackage[table]{xcolor} %Used to color the last column % ... \newcolumntype{L}[1]{>{\hsize=#1\hsize\raggedright\arraybackslash}X}% \newcolumntype{R}[1]{>{\hsize=#1\hsize\raggedleft\arraybackslash}X}% \newcolumntype{C}[2]{>{\hsize=#1\hsize\columncolor{#2}\centering\arraybackslash}X}% \begin{tabularx}{\textwidth}{ {{!}} L{1} {{!}} R{0.5} {{!}} R{0.5} {{!}} C{2}{gray} {{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabularx} }} where since there are 4 columns, the sum of the {{code|\hsize}}'s (1 + 0.5 + 0.5 + 2) must be equal to 4. The default value used by tabularx for {{code|\hsize}} is 1. === The ''tabulary'' package === [http://www.ctan.org/pkg/tabulary <code>tabulary</code>] is a modified {{LaTeX/Package|tabular*}} allowing width of columns set for equal heights. {{LaTeX/Package|tabulary}} allows easy and convenient writing of well balanced tables. The problem with {{LaTeX/Package|tabularx}} is that it leaves much blank if your cells are almost empty. Besides, it is not easy to have different column sizes. {{LaTeX/Package|tabulary}} tries to balance the column widths so that each column has at least its natural width, without exceeding the maximum length. {{LaTeX/Usage|code= \usepackage{tabulary} ... \begin{center} \begin{tabulary}{0.7\textwidth}{LCL} Short sentences & \# & Long sentences \\ \hline This is short. & 173 & This is much loooooooonger, because there are many more words. \\ This is not shorter. & 317 & This is still loooooooonger, because there are many more words. \\ \end{tabulary} \end{center} }} The first parameter is the maximum width. {{LaTeX/Package|tabulary}} will try not to exceed it, but it will not stretch to it if there is not enough content, contrary to {{LaTeX/Package|tabularx}}. The second parameter is the column disposition. Possible values are those from the {{LaTeX/Environment|tabular}} environment, plus {| class="wikitable" | {{LaTeX/Parameter|L}} | left-justified balanced column |- | {{LaTeX/Parameter|C}} | centered balanced column |- | {{LaTeX/Parameter|R}} | right-justified balanced column |- | {{LaTeX/Parameter|J}} | left-right-justified balanced column |} These are all capitals. === The ''tabu'' environment === It works pretty much like {{LaTeX/Environment|tabularx}}. Note: ''tabu'' is currently [https://github.com/tabu-issues-for-future-maintainer/tabu/blob/master/README.md broken and unmaintained] {{LaTeX/Usage|code= \begin{tabu} to \linewidth {llX[2]lllXl} % ... \end{tabu} }} {{LaTeX/LaTeX|code=to \linewidth<!---->}} specifies the target width. The {{LaTeX/Parameter|X}} parameter can have an optional span factor. == Table across several pages == Long tables are natively supported by LaTeX thanks to the {{LaTeX/Environment|longtable}} environment, which replaces both the {{LaTeX/Environment|tabular}} and {{LaTeX/Environment|table}} environments or rather combines them into a single environment. Unfortunately, this environment does not support stretching (X columns). The {{LaTeX/Package|tabu}} package (which is [https://github.com/tabu-issues-for-future-maintainer/tabu/blob/main/README.md no longer maintained]) provides the {{LaTeX/Environment|longtabu}} environment. It has most of the features of {{LaTeX/Environment|tabu}}, with the additional capability to span multiple pages. LaTeX can do well with long tables: you can specify a header that will repeat on every page, a header for the first page only, and the same for the footer. {{LaTeX/Usage|code= \begin{longtabu} to \linewidth {lX[2]lXl} \rowfont\bfseries H1 & H2 & H3 & H4 & H5 \\ \hline \endhead \\ \hline \multicolumn{5}{r}{There is more to come} \\ \endfoot \\ \hline \endlastfoot % Content ... }} It uses syntax similar to {{LaTeX/Environment|longtable}}, so you should have a look at its documentation if you want to know more. Alternatively you can try one of the following packages [http://www.ctan.org/pkg/supertabular <code>supertabular</code>] or [http://www.ctan.org/pkg/xtab <code>xtab</code>], an extended and somewhat improved version of {{LaTeX/Package|supertabular}}. == Partial vertical lines == Adding a partial vertical line to an individual cell: {{LaTeX/Example|code= \begin{tabular}{ l c r } \hline 1 & 2 & 3 \\ \hline 4 & 5 & \multicolumn{1}{r{{!}}}{6} \\ \hline 7 & 8 & 9 \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:Partial-vertical-line-add.svg]]}} }} Removing part of a vertical line in a particular cell: {{LaTeX/Example|code= \begin{tabular}{ {{!}} l {{!}} c {{!}} r {{!}} } \hline 1 & 2 & 3 \\ \hline 4 & 5 & \multicolumn{1}{r}{6} \\ \hline 7 & 8 & 9 \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:Partial-vertical-line-remove.svg]]}} }} == Vertically centered images == Inserting images into a table row will align it at the top of the cell. By using the {{LaTeX/Package|array}} package this problem can be solved. Defining a new columntype will keep the image vertically centered. {{LaTeX/Usage|code= \newcolumntype{V}{>{\centering\arraybackslash} m{.4\linewidth} } }} Or use a parbox to center the image. {{LaTeX/Usage|code= \parbox[c]{1em}{\includegraphics{image.png} } }} A raisebox works as well, also allowing to manually fine-tune the alignment with its first parameter. {{LaTeX/Usage|code= \raisebox{-.5\height}{\includegraphics{image.png} } }} == Footnotes in tables == The {{LaTeX/Environment|tabular}} environment does not handle footnotes properly. The {{LaTeX/Environment|longtable}} fixes that. == Professional tables == Many professionally typeset books and journals feature simple tables, which have appropriate spacing above and below lines, and almost ''never'' use vertical rules. Many examples of LaTeX tables (including this Wikibook) showcase the use of vertical rules (using "|"), and double-rules (using {{LaTeX/LaTeX|code=\hline\hline<!---->}} or "||"), which are regarded as unnecessary and distracting in a professionally published form. The [http://www.ctan.org/tex-archive/macros/latex/contrib/booktabs/ booktabs] package is useful for easily providing this professionalism in LaTeX tables, and the [http://mirrors.ctan.org/macros/latex/contrib/booktabs/booktabs.pdf documentation] also provides guidelines on what constitutes a "good" table. In brief, the package uses {{LaTeX/LaTeX|code=\toprule<!---->}} for the uppermost rule (or line), {{LaTeX/LaTeX|code=\midrule<!---->}} for the rules appearing in the middle of the table (such as under the header), and {{LaTeX/LaTeX|code=\bottomrule<!---->}} for the lowermost rule. This ensures that the rule weight and spacing are acceptable. In addition, {{LaTeX/LaTeX|code=\cmidrule<!---->}} can be used for mid-rules that span specified columns. The following example contrasts the use of booktabs and two equivalent normal LaTeX implementations (the second example requires {{LaTeX/LaTeX|code=\usepackage{array}<!---->}} or {{LaTeX/LaTeX|code=\usepackage{dcolumn}<!---->}}, and the third example requires {{LaTeX/LaTeX|code=\usepackage{booktabs}<!---->}} in the preamble). === Normal LaTeX === {{LaTeX/Example|code= \begin{tabular}{llr} \hline \multicolumn{2}{c}{Item} \\ \cline{1-2} Animal & Description & Price (\$) \\ \hline Gnat & per gram & 13.65 \\ & each & 0.01 \\ Gnu & stuffed & 92.50 \\ Emu & stuffed & 33.33 \\ Armadillo & frozen & 8.99 \\ \hline \end{tabular} |render={{Dark mode invert|[[Image:LaTeX animal table.svg]]}}}} === Using {{LaTeX/Package|array}} === {{LaTeX/Example|code= \usepackage{array} %or \usepackage{dcolumn} ... \begin{tabular}{llr} \firsthline \multicolumn{2}{c}{Item} \\ \cline{1-2} Animal & Description & Price (\$) \\ \hline Gnat & per gram & 13.65 \\ & each & 0.01 \\ Gnu & stuffed & 92.50 \\ Emu & stuffed & 33.33 \\ Armadillo & frozen & 8.99 \\ \lasthline \end{tabular} |render={{Dark mode invert|[[Image:LaTeX animal table with array.svg]]}}}} === Using {{LaTeX/Package|booktabs}} === {{LaTeX/Example|code= \usepackage{booktabs} \begin{tabular}{llr} \toprule \multicolumn{2}{c}{Item} \\ \cmidrule(r){1-2} Animal & Description & Price (\$) \\ \midrule Gnat & per gram & 13.65 \\ & each & 0.01 \\ Gnu & stuffed & 92.50 \\ Emu & stuffed & 33.33 \\ Armadillo & frozen & 8.99 \\ \bottomrule \end{tabular} |render={{Dark mode invert|[[Image:LaTeX animal table with booktabs.svg]]}}}} Usually the need arises for footnotes under a table (and not at the bottom of the page), with a caption properly spaced above the table. These are addressed by the [http://www.ctan.org/tex-archive/macros/latex/contrib/ctable/ ctable] package. It provides the option of a short caption given to be inserted in the list of tables, instead of the actual caption (which may be quite long and inappropriate for the list of tables). The {{LaTeX/Package|ctable}} uses the {{LaTeX/Package|booktabs}} package. == Sideways tables == Tables can also be put on their side within a document using the {{LaTeX/Package|rotating}} or the {{LaTeX/Package|rotfloat}} package. See the [[LaTeX/Rotations|Rotations]] chapter. == Table with legend == To add a legend to a table the [http://www.ctan.org/tex-archive/macros/latex/contrib/caption/ caption] package can be used. With the caption package a {{LaTeX/LaTeX|code=\caption*{...}<!---->}} statement can be added besides the normal {{LaTeX/LaTeX|code=\caption{...}<!---->}}. Example: {{LaTeX/Usage|code= \begin{table} \begin{tabular}{{{!}} r {{!}} r {{!}}{{!}} c {{!}} c {{!}} c {{!}}} ... \end{tabular} \caption{A normal caption} \caption*{ A legend, even a table can be used \begin{tabular}{l l} item 1 & explanation 1 \\ \end{tabular} } \end{table} }} The normal caption is needed for labels and references. == The ''eqparbox'' package == On rare occasions, it might be necessary to stretch every row in a table to the natural width of its longest line, for instance when one has the same text in two languages and wishes to present these next to each other with lines synching up. A tabular environment helps control where lines should break, but cannot justify the text, which leads to ragged right edges. The {{LaTeX/Package|eqparbox}} package provides the command {{LaTeX/LaTeX|code=\eqmakebox<!---->}} which is like {{LaTeX/LaTeX|code=\makebox<!---->}} but instead of a {{LaTeX/Parameter|width}} argument, it takes a tag. During compilation it bookkeeps which {{LaTeX/LaTeX|code=\eqmakebox<!---->}} with a certain tag contains the widest text and can stretch all {{LaTeX/LaTeX|code=\eqmakebox<!---->}}es with the same tag to that width. Combined with the {{LaTeX/Package|array}} package, one can define a column specifier that justifies the text in all lines:comand {{LaTeX/Usage|code= \newsavebox{\tstretchbox} \newcolumntype{S}[1]{% >{\begin{lrbox}{\tstretchbox} }% l% <{\end{lrbox}% \eqmakebox[#1][s]{\unhcopy\tstretchbox} }% } }} See the documentation of the {{LaTeX/Package|eqparbox}} package for more details. == The ''paracol'' package == The various tabular environments available for LaTeX are feature rich; however, they lack the ability to '''automatically page break large rows'''. The paracol package provides automatic page breaks in between rows and in certain cases can replace the tabular environment. Such situations could be common in documents that require translations and definitions, which may also includes lists. For further detail see the documentation of the {{LaTeX/Package|paracol}} package. == Floating with ''table'' == In WYSIWYG document processors, it is common to put tables in the middle of the text. This is what we have been doing until now. Professional documents, however, often make it a point to print tables on a dedicated page so that they do not disrupt the flow. From the point of view of the source code, one has no idea on which page the current text is going to lie, so it is hardly possible to guess which page may be appropriate for our table. LaTeX can automate this task by abstracting objects such as tables, pictures, etc., and deciding for us where they might fit best. This abstraction is called a ''float''. Generally, an object that is floated will appear in the vicinity of its introduction in the source file, but one can choose to control its position also. To tell LaTeX we want to use our table as a float, we need to put a {{LaTeX/Environment|table}} environment around the {{LaTeX/Environment|tabular}} environment, which is able to float and add a label and caption. {{Warning| Please understand: you do not ''have to'' use floating tables. If you want to place your tables where they lie in your source code and you do not need any label, do not use {{LaTeX/Environment|table}} at all! This is a very common misunderstanding among newcomers. }} The {{LaTeX/Environment|table}} environment initiates a type of float just as the environment {{LaTeX/Environment|figure}}. In fact, the two bear a lot of similarities (positioning, captions, etc.). More information about floating environments, captions etc. can be found in [[LaTeX/Floats,_Figures_and_Captions|Floats, Figures and Captions]]. The environment names may now seem quite confusing. Let's sum it up: * {{LaTeX/Environment|tabular}} is for the content itself (columns, lines, etc.). * {{LaTeX/Environment|table}} is for the location of the table on the document, plus caption and label support. {{LaTeX/Usage|code= \begin{table}[position specifier] \centering \begin{tabular}{{{!}}l{{!}}} ... your table ... \end{tabular} \caption{This table shows some data} \label{tab:myfirsttable} \end{table} }} In the table, we used a label, so now we can refer to it just like any other reference: {{LaTeX/Usage|code= \ref{tab:myfirsttable} }} The {{LaTeX/Environment|table}} environment is also useful when you want to have a list of tables at the beginning or end of your document with the command {{LaTeX/Usage|code= \listoftables }} The captions now show up in the list of tables, if displayed. You can set the optional parameter {{LaTeX/Parameter|position specifier}} to define the position of the table, where it should be placed. The following characters are all possible placements. Using sequences of it define your "wishlist" to LaTeX. {| class="wikitable" |- | {{LaTeX/Parameter|h}} | where the table is declared ('''h'''ere) |- | {{LaTeX/Parameter|t}} | at the '''t'''op of the page |- | {{LaTeX/Parameter|b}} | at the '''b'''ottom of the page |- | {{LaTeX/Parameter|p}} | on a dedicated '''p'''age of floats |- | {{LaTeX/Parameter|!}} |override the default float restrictions. E.g., the maximum size allowed of a {{LaTeX/Parameter|b}} float is normally quite small; if you want a large one, you need this {{LaTeX/Parameter|!}} parameter as well. |- |} Default is {{LaTeX/Parameter|tbp}}, which means that it is by default placed on the top of the page. If that's not possible, it's placed at the bottom if possible, or finally with other floating environments on an extra page. You can force LaTeX to use one given position. E.g. {{LaTeX/Parameter|[!h]}} forces LaTeX to place it exactly where you place it (Except when it's really impossible, e.g you place a table ''here'' and this place would be the last line on a page). Again, understand it correctly: it urges LaTeX to put the table at a specific place, but it will not be placed there if LaTeX thinks it will not look great. If you really want to place your table manually, do not use the {{LaTeX/Environment|table}} environment. Centering the table horizontally works like everything else, using the {{LaTeX/LaTeX|code=\centering<!---->}} command just after opening the {{LaTeX/Environment|table}} environment, or by enclosing it with a {{LaTeX/Environment|center}} environment. == Using spreadsheets and data analysis tools == For complex or dynamic tables, you may want to use a spreadsheet. You might save lots of time by building tables using specialized software and exporting them in LaTeX format. The following plugins and libraries are available for some popular software: * [http://calc2latex.sourceforge.net/ calc2latex]: for LibreOffice and OpenOffice.org Calc spreadsheets, * [http://www.ctan.org/tex-archive/support/excel2latex/ excel2latex]: for Microsoft Office Excel, * [https://github.com/TheChymera/matrix2latex matrix2latex]: for Python and MATLAB, * [http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_latex.html pandas]: pandas DataFrame's have a method to convert data they contain to latex, * [http://rubygems.org/gems/latex-tools latex-tools]: a Ruby library, * [http://cran.r-project.org/web/packages/xtable/index.html xtable]: a library for R, * [http://orgmode.org/ org-mode]: for Emacs users, org-mode tables can be used inline in LaTeX documents, see [https://www.gnu.org/software/emacs/manual/html_node/org/A-LaTeX-example.html] for a tutorial. * [http://emacswiki.org/emacs/AlignCommands Emacs align commands]: the align commands can clean up a messy LaTeX table. * [http://truben.no/latex/table/ Online Table generator for LATeX]: An online tool for creating simple tables within the browser. LaTeX format is directly generated as you type. * [http://www.tablesgenerator.com/ Create LaTeX tables online ]: Online tool. However, copying the generated source code to your document is not convenient at all. For maximum flexibility, generate the source code to a separate file which you can input from your main document file with the {{LaTeX/LaTeX|code=\input<!---->}} command. If your spreadsheet supports command-line, you can generate your complete document (table included) in one command, using a Makefile for example. See [[LaTeX/Modular Documents|Modular Documents]] for more details. == Need more features? == Have a look at one of the following packages: * [http://www.ctan.org/pkg/hhline <code>hhline</code>]: do whatever you want with horizontal lines * [http://www.ctan.org/pkg/array <code>array</code>]: gives you more freedom on how to define columns * [http://www.ctan.org/pkg/colortbl <code>colortbl</code>]: make your table more colorful * <code>[https://ctan.org/pkg/threeparttable threeparttable]</code> makes it possible to put footnotes both within the table and its caption * [http://www.ctan.org/pkg/arydshln <code>arydshln</code>]: creates dashed horizontal and vertical lines * [http://www.ctan.org/pkg/ctable <code>ctable</code>]: allows for footnotes under table and properly spaced caption above (incorporates booktabs package) * [http://www.ctan.org/pkg/slashbox <code>slashbox</code>]: create 2D tables with the first cell containing a description for both axes. Not available in Tex Live 2011 or later. * <code>[https://ctan.org/pkg/diagbox diagbox]</code>: compatible to <code>slashbox</code>, come with Tex Live 2011 or later * [http://www.ctan.org/pkg/dcolumn <code>dcolumn</code>]: decimal point alignment of numeric cells * [http://www.ctan.org/pkg/rccol <code>rccol</code>]: advanced decimal point alignment of numeric cells with rounding * [http://www.ctan.org/pkg/numprint <code>numprint</code>]: print numbers, in the current mode (text or math) in order to use the correct font, with separators, exponent and/or rounded to a given number of digits. tabular(*), array, tabularx, and longtable environments are supported using all features of numprint * [http://www.ctan.org/pkg/spreadtab <code>spreadtab</code>]: spread sheets allowing the use of formulae * [http://ctan.org/tex-archive/macros/latex/contrib/siunitx <code>siunitx</code>]: alignment of tabular entries * <code>[https://www.ctan.org/pkg/pgfplotstable pgfplotstable]</code>: loads, rounds, formats and postprocesses numerical tables, e.g. by importing the data directly from .csv (comma-separated value) files instead of manually writing the whole tables in LaTeX code. Programs such as Excel, LibreOffice Calc etc. can export data sheets as .csv files. == References == {{reflist|2}} <noinclude> {{LaTeX/Bottom|Rotations|Title Creation}} </noinclude> [[fr:LaTeX/Faire_des_tableaux]] [[nl:LaTeX/Tabellen]] [[pl:LaTeX/Tabele]] rdvoq5v2pi4tsgskcjt0dkilmkqcitx 4675500 4675499 2026-10-11T07:46:31Z Pristome 3519119 Undid edits by [[Special:Contribs/~2026-54796-15|~2026-54796-15]] ([[User talk:~2026-54796-15|talk]]) to last version by Hoo man 4675500 wikitext text/x-wiki <noinclude>{{LaTeX/Top}} </noinclude> Tables are a common feature in academic writing, often used to summarize research results. Mastering the art of table construction in LaTeX is therefore necessary to produce quality papers and with sufficient practice one can print beautiful tables of any kind. Keeping in mind that LaTeX is not a spreadsheet; it makes sense to use a dedicated tool to build tables and then to export these tables into the document. Basic tables are not too taxing, but anything more advanced can take a fair bit of construction; in these cases, more advanced packages can be very useful. However, first it is important to know the basics. Once you are comfortable with basic LaTeX tables, you might have a look at more advanced packages or the [[#Using spreadsheets and data analysis tools|export options of your favorite spreadsheet]]. Thanks to the modular nature of LaTeX, the whole process can be automated in a fairly comfortable way. == Introduction == LaTeX has built-in support to typeset tables and provides two environments: {{LaTeX/Environment|tabular}} and {{LaTeX/Environment|table}}. To typeset material in rows and columns, the {{LaTeX/Environment|tabular}} environment is needed; the optional {{LaTeX/Environment|table}} environment is a container for floating material similar to {{LaTeX/Environment|figure}}, into which a {{LaTeX/Environment|tabular}} environment may be included. The {{LaTeX/Environment|table}} environment contains the caption and defines the float for the table, i.e., where in the document the table should be positioned and whether we want it to be displayed centered. The {{LaTeX/Inline|code=\caption}} and {{LaTeX/Inline|code=\label}} commands can be used in the same way as for pictures. For more information about the {{LaTeX/Environment|table}} environment, see the [[#Floating with table|Floating with ''table'']] section. In any case, the actual content of the table is contained within the {{LaTeX/Environment|tabular}} environment. == The ''tabular'' environment == The {{LaTeX/Environment|tabular}} environment can be used to typeset tables with optional horizontal and vertical lines. LaTeX determines the width of the columns automatically. The first line of the environment has the form: {{LaTeX/Usage|code= \begin{tabular}[pos]{table spec} }} The {{LaTeX/Parameter|table spec}} argument tells LaTeX the alignment to be used in each column and the vertical lines to insert. The number of columns does not need to be specified as it is inferred by looking at the number of arguments provided. It is also possible to add vertical lines between the columns here. The following symbols are available to describe the table columns (some of them require that the package {{LaTeX/Package|array}} has been loaded): {| class="wikitable" | {{LaTeX/Parameter|l}} | left-justified column |- | {{LaTeX/Parameter|c}} | centered column |- | {{LaTeX/Parameter|r}} | right-justified column |- | {{LaTeX/Parameter|p{'width'}<!---->}} | paragraph column with text vertically aligned at the top |- | {{LaTeX/Parameter|m{'width'}<!---->}} | paragraph column with text vertically aligned in the middle (requires array package) |- | {{LaTeX/Parameter|b{'width'}<!---->}} | paragraph column with text vertically aligned at the bottom (requires array package) |- | <code><nowiki>|</nowiki></code> | vertical line |- | <code><nowiki>||</nowiki></code> | double vertical line |} By default, if the text in a column is too wide for the page, LaTeX won’t automatically wrap it. Using {{LaTeX/Parameter|p{'width'}<!---->}} you can define a special type of column which will wrap-around the text as in a normal paragraph. You can pass the width using any unit supported by LaTeX, such as 'pt' and 'cm', or ''command lengths'', such as {{LaTeX/LaTeX|code=\textwidth<!---->}}. You can find a list in chapter [[LaTeX/Lengths|Lengths]]. The optional parameter {{LaTeX/Parameter|pos}} can be used to specify the vertical position of the table relative to the baseline of the surrounding text. In most cases, you will not need this option. It becomes relevant only if your table is not in a paragraph of its own. You can use the following letters: {| class="wikitable" |- | {{LaTeX/Parameter|b}} | bottom |- | {{LaTeX/Parameter|c}} | center (default) |- | {{LaTeX/Parameter|t}} | top |- |} To specify a font format (such as bold, italic, etc.) for an entire column, you can add {{LaTeX/LaTeX|code=>{\format}<!---->}} before you declare the alignment. For example {{LaTeX/LaTeX|code=\begin{tabular}{ >{\bfseries}l c >{\itshape}r }<!---->}} will indicate a three column table with the first one aligned to the left and in bold font, the second one aligned in the center and with normal font, and the third aligned to the right and in italic. The "array" package needs to be activated in the preamble for this to work. In the first line you have pointed out how many columns you want, their alignment and the vertical lines to separate them. Once in the environment, you have to introduce the text you want, separating between cells and introducing new lines. The commands you have to use are the following: {| class="wikitable" | {{LaTeX/LaTeX|code=&<!---->}} | column separator |- | {{LaTeX/LaTeX|code=\\<!---->}} | start new row (additional space may be specified after {{LaTeX/LaTeX|code=\\<!---->}} using square brackets, such as {{LaTeX/Parameter|\\[6pt]}}) |- | {{LaTeX/LaTeX|code=\hline<!---->}} | horizontal line |- | {{LaTeX/LaTeX|code=\newline<!---->}} | start a new line within a cell (in a paragraph column) |- | {{LaTeX/LaTeX|code=\cline{i-j}<!---->}} | partial horizontal line beginning in column ''i'' and ending in column ''j'' |} Note, any white space inserted between these commands is purely down to one's preferences. I personally add spaces between to make it easier to read. === Basic examples === This example shows how to create a simple table in LaTeX. It is a three-by-three table, but without any lines. {{LaTeX/Example|code= \begin{tabular}{ l c r } 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{tabular} |render= <math>\begin{array}{lcr} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{array}</math> }} Expanding upon that by including some vertical lines: {{LaTeX/Example|code= \begin{tabular}{ l {{!}} c {{!}} r } 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{tabular} |render= <math>\begin{array}{l|c||r} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{array}</math> }} To add horizontal lines to the very top and bottom edges of the table: {{LaTeX/Example|code= \begin{tabular}{ l {{!}} c {{!}} r } \hline 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \hline \end{tabular} |render= <math>\begin{array}{l|c||r}\hline 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \hline \end{array}</math> }} And finally, to add lines between all rows, as well as centering (notice the use of the center environment - of course, the result of this is not obvious from the preview on this web page): {{LaTeX/Example|code= \begin{center} \begin{tabular}{ l {{!}} c {{!}} r } \hline 1 & 2 & 3 \\ \hline 4 & 5 & 6 \\ \hline 7 & 8 & 9 \\ \hline \end{tabular} \end{center} |render= <math>\begin{array}{l|c||r}\hline 1 & 2 & 3 \\ \hline 4 & 5 & 6 \\ \hline 7 & 8 & 9 \\ \hline \end{array}</math> }} {{LaTeX/Example|code= \begin{center} \begin{tabular}{ {{!}} l {{!}} c {{!}} r } \hline 1 & 2 & 3 \\ \hline 4 & 5 & 6 \\ \hline 7 & 8 & 9 \\ \hline \end{tabular} \end{center} |render= <math>\begin{array}{|l||c|||r}\hline 1 & 2 & 3 \\ \hline 4 & 5 & 6 \\ \hline \hline 7 & 8 & 9 \\ \hline \end{array}</math> }} {{LaTeX/Example|code= \begin{tabular}{{{!}}r{{!}}l{{!}}} \hline 7C0 & hexadecimal \\ 3700 & octal \\ \cline{2-2} 11111000000 & binary \\ \hline \hline 1984 & decimal \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:Latex example tabular cline.svg|250px]]}} }} === Text wrapping in tables === LaTeX's algorithms for formatting tables have a few shortcomings. One is that it will not automatically wrap text in cells, even if it overruns the width of the page. For columns that will contain text whose length exceeds the column's desired width, it is recommended that you use the {{LaTeX/Parameter|p}} attribute and specify the desired width of the column (although it may take some trial-and-error to get the result you want). For a more convenient method, have a look at [[#The tabularx package|The tabularx package]], or [[#The tabulary package|The tabulary package]]. Instead of {{LaTeX/Parameter|p}}, use the {{LaTeX/Parameter|m}} attribute to have the lines aligned toward the middle of the box or the {{LaTeX/Parameter|b}} attribute to align along the bottom of the box. Here is a simple example. The following code creates two tables with the same code; the only difference is that the last column of the second one has a defined width of 5 centimeters, while in the first one we didn't specify any width. Compiling this code: {{LaTeX/Usage|code= \documentclass{article} \usepackage[english]{babel} \begin{document} Without specifying width for last column: \begin{center} \begin{tabular}{{{!}} l {{!}} l {{!}} l {{!}} l {{!}}} \hline Day & Min Temp & Max Temp & Summary \\ \hline Monday & 11C & 22C & A clear day with lots of sunshine. However, the strong breeze will bring down the temperatures. \\ \hline Tuesday & 9C & 19C & Cloudy with rain, across many northern regions. Clear spells across most of Scotland and Northern Ireland, but rain reaching the far northwest. \\ \hline Wednesday & 10C & 21C & Rain will still linger for the morning. Conditions will improve by early afternoon and continue throughout the evening. \\ \hline \end{tabular} \end{center} With width specified: \begin{center} \begin{tabular}{ {{!}} l {{!}} l {{!}} l {{!}} p{5cm} {{!}}} \hline Day & Min Temp & Max Temp & Summary \\ \hline Monday & 11C & 22C & A clear day with lots of sunshine. However, the strong breeze will bring down the temperatures. \\ \hline Tuesday & 9C & 19C & Cloudy with rain, across many northern regions. Clear spells across most of Scotland and Northern Ireland, but rain reaching the far northwest. \\ \hline Wednesday & 10C & 21C & Rain will still linger for the morning. Conditions will improve by early afternoon and continue throughout the evening. \\ \hline \end{tabular} \end{center} \end{document} }} You get the following output: {{Dark mode invert|[[Image:Latex example wrapped table.svg|800px|center]]}} Note that the first table has been cropped, since the output is wider than the page width. === Manually broken paragraphs in table cells === Sometimes it is necessary to not rely on the breaking algorithm when using the {{LaTeX/Parameter|p}} specifier, but rather specify the line breaks by hand. In this case it is easiest to use a {{LaTeX/LaTeX|code=\parbox<!---->}}: {{LaTeX/Usage|code= \begin{tabular}{cc} boring cell content & \parbox[t]{5cm}{rather long par\\new par} \end{tabular} }} Here the {{LaTeX/Parameter|t}} argument controls the placement of the text inside the box. Other allowed values are {{LaTeX/Parameter|c}} for center and {{LaTeX/Parameter|b}} for bottom. === Space between columns === To tweak the space between columns (LaTeX will by default choose very tight columns), one can alter the column separation: {{LaTeX/LaTeX|code=\setlength{\tabcolsep}{5pt}<!---->}}. The default value is 6pt. One can also introduce a horizontal space with hspace like this: {{LaTeX/LaTeX|code=\begin{tabular}{r@{\hspace{1in}<!---->}<!---->rr}<!---->}} There are different options for the hspace [[LaTeX/Lengths|length]]. === Space between rows === Re-define the {{LaTeX/LaTeX|code=\arraystretch<!---->}} command to set the space between rows: {{LaTeX/Usage|code= \renewcommand{\arraystretch}{1.5} }} Default value is 1.0. An alternative way to adjust the rule spacing is to add {{LaTeX/LaTeX|code=\noalign{\smallskip}<!---->}} before or after the {{LaTeX/LaTeX|code=\hline<!---->}} and {{LaTeX/LaTeX|code=\cline{i-j}<!---->}} commands: {{LaTeX/Usage|code= \begin{tabular}{ {{!}} l {{!}} l {{!}} r {{!}} } \hline\noalign{\smallskip} \multicolumn{2}{c}{Item} \\ \cline{1-2}\noalign{\smallskip} Animal & Description & Price (\$) \\ \noalign{\smallskip}\hline\noalign{\smallskip} Gnat & per gram & 13.65 \\ & each & 0.01 \\ Gnu & stuffed & 92.50 \\ Emu & stuffed & 33.33 \\ Armadillo & frozen & 8.99 \\ \noalign{\smallskip}\hline \end{tabular} }} You may also specify the skip after a line explicitly using glue after the line terminator {{LaTeX/Usage|code= \begin{tabular}{ll} \hline Mineral & Color \\[1cm] Ruby & red \\ Sapphire & blue \\ \hline \end{tabular} }} === Other environments inside tables === If you use some LaTeX environments inside table cells, like {{LaTeX/Environment|verbatim}} or {{LaTeX/Environment|enumerate}}: {{LaTeX/Usage|code= \begin{tabular}{c c} \hline \begin{verbatim} code \end{verbatim} & description \\ \hline \end{tabular} }} you might encounter errors similar to <syntaxhighlight lang="output"> ! LaTeX Error: Something's wrong--perhaps a missing \item. </syntaxhighlight> To solve this problem, change [[#The tabular environment|column specifier]] to "paragraph" ({{LaTeX/Parameter|p}}, {{LaTeX/Parameter|m}} or {{LaTeX/Parameter|b}}). {{LaTeX/Usage|code= \begin{tabular}{m{5cm} c} }} === Defining multiple columns === It is possible to define many identically aligned columns at once using the {{LaTeX/LaTeX|code=*{num}{str}<!---->}} syntax. This is particularly useful when your table has many columns. Here is a table with six centered columns flanked by a single column on each side: {{LaTeX/Example|code= \begin{tabular}{l*{6}{c}r} Team & P & W & D & L & F & A & Pts \\ \hline Manchester United & 6 & 4 & 0 & 2 & 10 & 5 & 12 \\ Celtic & 6 & 3 & 0 & 3 & 8 & 9 & 9 \\ Benfica & 6 & 2 & 1 & 3 & 7 & 8 & 7 \\ FC Copenhagen & 6 & 2 & 1 & 3 & 5 & 8 & 7 \\ \end{tabular} |render= {{Dark mode invert|[[Image:Latex example defining multiple columns.svg|450px]]}} }} === Column specification using <code>>{\cmd}</code> and <code><{\cmd}</code> === The column specification can be altered using the {{LaTeX/Package|array}} package. This is done in the argument of the tabular environment using {{LaTeX/LaTeX|code=>{\command}}} for commands executed right ''before'' each column element and {{LaTeX/LaTeX|code=<{\command}}} for commands to be executed right ''after'' each column element. As an example: to get a column in math mode enter: <syntaxhighlight lang="tex" inline>\begin{tabular}{>{$}c<{$}}</syntaxhighlight>. Another example is changing the font: {{LaTeX/LaTeX|code=\begin{tabular}{>{\small}c}|}} to print the column in a small font. The argument of the {{LaTeX/LaTeX|code=>|}} and {{LaTeX/LaTeX|code=<|}} specifications must be correctly balanced when it comes to {{LaTeX/LaTeX|code={|}} and {{LaTeX/LaTeX|code=}|}} characters. This means that {{LaTeX/LaTeX|code=>{\bfseries}|}} is valid, while {{LaTeX/LaTeX|code=>{\textbf}|}} will not work and <code>{\textbf{}}</code> is not valid. If there is the need to use the text of the table as an argument (for instance, using the {{LaTeX/LaTeX|code=\textbf|}} to produce bold text), one should use the {{LaTeX/LaTeX|code=\bgroup|}} and {{LaTeX/LaTeX|code=\egroup|}} commands: {{LaTeX/LaTeX|code=>{\textbf\bgroup}c<{\egroup}|}} produces the intended effect. This works only for some basic LaTeX commands. For other commands, such as {{LaTeX/LaTeX|code=\underline|}} to underline text, it is necessary to temporarily store the column text in a box using {{LaTeX/LaTeX|code=lrbox|}}. First, you must define such a box with {{LaTeX/LaTeX|code=\newsavebox{\boxname}|}} and then you can define: {{LaTeX/Usage|code= >{\begin{lrbox}{\boxname} }% l% <{\end{lrbox}% \underline{\unhbox\boxname} }% } }} This stores the text in a box and afterwards, takes the text out of the box with {{LaTeX/LaTeX|code=\unhbox|}} (this destroys the box, if the box is needed again one should use {{LaTeX/LaTeX|code=\unhcopy|}} instead) and passing it to {{LaTeX/LaTeX|code=\underline|}}. (For LaTeX2e, you may want to use {{LaTeX/LaTeX|code=\usebox{\boxname}|}} instead of {{LaTeX/LaTeX|code=\unhbox\boxname|}}.) This same trick done with {{LaTeX/LaTeX|code=\raisebox|}} instead of {{LaTeX/LaTeX|code=\underline|}} can force all lines in a table to have equal height, instead of the natural varying height that can occur when e.g. math terms or superscripts occur in the text. Here is an example showing the use of both {{LaTeX/LaTeX|code=p{...}|}} and {{LaTeX/LaTeX|code=>{\centering}|}} : <syntaxhighlight lang="tex"> \begin{tabular}{>{\centering}p{3.5cm}>{\centering}p{3.5cm} } Geometry & Algebra \tabularnewline \hline Points & Addition \tabularnewline Spheres & Multiplication \end{tabular} </syntaxhighlight> Note the use of {{LaTeX/LaTeX|code=\tabularnewline|}} instead of {{LaTeX/LaTeX|code=\\|}} to avoid a <samp>Misplaced \noalign</samp> error. === @ and ! expressions === The column separator can be specified with the {{LaTeX/LaTeX|code=@{...}<!---->}} or {{LaTeX/LaTeX|code=!{...}<!---->}} constructs. It typically takes some text as its argument, and when appended to a column, it will automatically insert that text into each cell in that column before the actual data for that cell. The {{LaTeX/LaTeX|code=@{...}<!---->}} command kills the inter-column space and replaces it with whatever is between the curly braces. To keep the initial space, use {{LaTeX/LaTeX|code=!{...}<!---->}}. To add space, use {{LaTeX/LaTeX|code=@{\hspace{''width''}<!---->}<!---->}}. Admittedly, this is not that clear, and so will require a few examples to clarify. Sometimes, it is desirable in scientific tables to have the numbers aligned on the decimal point. This can be achieved by doing the following: {{LaTeX/Example|code= \begin{tabular}{r@{.}l} 3 & 14159 \\ 16 & 2 \\ 123 & 456 \\ \end{tabular} |render= <math>\begin{align}3&.14159\\16&.2\\123&.456\end{align}</math> }} The space-suppressing qualities of the @-expression actually make it quite useful for manipulating the horizontal spacing between columns. Given a basic table, and varying the column descriptions: {{LaTeX/Usage|code= \begin{tabular}{ {{!}}l{{!}}l{{!}} } \hline stuff & stuff \\ \hline stuff & stuff \\ \hline \end{tabular} }} {| | style="vertical-align: middle;" | <code><nowiki>{|l|l|}</nowiki></code> | style="vertical-align: middle;" | {{Dark mode invert|[[Image:specifier1.svg]]}} |- | style="vertical-align: middle;" | <code><nowiki>{|@{}l|l@{}|}</nowiki></code> | style="vertical-align: middle;" | {{Dark mode invert|[[Image:specifier2.svg]]}} |- | style="vertical-align: middle;" | <code><nowiki>{|@{}l@{}|l@{}|}</nowiki></code> | style="vertical-align: middle;" | {{Dark mode invert|[[Image:specifier3.svg]]}} |- | style="vertical-align: middle;" | <code><nowiki>{|@{}l@{}|@{}l@{}|}</nowiki></code> | style="vertical-align: middle;" | {{Dark mode invert|[[Image:specifier4.svg]]}} |} === Aligning columns at decimal points using dcolumn === Instead of using @-expressions to build columns of decimals aligned to the decimal point (or equivalent symbol), it is possible to center a column on the decimal separator using the {{LaTeX/Package|dcolumn}} package, which provides a new column specifier for floating point data. See the [http://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/latex/required/tools/dcolumn.pdf dcolumn package documentation] for more information, but a simple way to use {{LaTeX/Package|dcolumn}} is as follows. {{LaTeX/Example|code= \usepackage{dcolumn} \ldots \newcolumntype{d}[1]{D{.}{\cdot}{#1} } %the argument for d specifies the maximum number of decimal places \begin{tabular}{l r c d{1} } Left&Right&Center&\mathrm{Decimal}\\ 1&2&3&4\\ 11&22&33&44\\ 1.1&2.2&3.3&4.4\\ \end{tabular} |render={{Dark mode invert|[[File:LaTeX_example_dcolumn.png|200px]]}} }} A negative argument provided for the number of decimal places in the new column type allows unlimited decimal places, but may result in rather wide columns. Rounding is not applied, so the data to be tabulated should be adjusted to the number of decimal places specified. Note that a decimal aligned column is typeset in math mode, hence the use of \mathrm for the column heading in the example above. Also, text in a decimal aligned column (for example the header) will be right-aligned before the decimal separator (assuming there's no decimal separator in the text). While this may be fine for very short text, or numeric column headings, it looks cumbersome in the example above. A solution to this is to use the {{LaTeX/LaTeX|code=\multicolumn}} command described below, specifying a single column and its alignment. For example to center the header ''Decimal'' over its column in the above example, the first line of the table itself would be {{LaTeX/LaTeX|code=Left&Right&Center&\multicolumn{1}{c}{Decimal}\\}} ====Bold text and dcolumn==== To draw attention to particular entries in a table, it may be nice to use bold text. Ordinarily this is easy, but as dcolumn needs to ''see'' the decimal point it is rather harder to do. In addition, the usual bold characters are wider than their normal counterparts, meaning that although the decimals may align nicely, the figures (for more than 2--3 digits on one side of the decimal point) will be visibly misaligned. It is however possible to use normal width bold characters and define a new bold column type, as shown below.<ref>{{cite web|url=http://tex.stackexchange.com/questions/118458/decimals-in-table-dont-align-with-dcolumn-when-bolded|title=Decimals in table don't align with dcolumn when bolded|author=D Carlisle|publisher=Stackexchange}}</ref> {{LaTeX/Example|code= \usepackage{dcolumn} %here we're setting up a version of the math fonts with normal x-width \DeclareMathVersion{nxbold} \SetSymbolFont{operators}{nxbold}{OT1}{cmr} {b}{n} \SetSymbolFont{letters} {nxbold}{OML}{cmm} {b}{it} \SetSymbolFont{symbols} {nxbold}{OMS}{cmsy}{b}{n} \begin{document} \makeatletter \newcolumntype{d}{D{.}{.}{-1} } %decimal column as before %wide bold decimal column \newcolumntype{B}[3]{>{\boldmath\DC@{#1}{#2}{#3} }c<{\DC@end} } %normal width bold decimal column \newcolumntype{Z}[3]{>{\mathversion{nxbold}\DC@{#1}{#2}{#3} }c<{\DC@end} } \makeatother \begin{tabular}{l l d} Type &M & \multicolumn{1}{c}{N} \\ Normal & 1 & 22222.222 \\ Bold (standard)&10 & \multicolumn{1}{B{.}{.}{-1} }{22222.222}\\ Bold (nxbold)&100 & \multicolumn{1}{Z{.}{.}{-1} }{22222.222}\\ \end{tabular} \end{document} |render={{Dark mode invert|[[file:LaTeX example dcolumn bold.png|200px]]}} }} == Row specification == It might be convenient to apply the same command over every cell of a row, just as for column. Unfortunately the {{LaTeX/Environment|tabular}} environment cannot do that by default. We will need {{LaTeX/Package|tabu}} instead, which provides the {{LaTeX/LaTeX|code=\rowfont<!---->}} option. {{LaTeX/Usage|code= \begin{tabu}{XX} \rowfont{\bfseries\itshape\large} Header1 & Header2 \\ \hline Cell2 & Cell2 \end{tabu} }} == Spanning == To complete this tutorial, we take a quick look at how to generate slightly more complex tables. Unsurprisingly, the commands necessary have to be embedded within the table data itself. === Rows spanning multiple columns === The command for this looks like this: {{LaTeX/LaTeX|code=\multicolumn{num_cols}{alignment}{contents}<!---->}}. {{LaTeX/Parameter|num_cols}} is the number of subsequent columns to merge; {{LaTeX/Parameter|alignment}} is either {{LaTeX/Parameter|l}}, {{LaTeX/Parameter|c}}, {{LaTeX/Parameter|r}}, or to have text wrapping specify a width {{LaTeX/LaTeX|code=p{5.0cm}<!---->}} . And {{LaTeX/Parameter|contents}} is simply the actual data you want to be contained within that cell. You can also use {{LaTeX/LaTeX|code=\multicolumn{1}{alignment}{contents}<!---->}} for a single column. In this simple example, the name David Batty is an exception, shifted to the right: {{LaTeX/Example|code= \begin{tabular}{ {{!}}l{{!}}l{{!}} } \hline \multicolumn{2}{{{!}}c{{!}}}{Team sheet} \\ \hline GK & Paul Robinson \\ LB & Lucas Radebe \\ DC & Michael Duberry \\ DC & Dominic Matteo \\ RB & Dider Domi \\ MC & \multicolumn{1}{r{{!}}}{David Batty} \\ MC & Eirik Bakke \\ MC & Jody Morris \\ FW & Jamie McMaster \\ ST & Alan Smith \\ ST & Mark Viduka \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:multicolumn.svg]]}} }} === Columns spanning multiple rows === The first thing you need to do is add {{LaTeX/LaTeX|code=\usepackage{multirow}|}} to the preamble<ref name="multirow">Package multirow [http://www.ctan.org/tex-archive/macros/latex/contrib/multirow/ on CTAN]</ref>. This then provides the command needed for spanning rows: <code>\multirow{''num_rows''}{''width''}{''contents''}</code>. The arguments are pretty simple to deduce ({{LaTeX/LaTeX|code=*<!---->}} for the ''width'' means the content's natural width). {{LaTeX/Example|code= ... \usepackage{multirow} ... \begin{tabular}{ {{!}}l{{!}}l{{!}}l{{!}} } \hline \multicolumn{3}{ {{!}}c{{!}} }{Team sheet} \\ \hline Goalkeeper & GK & Paul Robinson \\ \hline \multirow{4}{*}{Defenders} & LB & Lucas Radebe \\ & DC & Michael Duburry \\ & DC & Dominic Matteo \\ & RB & Didier Domi \\ \hline \multirow{3}{*}{Midfielders} & MC & David Batty \\ & MC & Eirik Bakke \\ & MC & Jody Morris \\ \hline Forward & FW & Jamie McMaster \\ \hline \multirow{2}{*}{Strikers} & ST & Alan Smith \\ & ST & Mark Viduka \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:multirow.svg]]}} }} The main thing to note when using {{LaTeX/LaTeX|code=\multirow<!---->}} is that a blank entry must be inserted for each appropriate cell in each subsequent row to be spanned. If there is no data for a cell, just don't type anything, but you still need the "&" separating it from the next column's data. The astute reader will already have deduced that for a table of <math>n</math> columns, there must always be <math>n-1</math> ampersands in each row (unless {{LaTeX/LaTeX|code=\multicolumn<!---->}} is also used). === Spanning in both directions simultaneously === Here is a nontrivial example of how to use spanning in both directions simultaneously and have the borders of the cells drawn correctly: {{LaTeX/Example|code= \usepackage{multirow} \begin{tabular}{cc{{!}}c{{!}}c{{!}}c{{!}}c{{!}}l} \cline{3-6} & & \multicolumn{4}{ c{{!}} }{Primes} \\ \cline{3-6} & & 2 & 3 & 5 & 7 \\ \cline{1-6} \multicolumn{1}{ {{!}}c }{\multirow{2}{*}{Powers} } & \multicolumn{1}{ {{!}}c{{!}} }{504} & 3 & 2 & 0 & 1 & \\ \cline{2-6} \multicolumn{1}{ {{!}}c }{} & \multicolumn{1}{ {{!}}c{{!}} }{540} & 2 & 3 & 1 & 0 & \\ \cline{1-6} \multicolumn{1}{ {{!}}c }{\multirow{2}{*}{Powers} } & \multicolumn{1}{ {{!}}c{{!}} }{gcd} & 2 & 2 & 0 & 0 & min \\ \cline{2-6} \multicolumn{1}{ {{!}}c }{} & \multicolumn{1}{ {{!}}c{{!}} }{lcm} & 3 & 3 & 1 & 1 & max \\ \cline{1-6} \end{tabular} |render= {{Dark mode invert|[[Image:multirowandcolumnexample.svg|300px]]}} }} The command {{LaTeX/LaTeX|code=\multicolumn{1}{|c|}{...}<!---->}} is just used to draw vertical borders both on the left and on the right of the cell. Even when combined with {{LaTeX/LaTeX|code=\multirow{2}{*}{...}<!---->}}, it still draws vertical borders that only span the first row. To compensate for that, we add {{LaTeX/LaTeX|code=\multicolumn{1}{|c|}{...}<!---->}} in the following rows spanned by the multirow. Note that we cannot just use {{LaTeX/LaTeX|code=\hline<!---->}} to draw horizontal lines, since we do not want the line to be drawn over the text that spans several rows. Instead we use the command {{LaTeX/LaTeX|code=\cline{2-6}<!---->}} and opt out the first column that contains the text "Powers". Here is another example exploiting the same ideas to make the familiar and popular "2x2" or double dichotomy: {{LaTeX/Example|code= \begin{tabular}{ r{{!}}c{{!}}c{{!}} } \multicolumn{1}{r}{} & \multicolumn{1}{c}{noninteractive} & \multicolumn{1}{c}{interactive} \\ \cline{2-3} massively multiple & Library & University \\ \cline{2-3} one-to-one & Book & Tutor \\ \cline{2-3} \end{tabular} |render= {{Dark mode invert|[[Image:Latex-tables-double-dichotomy-example.svg|400px]]}} }} ==Controlling table size== === Resize tables === The {{LaTeX/Package|graphicx}} packages features the command {{LaTeX/LaTeX|code=\resizebox{width}{height}{object}<!---->}} which can be used with {{LaTeX/Environment|tabular}} to specify the height and width of a table. The following example shows how to resize a table to 8cm width while maintaining the original width/height ratio. {{LaTeX/Usage|code= \usepackage{graphicx} % ... \resizebox{8cm}{!} { \begin{tabular}... \end{tabular} } }} Resizing table including the caption {{LaTeX/Usage|code= \begin{table}[h] \resizebox{1.4\textwidth}{!}{\begin{minipage}{\textwidth} \begin{tabular}{r{{!}}c{{!}}c{{!}}} & \multicolumn{1}{c}{noninteractive} & \multicolumn{1}{c}{interactive} \\ \cline{2-3} massively multiple & Library & University \\ \cline{2-3} one-to-one & Book & Tutor \\ \cline{2-3} \end{tabular} \caption[Table caption text]{Table taken from \cite[p.10]{refid} } \label{table:name} \end{minipage} } \end{table} }} Alternatively you can use {{LaTeX/LaTeX|code=\scalebox{ratio}{object}<!---->}} in the same way but with ratios rather than fixed sizes: {{LaTeX/Usage|code= \usepackage{graphicx} % ... \scalebox{0.7}{ \begin{tabular}... \end{tabular} } }} === Changing font size === A table can be globally switched to a different font size by simply adding the desired size command (here: {{LaTeX/LaTeX|code=\footnotesize<!---->}}) in the table scope, which may be after the {{LaTeX/LaTeX|code=\begin{table}<!---->}} statement if you use floats, otherwise you need to add a group delimiter. {{LaTeX/Usage|code= {\footnotesize \begin{tabular}{{{!}} r {{!}} r {{!}}{{!}} c {{!}} c {{!}} c {{!}}} % ... \end{tabular} } }} {{LaTeX/Usage|code= \begin{table}[h]\footnotesize \caption{Performance at peak F-measure} \begin{tabular}{{{!}} r {{!}} r {{!}}{{!}} c {{!}} c {{!}} c {{!}}} % ... \end{tabular} \end{table} }} Alternatively, you can change the default font for all the tables in your document by placing the following code in the preamble: {{LaTeX/Usage|code= \let\oldtabular\tabular \renewcommand{\tabular}{\footnotesize\oldtabular} }} See [[LaTeX/Fonts#Sizing_text|Fonts]] for named font sizes. The table caption font size is not affected. To control the caption font size, see [[LaTeX/Floats,_Figures_and_Captions#Caption_Styles|Caption Styles]]. It is also possible to change the vertical space between rows using {{LaTeX/LaTeX|code=\renewcommand{\arraystretch}{0.8}<!---->}} before {{LaTeX/LaTeX|code=\begin{tabular}<!---->}}. == Colors == === Alternate row colors in tables === The {{LaTeX/Package|xcolor}} package provides the necessary commands to produce tables with alternate row colors, when loaded with the {{LaTeX/Parameter|table}} option. The command <code>\rowcolors{<''starting row''>}{<''odd color''>}{<''even color''>}</code> has to be specified right before the {{LaTeX/Environment|tabular}} environment starts. {{LaTeX/Example|code= \documentclass{article} \usepackage[table]{xcolor} \begin{document} \begin{center} \rowcolors{1}{green}{pink} \begin{tabular}{lll} odd & odd & odd \\ even & even & even\\ odd & odd & odd \\ even & even & even\\ \end{tabular} \end{center} \end{document} |render= [[File:LaTeXAlternateRowTable.svg|right]] }} The command {{LaTeX/LaTeX|code=\hiderowcolors<!---->}} is available to deactivate highlighting from a specified row until the end of the table. Highlighting can be reactivated within the table via the {{LaTeX/LaTeX|code=\showrowcolors<!---->}} command. If while using these commands you experience <samp>misplaced \noalign errors</samp> then use the commands at the very beginning or end of a row in your tabular. {{LaTeX/Usage|code=\hiderowcolors odd & odd & odd \\<!---->}} or {{LaTeX/Usage|code=odd & odd & odd \\ \showrowcolors<!---->}} === Colors of individual cells === As above this uses the {{LaTeX/Package|xcolor<!---->}} package. {{LaTeX/Usage|code= % Include this somewhere in your document \usepackage[table]{xcolor} % Enter this in the cell you wish to color a light grey. % NB: the word 'gray' here denotes the grayscale color scheme, not the color grey. '0.9' denotes how dark the grey is. \cellcolor[gray]{0.9} % The following will color the cell red. \cellcolor{red} }} == Width and stretching == We keep providing documentation for {{LaTeX/Environment|tabular*}} and {{LaTeX/Environment|tabularx}}. === The ''tabular*'' environment=== This is basically a slight extension on the original tabular version, although it requires an extra argument (before the column descriptions) to specify the preferred width of the table. {{LaTeX/Example|code= \begin{tabular*}{0.75\textwidth}{ {{!}} c {{!}} c {{!}} c {{!}} r {{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabular*} |render= {{Dark mode invert|[[Image:LaTeX TabWidth1.svg|right]]}} }} However, that may not look quite as intended. The columns are still at their natural width (just wide enough to fit their contents) while the rows are as wide as the table width specified. If you do not like this default, you must also explicitly insert extra column space. LaTeX has ''rubber lengths'', which, unlike others, are not fixed. LaTeX can dynamically decide how long the lengths should be. So, an example of this is the following. {{LaTeX/Example|code= \begin{tabular*}{0.75\textwidth}{@{\extracolsep{\fill} } {{!}} c {{!}} c {{!}} c {{!}} r {{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabular*} |render= {{Dark mode invert|[[Image:LaTeX TabWidth2.svg|right]]}} }} You will notice the {{LaTeX/LaTeX|code=@{...}<!---->}} construct added at the beginning of the column description. Within it is the {{LaTeX/LaTeX|code=\extracolsep<!---->}} command, which requires a width. A fixed width could have been used. However, by using a rubber length, such as {{LaTeX/LaTeX|code=\fill<!---->}}, the columns are automatically spaced evenly. === The ''tabularx'' package === This package provides a table environment called {{LaTeX/Environment|tabularx}}, which is similar to the {{LaTeX/Environment|tabular*}} environment except that it has a new column specifier {{LaTeX/Parameter|X}} (in uppercase). The column(s) specified with this specifier will be stretched to make the table as wide as specified, greatly simplifying the creation of tables. {{LaTeX/Example|code= \usepackage{tabularx} % ... \begin{tabularx}{\textwidth}{ {{!}}X{{!}}X{{!}}X{{!}}X{{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabularx} |render= {{Dark mode invert|[[Image:LaTeX TabXWidth1.svg|450px|right]]}} }} The content provided for the boxes is treated as for a {{LaTeX/Parameter|p}} column, except that the width is calculated automatically. If you use the package {{LaTeX/Package|array}}, you may also apply any {{LaTeX/LaTeX|code=>{\cmd}|}} or {{LaTeX/LaTeX|code=<{\cmd}|}} command to achieve specific behavior (like {{LaTeX/LaTeX|code=\centering<!---->}}, or {{LaTeX/LaTeX|code=\raggedright\arraybackslash<!---->}}) as described previously. Another option is to use {{LaTeX/LaTeX|code=\newcolumntype<!---->}} to format selected columns in a different way. It defines a new column specifier, e.g. {{LaTeX/Parameter|R}} (in uppercase). In this example, the second and fourth column is adjusted in a different way ({{LaTeX/LaTeX|code=\raggedleft<!---->}}): {{LaTeX/Example|code= \usepackage{tabularx} % ... \newcolumntype{R}{>{\raggedleft\arraybackslash}X}% \begin{tabularx}{\textwidth}{ {{!}}l{{!}}R{{!}}l{{!}}R{{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabularx} |render= {{Dark mode invert|[[Image:LaTeX TabXWidth2.svg|450px|right]]}} }} Tabularx with rows spanning multiple columns using {{LaTeX/LaTeX|code=\multicolumn<!---->}}. The two central columns are posing as one by using the {{LaTeX/Parameter|X@{}}} option. Note that the {{LaTeX/LaTeX|code=\multicolumn<!---->}} width (which in this example is 2) should equal the (in this example 1+1) width of the spanned columns: {{LaTeX/Example|code= \usepackage{tabularx} % ... \begin{tabularx}{1\textwidth}{ {{!}}>{\setlength\hsize{1\hsize}\centering}X{{!}}>{\setlength\hsize{1\hsize}\raggedleft}X@{} >{\setlength\hsize{1\hsize}\raggedright}X{{!}}>{\setlength\hsize{1\hsize}\centering}X{{!}} } \hline Label 1 & \multicolumn{2}{>{\centering\setlength\hsize{2\hsize} }X{{!}}}{Label 2} & Label 3\tabularnewline \hline 123 & 123 & 456 & 123 \tabularnewline \hline 123 & 123 & 456 & 123 \tabularnewline \hline \end{tabularx} |render= {{Dark mode invert|[[Image:LaTeX tabularx_multi.svg|450px|right]]}} }} In a way analogous to how new commands with arguments can be created with {{code|\newcommand}}, new column types with arguments can be created with {{code|\newcolumntype}} as follows: {{LaTeX/Usage|code= \usepackage{tabularx} \usepackage[table]{xcolor} %Used to color the last column % ... \newcolumntype{L}[1]{>{\hsize=#1\hsize\raggedright\arraybackslash}X}% \newcolumntype{R}[1]{>{\hsize=#1\hsize\raggedleft\arraybackslash}X}% \newcolumntype{C}[2]{>{\hsize=#1\hsize\columncolor{#2}\centering\arraybackslash}X}% \begin{tabularx}{\textwidth}{ {{!}} L{1} {{!}} R{0.5} {{!}} R{0.5} {{!}} C{2}{gray} {{!}} } \hline label 1 & label 2 & label 3 & label 4 \\ \hline item 1 & item 2 & item 3 & item 4 \\ \hline \end{tabularx} }} where since there are 4 columns, the sum of the {{code|\hsize}}'s (1 + 0.5 + 0.5 + 2) must be equal to 4. The default value used by tabularx for {{code|\hsize}} is 1. === The ''tabulary'' package === [http://www.ctan.org/pkg/tabulary <code>tabulary</code>] is a modified {{LaTeX/Package|tabular*}} allowing width of columns set for equal heights. {{LaTeX/Package|tabulary}} allows easy and convenient writing of well balanced tables. The problem with {{LaTeX/Package|tabularx}} is that it leaves much blank if your cells are almost empty. Besides, it is not easy to have different column sizes. {{LaTeX/Package|tabulary}} tries to balance the column widths so that each column has at least its natural width, without exceeding the maximum length. {{LaTeX/Usage|code= \usepackage{tabulary} ... \begin{center} \begin{tabulary}{0.7\textwidth}{LCL} Short sentences & \# & Long sentences \\ \hline This is short. & 173 & This is much loooooooonger, because there are many more words. \\ This is not shorter. & 317 & This is still loooooooonger, because there are many more words. \\ \end{tabulary} \end{center} }} The first parameter is the maximum width. {{LaTeX/Package|tabulary}} will try not to exceed it, but it will not stretch to it if there is not enough content, contrary to {{LaTeX/Package|tabularx}}. The second parameter is the column disposition. Possible values are those from the {{LaTeX/Environment|tabular}} environment, plus {| class="wikitable" | {{LaTeX/Parameter|L}} | left-justified balanced column |- | {{LaTeX/Parameter|C}} | centered balanced column |- | {{LaTeX/Parameter|R}} | right-justified balanced column |- | {{LaTeX/Parameter|J}} | left-right-justified balanced column |} These are all capitals. === The ''tabu'' environment === It works pretty much like {{LaTeX/Environment|tabularx}}. Note: ''tabu'' is currently [https://github.com/tabu-issues-for-future-maintainer/tabu/blob/master/README.md broken and unmaintained] {{LaTeX/Usage|code= \begin{tabu} to \linewidth {llX[2]lllXl} % ... \end{tabu} }} {{LaTeX/LaTeX|code=to \linewidth<!---->}} specifies the target width. The {{LaTeX/Parameter|X}} parameter can have an optional span factor. == Table across several pages == Long tables are natively supported by LaTeX thanks to the {{LaTeX/Environment|longtable}} environment, which replaces both the {{LaTeX/Environment|tabular}} and {{LaTeX/Environment|table}} environments or rather combines them into a single environment. Unfortunately, this environment does not support stretching (X columns). The {{LaTeX/Package|tabu}} package (which is [https://github.com/tabu-issues-for-future-maintainer/tabu/blob/main/README.md no longer maintained]) provides the {{LaTeX/Environment|longtabu}} environment. It has most of the features of {{LaTeX/Environment|tabu}}, with the additional capability to span multiple pages. LaTeX can do well with long tables: you can specify a header that will repeat on every page, a header for the first page only, and the same for the footer. {{LaTeX/Usage|code= \begin{longtabu} to \linewidth {lX[2]lXl} \rowfont\bfseries H1 & H2 & H3 & H4 & H5 \\ \hline \endhead \\ \hline \multicolumn{5}{r}{There is more to come} \\ \endfoot \\ \hline \endlastfoot % Content ... }} It uses syntax similar to {{LaTeX/Environment|longtable}}, so you should have a look at its documentation if you want to know more. Alternatively you can try one of the following packages [http://www.ctan.org/pkg/supertabular <code>supertabular</code>] or [http://www.ctan.org/pkg/xtab <code>xtab</code>], an extended and somewhat improved version of {{LaTeX/Package|supertabular}}. == Partial vertical lines == Adding a partial vertical line to an individual cell: {{LaTeX/Example|code= \begin{tabular}{ l c r } \hline 1 & 2 & 3 \\ \hline 4 & 5 & \multicolumn{1}{r{{!}}}{6} \\ \hline 7 & 8 & 9 \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:Partial-vertical-line-add.svg]]}} }} Removing part of a vertical line in a particular cell: {{LaTeX/Example|code= \begin{tabular}{ {{!}} l {{!}} c {{!}} r {{!}} } \hline 1 & 2 & 3 \\ \hline 4 & 5 & \multicolumn{1}{r}{6} \\ \hline 7 & 8 & 9 \\ \hline \end{tabular} |render= {{Dark mode invert|[[Image:Partial-vertical-line-remove.svg]]}} }} == Vertically centered images == Inserting images into a table row will align it at the top of the cell. By using the {{LaTeX/Package|array}} package this problem can be solved. Defining a new columntype will keep the image vertically centered. {{LaTeX/Usage|code= \newcolumntype{V}{>{\centering\arraybackslash} m{.4\linewidth} } }} Or use a parbox to center the image. {{LaTeX/Usage|code= \parbox[c]{1em}{\includegraphics{image.png} } }} A raisebox works as well, also allowing to manually fine-tune the alignment with its first parameter. {{LaTeX/Usage|code= \raisebox{-.5\height}{\includegraphics{image.png} } }} == Footnotes in tables == The {{LaTeX/Environment|tabular}} environment does not handle footnotes properly. The {{LaTeX/Environment|longtable}} fixes that. == Professional tables == Many professionally typeset books and journals feature simple tables, which have appropriate spacing above and below lines, and almost ''never'' use vertical rules. Many examples of LaTeX tables (including this Wikibook) showcase the use of vertical rules (using "|"), and double-rules (using {{LaTeX/LaTeX|code=\hline\hline<!---->}} or "||"), which are regarded as unnecessary and distracting in a professionally published form. The [http://www.ctan.org/tex-archive/macros/latex/contrib/booktabs/ booktabs] package is useful for easily providing this professionalism in LaTeX tables, and the [http://mirrors.ctan.org/macros/latex/contrib/booktabs/booktabs.pdf documentation] also provides guidelines on what constitutes a "good" table. In brief, the package uses {{LaTeX/LaTeX|code=\toprule<!---->}} for the uppermost rule (or line), {{LaTeX/LaTeX|code=\midrule<!---->}} for the rules appearing in the middle of the table (such as under the header), and {{LaTeX/LaTeX|code=\bottomrule<!---->}} for the lowermost rule. This ensures that the rule weight and spacing are acceptable. In addition, {{LaTeX/LaTeX|code=\cmidrule<!---->}} can be used for mid-rules that span specified columns. The following example contrasts the use of booktabs and two equivalent normal LaTeX implementations (the second example requires {{LaTeX/LaTeX|code=\usepackage{array}<!---->}} or {{LaTeX/LaTeX|code=\usepackage{dcolumn}<!---->}}, and the third example requires {{LaTeX/LaTeX|code=\usepackage{booktabs}<!---->}} in the preamble). === Normal LaTeX === {{LaTeX/Example|code= \begin{tabular}{llr} \hline \multicolumn{2}{c}{Item} \\ \cline{1-2} Animal & Description & Price (\$) \\ \hline Gnat & per gram & 13.65 \\ & each & 0.01 \\ Gnu & stuffed & 92.50 \\ Emu & stuffed & 33.33 \\ Armadillo & frozen & 8.99 \\ \hline \end{tabular} |render={{Dark mode invert|[[Image:LaTeX animal table.svg]]}}}} === Using {{LaTeX/Package|array}} === {{LaTeX/Example|code= \usepackage{array} %or \usepackage{dcolumn} ... \begin{tabular}{llr} \firsthline \multicolumn{2}{c}{Item} \\ \cline{1-2} Animal & Description & Price (\$) \\ \hline Gnat & per gram & 13.65 \\ & each & 0.01 \\ Gnu & stuffed & 92.50 \\ Emu & stuffed & 33.33 \\ Armadillo & frozen & 8.99 \\ \lasthline \end{tabular} |render={{Dark mode invert|[[Image:LaTeX animal table with array.svg]]}}}} === Using {{LaTeX/Package|booktabs}} === {{LaTeX/Example|code= \usepackage{booktabs} \begin{tabular}{llr} \toprule \multicolumn{2}{c}{Item} \\ \cmidrule(r){1-2} Animal & Description & Price (\$) \\ \midrule Gnat & per gram & 13.65 \\ & each & 0.01 \\ Gnu & stuffed & 92.50 \\ Emu & stuffed & 33.33 \\ Armadillo & frozen & 8.99 \\ \bottomrule \end{tabular} |render={{Dark mode invert|[[Image:LaTeX animal table with booktabs.svg]]}}}} Usually the need arises for footnotes under a table (and not at the bottom of the page), with a caption properly spaced above the table. These are addressed by the [http://www.ctan.org/tex-archive/macros/latex/contrib/ctable/ ctable] package. It provides the option of a short caption given to be inserted in the list of tables, instead of the actual caption (which may be quite long and inappropriate for the list of tables). The {{LaTeX/Package|ctable}} uses the {{LaTeX/Package|booktabs}} package. == Sideways tables == Tables can also be put on their side within a document using the {{LaTeX/Package|rotating}} or the {{LaTeX/Package|rotfloat}} package. See the [[LaTeX/Rotations|Rotations]] chapter. == Table with legend == To add a legend to a table the [http://www.ctan.org/tex-archive/macros/latex/contrib/caption/ caption] package can be used. With the caption package a {{LaTeX/LaTeX|code=\caption*{...}<!---->}} statement can be added besides the normal {{LaTeX/LaTeX|code=\caption{...}<!---->}}. Example: {{LaTeX/Usage|code= \begin{table} \begin{tabular}{{{!}} r {{!}} r {{!}}{{!}} c {{!}} c {{!}} c {{!}}} ... \end{tabular} \caption{A normal caption} \caption*{ A legend, even a table can be used \begin{tabular}{l l} item 1 & explanation 1 \\ \end{tabular} } \end{table} }} The normal caption is needed for labels and references. == The ''eqparbox'' package == On rare occasions, it might be necessary to stretch every row in a table to the natural width of its longest line, for instance when one has the same text in two languages and wishes to present these next to each other with lines synching up. A tabular environment helps control where lines should break, but cannot justify the text, which leads to ragged right edges. The {{LaTeX/Package|eqparbox}} package provides the command {{LaTeX/LaTeX|code=\eqmakebox<!---->}} which is like {{LaTeX/LaTeX|code=\makebox<!---->}} but instead of a {{LaTeX/Parameter|width}} argument, it takes a tag. During compilation it bookkeeps which {{LaTeX/LaTeX|code=\eqmakebox<!---->}} with a certain tag contains the widest text and can stretch all {{LaTeX/LaTeX|code=\eqmakebox<!---->}}es with the same tag to that width. Combined with the {{LaTeX/Package|array}} package, one can define a column specifier that justifies the text in all lines:comand {{LaTeX/Usage|code= \newsavebox{\tstretchbox} \newcolumntype{S}[1]{% >{\begin{lrbox}{\tstretchbox} }% l% <{\end{lrbox}% \eqmakebox[#1][s]{\unhcopy\tstretchbox} }% } }} See the documentation of the {{LaTeX/Package|eqparbox}} package for more details. == The ''paracol'' package == The various tabular environments available for LaTeX are feature rich; however, they lack the ability to '''automatically page break large rows'''. The paracol package provides automatic page breaks in between rows and in certain cases can replace the tabular environment. Such situations could be common in documents that require translations and definitions, which may also includes lists. For further detail see the documentation of the {{LaTeX/Package|paracol}} package. == Floating with ''table'' == In WYSIWYG document processors, it is common to put tables in the middle of the text. This is what we have been doing until now. Professional documents, however, often make it a point to print tables on a dedicated page so that they do not disrupt the flow. From the point of view of the source code, one has no idea on which page the current text is going to lie, so it is hardly possible to guess which page may be appropriate for our table. LaTeX can automate this task by abstracting objects such as tables, pictures, etc., and deciding for us where they might fit best. This abstraction is called a ''float''. Generally, an object that is floated will appear in the vicinity of its introduction in the source file, but one can choose to control its position also. To tell LaTeX we want to use our table as a float, we need to put a {{LaTeX/Environment|table}} environment around the {{LaTeX/Environment|tabular}} environment, which is able to float and add a label and caption. {{Warning| Please understand: you do not ''have to'' use floating tables. If you want to place your tables where they lie in your source code and you do not need any label, do not use {{LaTeX/Environment|table}} at all! This is a very common misunderstanding among newcomers. }} The {{LaTeX/Environment|table}} environment initiates a type of float just as the environment {{LaTeX/Environment|figure}}. In fact, the two bear a lot of similarities (positioning, captions, etc.). More information about floating environments, captions etc. can be found in [[LaTeX/Floats,_Figures_and_Captions|Floats, Figures and Captions]]. The environment names may now seem quite confusing. Let's sum it up: * {{LaTeX/Environment|tabular}} is for the content itself (columns, lines, etc.). * {{LaTeX/Environment|table}} is for the location of the table on the document, plus caption and label support. {{LaTeX/Usage|code= \begin{table}[position specifier] \centering \begin{tabular}{{{!}}l{{!}}} ... your table ... \end{tabular} \caption{This table shows some data} \label{tab:myfirsttable} \end{table} }} In the table, we used a label, so now we can refer to it just like any other reference: {{LaTeX/Usage|code= \ref{tab:myfirsttable} }} The {{LaTeX/Environment|table}} environment is also useful when you want to have a list of tables at the beginning or end of your document with the command {{LaTeX/Usage|code= \listoftables }} The captions now show up in the list of tables, if displayed. You can set the optional parameter {{LaTeX/Parameter|position specifier}} to define the position of the table, where it should be placed. The following characters are all possible placements. Using sequences of it define your "wishlist" to LaTeX. {| class="wikitable" |- | {{LaTeX/Parameter|h}} | where the table is declared ('''h'''ere) |- | {{LaTeX/Parameter|t}} | at the '''t'''op of the page |- | {{LaTeX/Parameter|b}} | at the '''b'''ottom of the page |- | {{LaTeX/Parameter|p}} | on a dedicated '''p'''age of floats |- | {{LaTeX/Parameter|!}} |override the default float restrictions. E.g., the maximum size allowed of a {{LaTeX/Parameter|b}} float is normally quite small; if you want a large one, you need this {{LaTeX/Parameter|!}} parameter as well. |- |} Default is {{LaTeX/Parameter|tbp}}, which means that it is by default placed on the top of the page. If that's not possible, it's placed at the bottom if possible, or finally with other floating environments on an extra page. You can force LaTeX to use one given position. E.g. {{LaTeX/Parameter|[!h]}} forces LaTeX to place it exactly where you place it (Except when it's really impossible, e.g you place a table ''here'' and this place would be the last line on a page). Again, understand it correctly: it urges LaTeX to put the table at a specific place, but it will not be placed there if LaTeX thinks it will not look great. If you really want to place your table manually, do not use the {{LaTeX/Environment|table}} environment. Centering the table horizontally works like everything else, using the {{LaTeX/LaTeX|code=\centering<!---->}} command just after opening the {{LaTeX/Environment|table}} environment, or by enclosing it with a {{LaTeX/Environment|center}} environment. == Using spreadsheets and data analysis tools == For complex or dynamic tables, you may want to use a spreadsheet. You might save lots of time by building tables using specialized software and exporting them in LaTeX format. The following plugins and libraries are available for some popular software: * [http://calc2latex.sourceforge.net/ calc2latex]: for LibreOffice and OpenOffice.org Calc spreadsheets, * [http://www.ctan.org/tex-archive/support/excel2latex/ excel2latex]: for Microsoft Office Excel, * [https://github.com/TheChymera/matrix2latex matrix2latex]: for Python and MATLAB, * [http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_latex.html pandas]: pandas DataFrame's have a method to convert data they contain to latex, * [http://rubygems.org/gems/latex-tools latex-tools]: a Ruby library, * [http://cran.r-project.org/web/packages/xtable/index.html xtable]: a library for R, * [http://orgmode.org/ org-mode]: for Emacs users, org-mode tables can be used inline in LaTeX documents, see [https://www.gnu.org/software/emacs/manual/html_node/org/A-LaTeX-example.html] for a tutorial. * [http://emacswiki.org/emacs/AlignCommands Emacs align commands]: the align commands can clean up a messy LaTeX table. * [http://truben.no/latex/table/ Online Table generator for LATeX]: An online tool for creating simple tables within the browser. LaTeX format is directly generated as you type. * [http://www.tablesgenerator.com/ Create LaTeX tables online ]: Online tool. However, copying the generated source code to your document is not convenient at all. For maximum flexibility, generate the source code to a separate file which you can input from your main document file with the {{LaTeX/LaTeX|code=\input<!---->}} command. If your spreadsheet supports command-line, you can generate your complete document (table included) in one command, using a Makefile for example. See [[LaTeX/Modular Documents|Modular Documents]] for more details. == Need more features? == Have a look at one of the following packages: * [http://www.ctan.org/pkg/hhline <code>hhline</code>]: do whatever you want with horizontal lines * [http://www.ctan.org/pkg/array <code>array</code>]: gives you more freedom on how to define columns * [http://www.ctan.org/pkg/colortbl <code>colortbl</code>]: make your table more colorful * <code>[https://ctan.org/pkg/threeparttable threeparttable]</code> makes it possible to put footnotes both within the table and its caption * [http://www.ctan.org/pkg/arydshln <code>arydshln</code>]: creates dashed horizontal and vertical lines * [http://www.ctan.org/pkg/ctable <code>ctable</code>]: allows for footnotes under table and properly spaced caption above (incorporates booktabs package) * [http://www.ctan.org/pkg/slashbox <code>slashbox</code>]: create 2D tables with the first cell containing a description for both axes. Not available in Tex Live 2011 or later. * <code>[https://ctan.org/pkg/diagbox diagbox]</code>: compatible to <code>slashbox</code>, come with Tex Live 2011 or later * [http://www.ctan.org/pkg/dcolumn <code>dcolumn</code>]: decimal point alignment of numeric cells * [http://www.ctan.org/pkg/rccol <code>rccol</code>]: advanced decimal point alignment of numeric cells with rounding * [http://www.ctan.org/pkg/numprint <code>numprint</code>]: print numbers, in the current mode (text or math) in order to use the correct font, with separators, exponent and/or rounded to a given number of digits. tabular(*), array, tabularx, and longtable environments are supported using all features of numprint * [http://www.ctan.org/pkg/spreadtab <code>spreadtab</code>]: spread sheets allowing the use of formulae * [http://ctan.org/tex-archive/macros/latex/contrib/siunitx <code>siunitx</code>]: alignment of tabular entries * <code>[https://www.ctan.org/pkg/pgfplotstable pgfplotstable]</code>: loads, rounds, formats and postprocesses numerical tables, e.g. by importing the data directly from .csv (comma-separated value) files instead of manually writing the whole tables in LaTeX code. Programs such as Excel, LibreOffice Calc etc. can export data sheets as .csv files. == References == {{reflist|2}} <noinclude> {{LaTeX/Bottom|Rotations|Title Creation}} </noinclude> [[fr:LaTeX/Faire_des_tableaux]] [[nl:LaTeX/Tabellen]] [[pl:LaTeX/Tabele]] aei427vyaeb2jjaknjnx80bhfbqo005 Algorithms/Find approximate maximum 0 110505 4675458 4091539 2026-10-10T19:11:49Z Dnlalksv 3305046 Fixed typo in code block 4675458 wikitext text/x-wiki ==Method 1== ===Code Java=== <syntaxhighlight lang="java"> public int findApproimateMax(int[] i_aryTb) { final int factorA = 100; int o_intMax = i_aryTb[0]; int p_countMax = 1; for (int p_intI = 1; p_intI < i_aryTb.length; p_intI++) { if ( i_aryTb[p_intI] > o_intMax ) { o_intMax = i_aryTb[p_intI]; p_countMax = 0; } else { p_countMax = p_countMax + 1; if ( p_countMax >= factorA ) return o_intMax; } // end if } // end loop return o_intMax; } //end method </syntaxhighlight> ===Algorithm=== Method : findApproimateMax(i_aryTb) define a constant call factorA and assign 100 define o_intMax is integer and assign i_aryTb[0]; define p_countMax is integer and assign 1 for loop = 1 to (i_aryTb.length - 1) do, index if ( i_aryTb[index] > o_intMax ) then o_intMax := i_aryTb[index]; p_countMax := 0; else p_countMax = p_countMax + 1; if ( p_countMax bigger or equal factorA ) then return o_intMax and terminate the method; end if end if end loop return o_intMax; ==Method 2== ===Code java=== <syntaxhighlight lang="java"> public int findMax(int[] i_aryTB,int numberOfSecond) { if ( numberOfSecond <= 0 ) { numberOfSecond = -1; } // end if final int factorA = 100; long p_logStart = System.currentTimeMillis; long p_logFinish = p_logStart + (numberOfSecond * 1000); int o_intMax = i_aryTb[0]; for ( int p_intI= 1; p_intI < i_aryTb.length; p_intI++) { if ( i_aryTb[p_intI] > o_intMax ) { o_intMax = i_aryTb[intI]; } // end if if ( p_intI % factorA == 0 ) { if ( p_logFinish <= System.currentTimeMillis && numberOfSecond != -1) { return o_intMax; } // end if } // end if } // end loop o_intMax; } // end method </syntaxhighlight> ===Algorithm=== Method : findMax(i_aryTB, numberOfSecond) if numberOfSecond <= 0 then numberOfSecond := -1; end if define a constant factorA := 100; define p_logStart become := current_time; define p_logFinish := p_logStart + ( numberOfSecond ); define o_intMax := i_aryTb[0]; looping from 1 to (aryTb.length - 1), p_intI begin if ( aryTb[p_intI] > o_intMax ) then o_intMax := aryTb[p_intI]; end if; if ( the remainder of p_intI / factorA is zero ) then begin if ( p_logFinish <= current_time and numberofSecond not equal -1 ) then return o_intMax; terminate the method; end if end if end looping return o_intMax; ==Method 3== ===Code java=== <syntaxhighlight lang="java"> public int findApproximateMax(int[] i_intaryTb,final int i_oneStepLength) { int o_max = i_intaryTb[0]; for (int intI = 0; intI < i_intaryTb; intI += i_oneStepLength) if ( i_intaryTb[intI] > o_max ) o_max = i_intaryTb[intI]; return o_max; } // end method </syntaxhighlight> ===Algorithm=== Method : findApproximateMax(i_intaryTb,i_one_stepLength) define o_max and assign i_intaryTb[0]; looping from 0 to i_intaryTb.length -1 ,index += i_one_stepLength if ( index >= i_intaryTb.length ) then break the looping; if ( i_intaryTb[index] > o_max ) then o_max = i_intaryTb[index]; end if end looping return o_max; ==Method 4== ===Code java=== <syntaxhighlight lang="java"> import java.util.Random(); //Assume noOfRandom < 1_intaryTb.length; public int findApproximateMax(int[] i_intaryTb,int noOfRanomd) { int[] p_intaryRes = generateTheRandomIndex(noOfRandom); int o_intMax = i_intaryTb[p_intaryRes[0]]; for ( int intJ = 1; intJ < p_intaryRes.length; intJ++) { int p_intK = p_intaryRes[intJ]; if ( p_intK >= 0 && p_intK < i_intaryTb.length ) { if ( i_intaryTb[p_intK] > o_intMax) { o_intMax = p_intaryRes[p_intK]; } // end if } // end if } // end loop return o_intMax; } // end method private int[] generateTheRandomIndex(int nRandom) { int[] o_intaryRes = new int[nRandom]; for (int i = 0; i < nRandom; i++) o_intaryRes[i] = -1; for ( int j = 0; j < nRandom; j++) { int p_intK =findRandomIndex(nRandom); while ( haveIndex(o_intaryRes,p_intK) ) { p_intK =findRandomIndex(nRandom); } // end while loop o_intaryRes[j] = p_intK; } // end loop return o_intaryRes; } // end method private boolean haveIndex(int[] i_aryRes,int index) { for (int i = 0; i < i_aryRes.length; i++) if ( i_aryRes[i] == index) return true; return false; } // end method static Random gen = new Random(); private int findRandomIndex(int n) { return gen.nextInt(n); } // end method </syntaxhighlight> {{BookCat}} hpogdrs9uelul060zeef753orkh9soh Wikibooks:Reading room/General 4 112405 4675480 4673509 2026-10-11T01:17:31Z Codename Noreste 3441010 /* Approved Revs extension */ new topic ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4675480 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:CHAT|WB:RR/G|WB:GENERAL}} {{TOC left|limit=3}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Archives/%(year)d/%(monthname)s |algo = old(60d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 |key = 7a0ac23cf8049e4d9ff70cabb5649d1a }} Welcome to the '''General reading room'''. On this page, Wikibookians are free to talk about the Wikibooks project in general. For proposals for improving Wikibooks, see the [[../Proposals/]] reading room. {{clear}} [[Category:Reading room]] == Call for administrators == Any experienced editor who has a good understanding of Wikibooks' policies should consider applying for administrator permissions at [[Wikibooks:Requests for permissions]]. Thank you. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 22:10, 5 August 2026 (UTC) :Is there a page here that describes what admins do? I am curious because I checked [https://en.wikibooks.org/wiki/Special:ListUsers?username=&group=sysop&wpsubmit=&wpFormIdentifier=mw-listusers-form&limit=50 List of admins] and I see that there are already quite a few admins here and wonder which areas have a shortage. :Just curious. [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 00:56, 16 September 2026 (UTC) ::[[Wikibooks:Administrators]]. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 01:09, 16 September 2026 (UTC) == August 2026 Wikimedia Café meetups regarding [https://meta.wikimedia.org/wiki/Next_25 Next 25] == <div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)"> <div class="box" style="float:left; padding-top: 10px; padding-right: 10px; padding-left: 10px; padding-bottom: 10px;">[[File:Wikimedia Café logo in plain SVG format.svg|60px|alt=The logo for the Wikimedia Café]]</div> Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities in August. Both sessions will focus on [https://meta.wikimedia.org/wiki/Next_25 the Next 25 initiative], including [https://meta.wikimedia.org/wiki/Next_25/A_proposal_to_frame_Next_25 framing the initiative]. Participants may attend either or both Café sessions. #'''29 August 2026 15:00 UTC''' ([https://zonestamp.toolforge.org/1788015600 timestamp converter]), at a time friendly to the Americas, Africa, and Europe #'''30 August 2026 03:00 UTC''' ([https://zonestamp.toolforge.org/1788058800 timestamp converter]), at a time friendly to Asia and the Pacific Please see the [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Café] page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session agenda details] and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]! To subscribe or unsubscribe for Café notices on your talk page please [https://meta.wikimedia.org/wiki/Global_message_delivery/Targets/Wikimedia_Caf%C3%A9 go here]. <br /> [[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div> <span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">༄ᨒ𖠰 Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 01:32, 17 August 2026 (UTC) == Wikibooks project is not defined by goal == If it is for texbooks why is it called Wikibooks? It should be called Wikitextbooks! If it is for textbooks why does it contain cookbooks? For textbooks it's not supposed to have a [[Wikibooks:Featured books]]. [[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 09:20, 1 September 2026 (UTC) :It's "textbooks" broadly construed: guides, manuals, how-tos, etc. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 11:15, 1 September 2026 (UTC) ::So we should change "Wikibooks:Featured books" to "Wikibooks:Featured texts". [[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 11:17, 1 September 2026 (UTC) :::I disagree and even if I agreed, it would be priority #49,389. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 11:20, 1 September 2026 (UTC) ::::It's according to community consensus that says this website contains textbooks not books. [[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 11:23, 1 September 2026 (UTC) :::::"[[wb:WIW|Simply, Wikibooks is a collection of open-content textbooks.]]" [[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 11:26, 1 September 2026 (UTC) :Most textbooks are made by collaboration of some authors, co-authors and editors. Wikibooks help pages and guidelines remain silent when it comes to stages of writing a new texbooks. Even [[Using Wikibooks]] is not complete emough for enthusiasts. --[[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 18:13, 3 September 2026 (UTC) :@[[User:Vivairan2|Vivairan2]], In my opinion this is a good question. I wish more users would chime in. [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 16:10, 19 September 2026 (UTC) == Wishlist 2027, invitation to share feedback == Hi, I’m [[m:User:SPerry-WMF|Sonja]] and I lead some of the [[mw:Contributors|teams]] at the Foundation who will be responsible for picking up wish work under the new wishlist process. As you may know, the [[m:Community_Wishlist|Community Wishlist]] started out as an annual process through which Wikimedia contributors submit and vote on technical improvements they would like the Wikimedia Foundation to work on. The main goal of it is and has been to improve the editing experience by making changes and features the community asks for specifically. In recent years, the process behind the wishlist has changed, and we’ve heard from many of you that it no longer meets many community members’ needs. So now, the Foundation is designing a new process with the community to improve how wishes are triaged, voted on, and prioritized in a way that is transparent, balanced across project families and language editions, and takes into account what the Foundation can deliver. I would like to get community input specifically on these three stages of the Wishlist process: * The [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027#triage|'''triage stage''']], meaning how wishes are fleshed out, organized and filtered prior to voting ** We recommend to have a working group, including volunteers from various wikis and Wikimedia Foundation staff to work through this together * The [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027#vote|'''voting stage''']], including who may vote and how votes are structured * The [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027#postvote|'''post-vote stage''']], including how to bring equity into what work is prioritized ** One way to do this is to rank wishes within 3 categories: Large Wikipedias or covering all wikis, small and medium-sized Wikipedias, and '''sister projects''', so that top-voted wishes from smaller projects also get attention This message is an abstract of the full proposed process. As you [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027|read the proposed ideas on Meta]] (available in your language), please speak up about whether you think this will work well or if there are ways to make it stronger. Regarding the timeline, this consultation is open for two weeks. You can post your feedback on Meta (in your preferred language) or in response below. For this year’s cycle, [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027#timeline|we plan]] to have the wish submission period in late October/early November and the triage process completed by late November. To respect the end-of-year holiday season, voting would happen in early to mid January. This first voting cycle is meant as a first step to try out a new process, and there will be more opportunities to provide feedback along the way, so that we can figure out the best process for future years together. [[oldwikisource:M:User:SPerry-WMF|SPerry-WMF]], delivered by [[User:Trizek (WMF)|Trizek (WMF)]] ([[User talk:Trizek (WMF)|discuss]] • [[Special:Contributions/Trizek (WMF)|contribs]]) 13:52, 1 September 2026 (UTC) :Thank you to everyone who engaged in the discussion around [[m:Talk:Community_Wishlist/Community_Wishlist_2027|the proposal from August 26]]. We've processed your feedback and [https://meta.wikimedia.org/w/index.php?title=Community_Wishlist/Community_Wishlist_2027&diff=prev&oldid=31041090 made changes] accordingly. Note that we weren’t able to implement all of it for this cycle, mostly for logistical reasons, but this is merely meant to be a first step and we will continue to improve this process with you all before we run through the next cycle. We plan to use [[m:Community_Wishlist/Community_Wishlist_2027#Updated_Community_Wishlist_Process_2027/2028|this updated version]] for the Wishlist 2027, and we look forward to hearing from you all during the submission and voting periods. :[[:M:User:SPerry-WMF|SPerry-WMF]], delivered by [[User:Trizek (WMF)|Trizek (WMF)]] ([[User talk:Trizek (WMF)|discuss]] • [[Special:Contributions/Trizek (WMF)|contribs]]) 14:49, 17 September 2026 (UTC) ::@[[User:SPerry-WMF|User:SPerry-WMF]],@[[User:Trizek (WMF)|Trizek (WMF)]]: Thank you for posting info regarding the wishlist to the English Wikibooks. I am sure there are many new users here who can benefit. ::I used to participate in those discussions years ago and I know a lot of effort goes into making discussions useful not only for users of wikipedia, but also for the many language versions of the smaller wikimedia projects such as Wikibooks. [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 16:28, 19 September 2026 (UTC) == How Do I Get My Book On A Shelf? == Help, I don't know how shelves work. I don't know how to put my book on a shelf. Can anyone help? The book is called''' Art And AI''' [[User:3MMPEYTON|3MMPEYTON]] ([[User talk:3MMPEYTON|discuss]] • [[Special:Contributions/3MMPEYTON|contribs]]) 23:00, 8 September 2026 (UTC) : Which shelf are you referring? [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:45, 10 September 2026 (UTC) == Who is allowed to delete pages here? == On Aug 14, 2026 a user by the name of Max deleted a page I created in my user space. I don't see max in the list of admins here. Do they have the right to delete pages? Is there any documentation here I can consult? Thanks in advance, [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 22:38, 15 September 2026 (UTC) :We have local admins who have the technical ability to delete pages and virtually all material deleted here would be done by us (I'm one of them). A fairly small amount of users have global rights across all Wikimedia Foundation wikis and they will very rarely make deletions (e.g. if there are some kind of legal implications to material). [[User:Ottawahitech/American politics]] was deleted by [[User:Max]], who has [[Special:UserRights/Max|no special rights here]] but is one of the [[:m:Global sysops|global sysops]] I mentioned earlier. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 22:55, 15 September 2026 (UTC) : Probably unrelated to the above, but Ottawahitech should do that with their account, unless if they are blocked. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 23:33, 15 September 2026 (UTC) ::Agreed and [[User:Ottawahitech]] is not blocked here, so no idea why he's using a temp account. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 23:43, 15 September 2026 (UTC) :::There may be many reasons registered users are "editing" without logging in. Is it possible that they want to go about peacefully without attracting too much attention? [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 15:01, 16 September 2026 (UTC) :::: We neither have a policy nor a guideline about this, probably. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:12, 20 September 2026 (UTC) == Assistance to get page reviewed == My page is a translation page: [[Baiyi Zhuan]] It is a single page, it is translated according to my own ability and familiarity with the language with a disclosure on external tools. I would like it to get reviewed if possible as I do not have the rights. [[User:Taitesena|Taitesena]] ([[User talk:Taitesena|discuss]] • [[Special:Contributions/Taitesena|contribs]]) 11:19, 18 September 2026 (UTC) == Translation of books == Hello, I would like to translate books from other Wikibooks into English. Are there any guidelines regarding how to do this? [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:34, 20 September 2026 (UTC) : This has yet to be expanded, but you might want to take a look at [[Wikibooks:Content translation]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:13, 20 September 2026 (UTC) == Feedback on Wikibooks redirect == I would like your feedback on my proposal to make [[Wikibooks:Username|this page]] redirect to [[Using Wikibooks/Setting Up A User Account#Choosing a Username|this page]]? I would do it myself, but it is not possible due to the fact that [[Wikibooks:Username]] can only be made by admins. This is because [[Wikibooks:Username policy]] also links to [[Using Wikibooks/Setting Up A User Account#Choosing a Username|this page]]. Regards, [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:37, 21 September 2026 (UTC) :{{support}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 00:00, 22 September 2026 (UTC) This seems like a good idea to me. [[User:Alextejthompson|''Alextejthompson'']] (''Ping me or leave a message on my [[User talk:Alextejthompson|talk page]]'') 17:49, 21 September 2026 (UTC) == Pages created by [[User:Sisterian]] == I have checked with AI checkers (GPTZero, ZeroGPT) and they claim that these pages have been made with the use of GenAI. I do not know whether this is correct or not; because yes, AI checkers can and do make mistakes. I have tried reaching out to the person via talk page, to no response. I am asking for input just to see what the future of these pages are. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:00, 22 September 2026 (UTC) :Thank you for flagging this @[[User:TechVindicator|TechVindicator]]. I have looked at these pages personally, and there is fairly conclusive evidence that this user has been using genAI/LLMs for their contributions. I have warned them accordingly. Cheers —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:50, 22 September 2026 (UTC) == I'm in the process of creating a separate page describing the removal of admin permissions == As the section title says, please see [[User:Codename Noreste/sandbox]] and feel free to make any adjustments. We might consider moving this to [[Wikibooks:Administrators/De-adminship]] someday. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:05, 24 September 2026 (UTC) == Your feedback wanted: Remove ''(Language link added:) and similar'' edits from Special:RecentChanges == ''(Apologies for posting in English. You can help by translating it)'' Hello, I’m Danny from [[:en:w:Wikimedia_Deutschland|Wikimedia Deutschland’s]] [[m:Wikidata_For_Wikimedia_Projects|Wikidata For Wikimedia Projects]] team.<br/> We have been investigating and examining how Wikidata’s use in the [[Special:RecentChanges]] and [[Special:Watchlist]] pages can be made to be more useful, or less ‘noisy’ (fewer edits that have little value to the reader). We are currently exploring to make a change in the volume and the type of Wikidata edits that appear in these pages, and '''we need your feedback''' to help us ensure this is a positive change for the Wikis and won’t disrupt your workflows.<br/> Language links are also known as sitelinks or interlanguage links and describe when a Wikidata item is connected to a Wiki, adding it to the language dropdown tool for other connected Wikis. [[File:Types of Lang Link changes.png|x350px|frame|A variety of "Language Link" edits as seen in the Recent Changes feed]] The request for feedback is whether you support the removal of these language link edits from the Recent Changes and Watchlist feed, or would you oppose such a change and if so, why? Please share you thoughts on the dedicated '''[[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|metawiki Talk page]]'''. Further information about this change: [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|m:Wikidata_For_Wikimedia_Projects/Hide_Language_Link_edits]] Thank you for any participation or feedback you give, -- [[m:User:Danny_Benjafield_(WMDE)|User:Danny Benjafield (WMDE)]] 11:46, 25 September 2026 (UTC) <!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_test_list&oldid=31080832 --> == FlaggedRevs again == <div class="cd-moveMark">''Moved to [[Wikibooks:Reading room/Proposals#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div> == Wikidata Sitelink changes in Recent Changes and Watchlist == ''(Apologies for cross-posting in English, translating it will help spread the message)'' Editors on group 1 wikis, including Wikiquote, Wikibooks, Wikiversity, Wikivoyage, and Wikisource, will no longer see notifications on [[Special:RecentChanges|Recent Changes]] and [[Special:Watchlist|Watchlist]] when a link to ''another'' language version of a page is added, removed, or changed in its Wikidata item. This change will begin on '''October 5 at 07:00 UTC''' as a two-week trial to reduce high-volume, low-value notifications and make higher-value changes easier to identify. Editors who rely on these notifications should be aware of the change and can share feedback or concerns on the [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|project]] or [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|talk page]].<br/>Please reach out if you have any questions, thank you! -- [[User:Danny_Benjafield_(WMDE)|Danny Benjafield (WMDE)]] ([[User_talk:Danny_Benjafield_(WMDE)|talk]]) sent via [[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|discuss]] • [[Special:Contributions/MediaWiki message delivery|contribs]]) 12:42, 1 October 2026 (UTC) <!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_test_list&oldid=31106967 --> == Approved Revs extension == If we were to have this extension, we should only limit this to the Wikijunior namespace, since we will eventually stop using FlaggedRevs, unless if we want Approved Revs to work in another namespace. Remember, this is not a vote, but an overall discussion. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:17, 11 October 2026 (UTC) bia5lhitq67r6bv80v0bd2yijyzkt6z Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nf6/4. Ng5/4...d5/5. exd5/5...Nxd5/6. Nxf7 0 136943 4675501 4654562 2026-10-11T08:45:55Z ~2026-54740-13 3628138 /* Theory table */ 4675501 wikitext text/x-wiki {{Chess Opening Theory/Position|= |Fried Liver Attack| |rd| |bd|qd|kd|bd| |rd|= |pd|pd|pd| | |nl|pd|pd|= | | |nd| | | | | |= | | | |nd|pd| | | |= | | |bl| | | | | |= | | | | | | | | |= |pl|pl|pl|pl| |pl|pl|pl|= |rl|nl|bl|ql|kl| | |rl|= || }} =Fried Liver Attack= 6. Nxf7! is an aggressive Knight sacrifice. With no sensible way to decline, Black's King becomes exposed while White gains momentum in development. ==Theory table== {{Chess Opening Theory/Table}}. :'''1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5''' <table border="0" cellspacing="0" cellpadding="4"> <tr> <th></th> <th align="left">6</th> <th align="left">7</th> </tr> <tr> <th align="right">Fried Liver Attack</th> <td>Nxf7!<br>[[/6...Kxf7|Kxf7]]</td> <td>[[/6...Kxf7/7. Qf3|Qf3+]]<br>Ke6</td> </tr> </table> {{ChessMid}} ==References== {{reflist}} {{Wikipedia|Fried Liver Attack}} {{Chess Opening Theory/Footer}} 7lg7mzhzb48um5c8sca65p0gset50vt Wikibooks:Reading room/Administrative Assistance 4 140081 4675491 4675432 2026-10-11T04:31:53Z Kittycataclysm 3371989 /* Lenawalker1 reported by TechVindicator */ Reply 4675491 wikitext text/x-wiki {{/Header}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} == Tunde akinlabi reported by MathXplore == * {{userlinks|Tunde akinlabi}} Spam <!-- USERREPORTED:/Tunde akinlabi/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:18, 1 October 2026 (UTC) : Page was deleted by another admin. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:11, 2 October 2026 (UTC) == Barakat isiaka reported by MathXplore == * {{userlinks|Barakat isiaka}} Spam <!-- USERREPORTED:/Barakat isiaka/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:19, 1 October 2026 (UTC) : Page was deleted by another admin. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:11, 2 October 2026 (UTC) == Roconpaas01 reported by MathXplore == * {{userlinks|Roconpaas01}} Link spam, [[Special:AbuseLog/315913]] <!-- USERREPORTED:/Roconpaas01/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:19, 2 October 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:10, 2 October 2026 (UTC) == Diiminstitute reported by MathXplore == * {{userlinks|Diiminstitute}} Link spam, [[Special:AbuseLog/315963]] <!-- USERREPORTED:/Diiminstitute/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 02:34, 4 October 2026 (UTC) :{{done}} --[[User:SHB|SHB]] ([[User talk:SHB|discuss]] • [[Special:Contributions/SHB|contribs]]) 02:58, 4 October 2026 (UTC) == ~2026-51118-27 reported by EggRoll97 == * {{anonlinks|~2026-51118-27}} Vandalism <!-- USERREPORTED:/~2026-51118-27/ --> [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 07:28, 4 October 2026 (UTC) : {{done}} by NDG (GS). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:13, 4 October 2026 (UTC) == ~2026-53393-86 reported by MathXplore == * {{anonlinks|~2026-53393-86}} Vandalism <!-- USERREPORTED:/~2026-53393-86/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 5 October 2026 (UTC) :Various contributions deleted—watching to see how this develops. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 19:15, 5 October 2026 (UTC) == [[CustomChessTheory]] == Reason for reporting: Wrong title, renaming needed. [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:45, 5 October 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 15:21, 8 October 2026 (UTC) == Siddhgiritubes reported by MathXplore == * {{userlinks|Siddhgiritubes}} Spam <!-- USERREPORTED:/Siddhgiritubes/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:31, 7 October 2026 (UTC) : Page deleted by JJPMaster. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 15:09, 8 October 2026 (UTC) == Editbots reported by MathXplore == * {{userlinks|Editbots}} Link spam ([[Special:AbuseLog/316068]], [[Special:Contributions/~2026-54143-79]]) <!-- USERREPORTED:/Editbots/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 8 October 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 15:10, 8 October 2026 (UTC) == Lenawalker1 reported by TechVindicator == * {{userlinks|Lenawalker1}} Spam <!-- USERREPORTED:/Lenawalker1/ --> [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:07, 10 October 2026 (UTC) :{{done|Dealt with}} by SHB —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 04:31, 11 October 2026 (UTC) fdm6vdv5rz7yep1ig9058an5gfisorp Security Architecture and Design 0 148485 4675496 3465540 2026-10-11T06:05:24Z ~2026-54541-51 3628126 4675496 wikitext text/x-wiki Security Architecture is one component of a products/systems overall architecture and is developed to provide guidance during the design of the product/system. Security Architecture is the design artifacts that describe how the security controls (= security countermeasures) are positioned and how they relate to the overall systems architecture. These controls serve the purpose to maintain the system’s quality attributes such as confidentiality, integrity and availability. A security policy is a statement that outlines how entities access each other, what operations different entities can carry out, what level of protection is required for a system or software product, and what actions should be taken when these requirements are not met. A security model outlines the requirements necessary to properly support and implement a certain security policy.{{status|25%}} 3m8a371efoet2jxedssddq3uxeuy6ln English History/Anglo-Saxon England 0 150069 4675466 4417748 2026-10-10T21:21:06Z Darrelljon 45960 /* Ascendancy of Wessex and the emergence of a unified English State */ 4675466 wikitext text/x-wiki [[File:Anglo-Saxon village at West Stow - geograph.org.uk - 40260.jpg|thumb|Recreated Anglo Saxon village in Sussex, England]] The Anglo-Saxons invaded England during the 5th and 6th centuries AD. They settled down in England and controlled most parts of England till the 10th century AD. The first two centuries of Anglo-Saxon rule are known as the "Dark Ages" because written records of the period are sparse and incomplete, and must be supplemented by archaeological evidence such as the study of cemeteries and grave goods. == Origins of Saxon Rule and the Migration of the Anglo-Saxons == Roman Britain had been an orderly, prosperous province for centuries, with well-built towns and villas. Rome had brought in foreign troops to provide security against raiders from non-Roman northern Britain (the Picts). Many of these troops were Germanic in origin, and likely drew the contrast between their own homelands and the relatively rich island. When Roman control first faltered during the 4th century, Saxons and other Germans already familiar with Britain began sporadically attacking the east coasts. Roman rule in Britain came to an end in 407 when Constantine III was declared Emperor and crossed the Channel in to Britain. During this period, there were widespread migrations from France and Germany. Anglo-Saxons constituted one of them and were made of three Germanic tribes: '''the Angles, the Jutes and the Saxons'''. The year 449 is reported in chronicles as the point that the Germanic newcomers began to arrive in strength. Modern Jutland, Schleswig-Holstein, and the Frisian coast have been cited as the main origins of the newcomers. The leaders of the Britons found themselves in a losing struggle against the newcomers, who began to seize lands and drive them out by force of arms. A north-south running frontier developed between the two groups, with the Britons losing control of Kent, East Anglia and Northumbria and pushed back toward Wales and southwest England. British chroniclers such as Gildas and Nennius portrayed the Saxons as cruel and savage foes; non-English observers of the same period reported intense hatred of Saxons by the Britons. The legend of King Arthur, a British war leader valiantly defending his lands against Saxon enemies, probably has its roots in these events. The newcomers, however, were not unaffected by the customs and culture of their new homeland. British names began to appear in Anglo-Saxon families, suggesting that not all Britons left the conquered areas and that intermarriage must have taken place. Few British place names survived and few loan words entered English from the British tongue, indicating that the Anglo-Saxon political victory was decisive. Genetic surveys during the 1990s, however, indicated that the Anglo-Saxon contribution to the overall British population was about 20%, and that the bulk of the population, especially in the female line, remained unchanged from what it had been since Neolithic times (see Brian Sykes, ''Blood of the Isles'' (2006) ). Some Anglo-Saxon kingdoms, such as that of East Anglia, kept close ties with their Germanic and Scandinavian kin across the North Sea. The grave goods found at Sutton Hoo in East Anglia show strong ties with pre-Viking Jutland and Sweden and the influence of the Teutonic Heathen religion. The early Anglo-Saxon chiefdoms grew into seven kingdoms in the 6th century AD giving rise to the ''Heptarchy''. The 7th century saw the Anglo-Saxon kings adopt Christianity. The Latin Catholic version had first been brought to Kent by missionaries in 596. Christianity had existed for centuries in Roman Britain and had developed into a unique Celtic form. The Anglo-Saxons, however, were unaffected by the religion of their British foes. Some Saxon rulers, such as Penda of Mercia, were unwilling to give up the Heathen trust in Tiw, Thunor (Thor), Ing, and Woden (who they claimed as ancestor), and died without taking the new religion. Along with purported spiritual benefits, adopting the new faith was an opportunity for Anglo-Saxon leaders to forge alliances with powerful kings on the Continent such as the Franks. After some small wars among the Saxon rulers, Latin Christianity eventually prevailed. == Ascendancy of Wessex and the emergence of a unified English State == King Alfred the Great, king of the West Saxons and the "HEGEMONY" of Wessex over the other English kingdoms <br /> note: <u>Athelstan</u> the first actual ruler (from 927CE), but England has no actual foundation date.<ref>{{Cite book |last=Higham |first=Nicholas J. |url=https://books.google.com/books/about/How_England_Began.html?id=WEW7EQAAQBAJ |title=How England Began: From Roman Britain to the Anglo-Saxons |date=2026-03-03 |publisher=Yale University Press |isbn=978-0-300-25492-1 |language=en}}</ref><ref>{{Cite book |last=Morris |first=Marc |url=https://books.google.com/books/about/The_Anglo_Saxons.html?id=dnbSDwAAQBAJ |title=The Anglo-Saxons: A History of the Beginnings of England: 400 – 1066 |date=2021-05-25 |publisher=Simon and Schuster |isbn=978-1-64313-535-9 |language=en}}</ref> ==References== {{Reflist}} {{BookCat}} hfbfdufb2z940i50p1zmp48epradd1g Wikibooks:Reading room/Proposals 4 155682 4675448 4675440 2026-10-10T12:53:38Z Codename Noreste 3441010 /* Disable (some) page creation by temporary accounts */ ([[:m:User:Max/MaxEdit.js|MaxEdit]]) 4675448 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:RFC|WB:PROPOSALS}} {{TOC left<!--|limit=2-->}} Welcome to the '''Proposals reading room'''. On this page, Wikibookians are free to talk about suggestions for improving Wikibooks. {{User:MiszaBot/config |archive = Wikibooks:Reading room/Proposals/%(year)d/%(monthname)s |algo = old(120d) |counter = 1 |key = 1f2adc5eee951900b65c7b981b786191 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{clear}} <!--Take threads to archive below this line--> <!--Add new threads to bottom of page--> == New gadget to browse subpages == Hi all! I developed a gadget to easily browse subpages through a collapsible menu, that I think might be useful in Wikibooks. Here's a little demo video: [[File:Subpages_gadget_demo.webm|frameless]] To test it yourself, add the following to [[Special:MyPage/common.js|your common.js]]: <syntaxhighlight lang="javascript"> mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' ); </syntaxhighlight> If you find it useful, I can enable it as a gadget to make it generally available from the preferences. Thoughts? Cheers! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 2 July 2026 (UTC) :Wikibooks relies heavily on subpages, so this is a nice addition. Merci. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:43, 2 July 2026 (UTC) :This could be extremely useful for books here!! I'll note, though, that it doesn't work quite right with the vector legacy skin (what I use). —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:20, 3 July 2026 (UTC) : @[[User:Sophivorus|Sophivorus]] I will be the one in charge installing this as a gadget since there is no objection, but what dependecies does this gadget need to use? You might also want to read Kittycataclysm's suggestion above. ''Muchos saludos''. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:08, 9 July 2026 (UTC) ::@[[User:Codename Noreste|Codename Noreste]] Hi! I just fixed the issue with Vector legacy and also for other skins. Regarding dependencies, this gadget requires <code>mediawiki.api</code> and <code>@wikimedia/codex</code>. If you want to take care of the installation, please do not copy-paste the source code, but rather load the global version using <code>mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );</code>, like other [[mw:Global gadgets|global gadgets]]. Thanks! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 14:22, 22 July 2026 (UTC) ::: I put the code on the gadgets definition page @[[User:Sophivorus|Sophivorus]], but feel free to fix what I placed. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 21:45, 22 July 2026 (UTC) == Breadcrumbs in the title == Hi! I think breadcrumbs would be more intuitive, compact and cleaner if they were integrated into the title rather than below it, like so: <gallery> Wikisource breadcrumbs proposal (before).png|Current breadcrumbs Wikisource breadcrumbs proposal (after).png|Proposed breadcrumbs </gallery> What do you think? [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 17 August 2026 (UTC) :I appreciate the effort, but I don't see a big difference or that one would be more usable than another. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:14, 17 August 2026 (UTC) :I like proposal and I think it would be an improvement. Having the breadcrumbs twice, as in the current system, creates a redundant ui element. I also think the formatting around the forward slashes in the "new" version better conveys that they have specific technical meaning and are not part of the name of the page. --[[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:52, 7 October 2026 (UTC) == Approve [[Wikibooks:CheckUser]] as a local policy? == Some of the text was based off of the global CheckUser policy, but in this case, should we approve [[Wikibooks:CheckUser]] as a local policy? There is a special clause allowing stewards to perform checks even during non-emergency situations (as set in [[Wikibooks:Global rights policy]]). I have yet to include a part where users may request CU checks. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 21:55, 13 September 2026 (UTC) :I'm somewhat just unsure on what the benefit of making this policy would be. Sure, there's strength in policy, of course. But this seems to be doing fine overall as an information page, no? It doesn't differ very much from the global CU policy, so I'm not sure that a page without any Wikibooks-specific information really benefits from policy status. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:22, 14 September 2026 (UTC) :I would {{support}} this. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:26, 20 September 2026 (UTC) == FlaggedRevs again == <div class="cd-moveMark">''Moved from [[Wikibooks:Reading room/General#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div> Hi all. I already know there were various topics over the years about this subject, but I was considering for the project on whether we should remove this extension from this project, and go back to using MediaWiki's page patrol system. Currently, there is a backlog of more than 3000 unreviewed edits (some going back as far as a few years ago); that’s why I started this discussion here. {{collapse top}} * <code>autoreview</code> and <code>editor</code> would be <code>autopatrolled</code> and <code>patroller</code>, respectively. * <code>wgUseNPPatrol</code> and <code>wgUseFilePatrol</code> would be re-enabled for English Wikibooks. * <code>autopatrol</code> and <code>patrol</code> would be re-assigned back to sysops and their respective user groups. * <code>patroller</code> would also have <code>rollback</code> and <code>suppressredirect</code> and its rate limit untouched. {{collapse bottom}} Best, [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:56, 30 September 2026 (UTC) :{{s}} the removal of FlaggedRevs. Inasmuch as the extension works at all, it works best when it is used selectively on projects like Wikipedia, for individual high-traffic pages with lots of watchers which are subject to vandalism or controversy. Wikibooks is not a good use case for this extension. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 15:51, 1 October 2026 (UTC) :{{s}} I don't see any way that backlog ever gets cleared, frankly, and if it isn't going to be cleared, we might as well go to something easier, which is the normal page patrol system, which works well off of [[Special:NewPages]] already. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:31, 3 October 2026 (UTC) :{{neutral}} - Wikibooks is not a good use case for this extension, and with 3000 unreviewed edits with no progress at all, it does make sense to remove it. On the other hand, there could be a WikiProject to review each of these edits. For this reason, I am voting neutral [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:41, 3 October 2026 (UTC) :: There was the outdated [[Wikibooks:New page patrol]] before this project used FlaggedRevs. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:22, 3 October 2026 (UTC) :{{support}} the removal of FlaggedRevs from Wikibooks. It's a redundant extension that's not useful in this wiki. --[[User:Agusbou2015|Agusbou2015]] ([[User talk:Agusbou2015|discuss]] • [[Special:Contributions/Agusbou2015|contribs]]) 21:53, 3 October 2026 (UTC) :{{Support}}. Several years ago I spent hundreds of hours trying to do the first review of every page. I managed to get all the root pages done but only got as far as "E" for the other pages. While I was doing this I stopped reviewing changes - and in that time over a 1,000 out of date pages were in the list. I concluded it was an impossible task unless lots of people joined in the work but that didn't happen and I doubt it ever will. I do think it has value for Wikijunior in showing the last reviewed page rather than the possibly offensively vandalised latest revision, but other than that it's a waste of time. At some point the extension will get fully deprecated and we'll be forced to stop using it anyway. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 09:53, 6 October 2026 (UTC) :Will <code>patroller</code> be granted automatically? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:24, 6 October 2026 (UTC) :: Unfortunately, no. Since we will stop using FlaggedRevs, the patroller user group will not be granted automatically and thus will have to be manually given out by administrators. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 6 October 2026 (UTC) :::@[[User:Codename Noreste|Codename Noreste]]: And are we planning on giving back the <code>patroller</code> right to existing reviewers? Or will they have to manually reapply? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:30, 8 October 2026 (UTC) :::: I have a plan: any former reviewer who has been active recently in the past two years will have patroller rights. This will be done to reduce a huge amount of inactive former reviewers. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:26, 8 October 2026 (UTC) ::::Keep the name the same; just remove the reviewer right. After all, patrolling is a form of reviewing. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 18:52, 8 October 2026 (UTC) ::::: Do we have to use the term {{tq|reviewing}} instead of {{tq|patrolling}}? [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:57, 8 October 2026 (UTC) :::{{ping|Codename Noreste}} Is there a reason that we should not simply give the reviewer group the <code>patrol</code> right, and keep the auto-granting going? [[Wikibooks:Reviewers#Automatic criteria]] does not appear to be FlaggedRevs-specific, so auto-promotion should still be able to continue even without FlaggedRevs, and reviewers could simply become patrollers (in the technical sense). [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 07:55, 10 October 2026 (UTC) : If you take a look at the extended content, I also included what I also proposed too. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:19, 6 October 2026 (UTC) :{{comment}}. The [[mw:Extension:FlaggedRevs|FlaggedRevs extension]] is not recommended for production use, per Mediawiki. On this basis alone we should discontinue use of it. However, we haven't determined if page patrolling is the best replacement. There are [[mw:Content approval extensions|alternative extensions]] and the mediawiki page for FlaggedRevs specifically recommends [[mw:Extension:Approved Revs|'''Approved Revs extension''']]. We should determine which of page patrolling or these extensions is the most appropriate antivandalism tool first. (after all, according to [[Help:Tracking_changes#Reviewing_pages]], the purpose of FlaggedRevs is to be "our primary counter-vandalism tool"). --[[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:48, 7 October 2026 (UTC) :: Approved Revs would require significant testing and approval per [[mw:Writing an extension for deployment]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 16:35, 7 October 2026 (UTC) == Disable (some) page creation by temporary accounts == Creating a new book, or adding a chapter to an existing book, is a significant action, and users performing this action should be available to discuss it. Additionally, in practice, most page creations by temp accounts are out of scope, if not outright vandalism. (See https://en.wikibooks.org/w/index.php?title=Special:Log&type=create for some examples.) As such, I'd like to propose that the wiki require a registered account to create pages in any non-talk namespace. Temporary accounts will still be able to edit existing pages, or to create talk pages to start discussions. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 1 October 2026 (UTC) : From a technical point of view, this would require moving <code>createpage</code> from unregistered users (<code><nowiki>*</nowiki></code>) to registered users (<code>user</code>), but that would mean every non-registered user may not be able to create pages in every namespace, but talk pages. : Another solution would be to add [[mw:Extension:ArticleCreationWorkflow]] to this project, but we don't have a system to create drafts (or similar). : And a final solution would be to create an edit filter disallowing unregistered users from creating pages in mainspace. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:43, 1 October 2026 (UTC) :: Just to note, please read the first point of [[m:Limits to configuration changes#Changes that are likely to be declined]] (Disable non-autoconfirmed page creation). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:50, 1 October 2026 (UTC) :::What I'm proposing is that we require a registered account for page creation, not autoconfirmed. enwiki (as well as a few other wikis) already use this configuration - it's not new. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:58, 1 October 2026 (UTC) :::: Okay, but I provided some alternatives above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 20:06, 1 October 2026 (UTC) : In that case, I have no objections here. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:03, 6 October 2026 (UTC) :I would propose the use of autoconfirmed, to better patrol new pages that are being created. There are countless advertisement pages being created on Wikibooks, usually in the user's userpage. The use of a registered account proposed by Omphalographer therefore may have some limitations. I agree with the proposal to make new pages strictly autoconfirmed. If a user wishes to create a page, there could be a feature for reviewers/patrollers to check such pages that are being created. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:36, 9 October 2026 (UTC) :: You might want to read my point about limits to configuration changes. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:53, 9 October 2026 (UTC) :Why turn off potential good contributors by telling them they must register AND log-in in order to contribute? The problem at Wikibooks right now is the dearth of contributions, not vandalism, I think (?). :* Anons are already precluded from editing pages that have been "protected" by admins. :* Anon user contributions are automatically marked for Review before they become public :* There are less than 500 anon accounts that have contributed more than one edit to Wikibooks? :Is it really necessary to stop us from contributing to Wikibooks? [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 00:19, 10 October 2026 (UTC) :: {{ping|~2026-40500-29}} The initial question was not whether registered accounts can contribute, it is whether temporary accounts can create pages. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:48, 10 October 2026 (UTC) kfu04rot5mdncwlgjg6mwo47ob3e5l4 4675450 4675448 2026-10-10T13:26:22Z ArtopiaBoy 3628065 /* Disable (some) page creation by temporary accounts */ Reply 4675450 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:RFC|WB:PROPOSALS}} {{TOC left<!--|limit=2-->}} Welcome to the '''Proposals reading room'''. On this page, Wikibookians are free to talk about suggestions for improving Wikibooks. {{User:MiszaBot/config |archive = Wikibooks:Reading room/Proposals/%(year)d/%(monthname)s |algo = old(120d) |counter = 1 |key = 1f2adc5eee951900b65c7b981b786191 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{clear}} <!--Take threads to archive below this line--> <!--Add new threads to bottom of page--> == New gadget to browse subpages == Hi all! I developed a gadget to easily browse subpages through a collapsible menu, that I think might be useful in Wikibooks. Here's a little demo video: [[File:Subpages_gadget_demo.webm|frameless]] To test it yourself, add the following to [[Special:MyPage/common.js|your common.js]]: <syntaxhighlight lang="javascript"> mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' ); </syntaxhighlight> If you find it useful, I can enable it as a gadget to make it generally available from the preferences. Thoughts? Cheers! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 2 July 2026 (UTC) :Wikibooks relies heavily on subpages, so this is a nice addition. Merci. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:43, 2 July 2026 (UTC) :This could be extremely useful for books here!! I'll note, though, that it doesn't work quite right with the vector legacy skin (what I use). —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:20, 3 July 2026 (UTC) : @[[User:Sophivorus|Sophivorus]] I will be the one in charge installing this as a gadget since there is no objection, but what dependecies does this gadget need to use? You might also want to read Kittycataclysm's suggestion above. ''Muchos saludos''. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:08, 9 July 2026 (UTC) ::@[[User:Codename Noreste|Codename Noreste]] Hi! I just fixed the issue with Vector legacy and also for other skins. Regarding dependencies, this gadget requires <code>mediawiki.api</code> and <code>@wikimedia/codex</code>. If you want to take care of the installation, please do not copy-paste the source code, but rather load the global version using <code>mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );</code>, like other [[mw:Global gadgets|global gadgets]]. Thanks! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 14:22, 22 July 2026 (UTC) ::: I put the code on the gadgets definition page @[[User:Sophivorus|Sophivorus]], but feel free to fix what I placed. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 21:45, 22 July 2026 (UTC) == Breadcrumbs in the title == Hi! I think breadcrumbs would be more intuitive, compact and cleaner if they were integrated into the title rather than below it, like so: <gallery> Wikisource breadcrumbs proposal (before).png|Current breadcrumbs Wikisource breadcrumbs proposal (after).png|Proposed breadcrumbs </gallery> What do you think? [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 17 August 2026 (UTC) :I appreciate the effort, but I don't see a big difference or that one would be more usable than another. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:14, 17 August 2026 (UTC) :I like proposal and I think it would be an improvement. Having the breadcrumbs twice, as in the current system, creates a redundant ui element. I also think the formatting around the forward slashes in the "new" version better conveys that they have specific technical meaning and are not part of the name of the page. --[[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:52, 7 October 2026 (UTC) == Approve [[Wikibooks:CheckUser]] as a local policy? == Some of the text was based off of the global CheckUser policy, but in this case, should we approve [[Wikibooks:CheckUser]] as a local policy? There is a special clause allowing stewards to perform checks even during non-emergency situations (as set in [[Wikibooks:Global rights policy]]). I have yet to include a part where users may request CU checks. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 21:55, 13 September 2026 (UTC) :I'm somewhat just unsure on what the benefit of making this policy would be. Sure, there's strength in policy, of course. But this seems to be doing fine overall as an information page, no? It doesn't differ very much from the global CU policy, so I'm not sure that a page without any Wikibooks-specific information really benefits from policy status. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:22, 14 September 2026 (UTC) :I would {{support}} this. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:26, 20 September 2026 (UTC) == FlaggedRevs again == <div class="cd-moveMark">''Moved from [[Wikibooks:Reading room/General#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div> Hi all. I already know there were various topics over the years about this subject, but I was considering for the project on whether we should remove this extension from this project, and go back to using MediaWiki's page patrol system. Currently, there is a backlog of more than 3000 unreviewed edits (some going back as far as a few years ago); that’s why I started this discussion here. {{collapse top}} * <code>autoreview</code> and <code>editor</code> would be <code>autopatrolled</code> and <code>patroller</code>, respectively. * <code>wgUseNPPatrol</code> and <code>wgUseFilePatrol</code> would be re-enabled for English Wikibooks. * <code>autopatrol</code> and <code>patrol</code> would be re-assigned back to sysops and their respective user groups. * <code>patroller</code> would also have <code>rollback</code> and <code>suppressredirect</code> and its rate limit untouched. {{collapse bottom}} Best, [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:56, 30 September 2026 (UTC) :{{s}} the removal of FlaggedRevs. Inasmuch as the extension works at all, it works best when it is used selectively on projects like Wikipedia, for individual high-traffic pages with lots of watchers which are subject to vandalism or controversy. Wikibooks is not a good use case for this extension. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 15:51, 1 October 2026 (UTC) :{{s}} I don't see any way that backlog ever gets cleared, frankly, and if it isn't going to be cleared, we might as well go to something easier, which is the normal page patrol system, which works well off of [[Special:NewPages]] already. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:31, 3 October 2026 (UTC) :{{neutral}} - Wikibooks is not a good use case for this extension, and with 3000 unreviewed edits with no progress at all, it does make sense to remove it. On the other hand, there could be a WikiProject to review each of these edits. For this reason, I am voting neutral [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:41, 3 October 2026 (UTC) :: There was the outdated [[Wikibooks:New page patrol]] before this project used FlaggedRevs. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:22, 3 October 2026 (UTC) :{{support}} the removal of FlaggedRevs from Wikibooks. It's a redundant extension that's not useful in this wiki. --[[User:Agusbou2015|Agusbou2015]] ([[User talk:Agusbou2015|discuss]] • [[Special:Contributions/Agusbou2015|contribs]]) 21:53, 3 October 2026 (UTC) :{{Support}}. Several years ago I spent hundreds of hours trying to do the first review of every page. I managed to get all the root pages done but only got as far as "E" for the other pages. While I was doing this I stopped reviewing changes - and in that time over a 1,000 out of date pages were in the list. I concluded it was an impossible task unless lots of people joined in the work but that didn't happen and I doubt it ever will. I do think it has value for Wikijunior in showing the last reviewed page rather than the possibly offensively vandalised latest revision, but other than that it's a waste of time. At some point the extension will get fully deprecated and we'll be forced to stop using it anyway. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 09:53, 6 October 2026 (UTC) :Will <code>patroller</code> be granted automatically? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:24, 6 October 2026 (UTC) :: Unfortunately, no. Since we will stop using FlaggedRevs, the patroller user group will not be granted automatically and thus will have to be manually given out by administrators. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 6 October 2026 (UTC) :::@[[User:Codename Noreste|Codename Noreste]]: And are we planning on giving back the <code>patroller</code> right to existing reviewers? Or will they have to manually reapply? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:30, 8 October 2026 (UTC) :::: I have a plan: any former reviewer who has been active recently in the past two years will have patroller rights. This will be done to reduce a huge amount of inactive former reviewers. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:26, 8 October 2026 (UTC) ::::Keep the name the same; just remove the reviewer right. After all, patrolling is a form of reviewing. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 18:52, 8 October 2026 (UTC) ::::: Do we have to use the term {{tq|reviewing}} instead of {{tq|patrolling}}? [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:57, 8 October 2026 (UTC) :::{{ping|Codename Noreste}} Is there a reason that we should not simply give the reviewer group the <code>patrol</code> right, and keep the auto-granting going? [[Wikibooks:Reviewers#Automatic criteria]] does not appear to be FlaggedRevs-specific, so auto-promotion should still be able to continue even without FlaggedRevs, and reviewers could simply become patrollers (in the technical sense). [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 07:55, 10 October 2026 (UTC) : If you take a look at the extended content, I also included what I also proposed too. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:19, 6 October 2026 (UTC) :{{comment}}. The [[mw:Extension:FlaggedRevs|FlaggedRevs extension]] is not recommended for production use, per Mediawiki. On this basis alone we should discontinue use of it. However, we haven't determined if page patrolling is the best replacement. There are [[mw:Content approval extensions|alternative extensions]] and the mediawiki page for FlaggedRevs specifically recommends [[mw:Extension:Approved Revs|'''Approved Revs extension''']]. We should determine which of page patrolling or these extensions is the most appropriate antivandalism tool first. (after all, according to [[Help:Tracking_changes#Reviewing_pages]], the purpose of FlaggedRevs is to be "our primary counter-vandalism tool"). --[[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:48, 7 October 2026 (UTC) :: Approved Revs would require significant testing and approval per [[mw:Writing an extension for deployment]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 16:35, 7 October 2026 (UTC) == Disable (some) page creation by temporary accounts == Creating a new book, or adding a chapter to an existing book, is a significant action, and users performing this action should be available to discuss it. Additionally, in practice, most page creations by temp accounts are out of scope, if not outright vandalism. (See https://en.wikibooks.org/w/index.php?title=Special:Log&type=create for some examples.) As such, I'd like to propose that the wiki require a registered account to create pages in any non-talk namespace. Temporary accounts will still be able to edit existing pages, or to create talk pages to start discussions. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 1 October 2026 (UTC) : From a technical point of view, this would require moving <code>createpage</code> from unregistered users (<code><nowiki>*</nowiki></code>) to registered users (<code>user</code>), but that would mean every non-registered user may not be able to create pages in every namespace, but talk pages. : Another solution would be to add [[mw:Extension:ArticleCreationWorkflow]] to this project, but we don't have a system to create drafts (or similar). : And a final solution would be to create an edit filter disallowing unregistered users from creating pages in mainspace. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:43, 1 October 2026 (UTC) :: Just to note, please read the first point of [[m:Limits to configuration changes#Changes that are likely to be declined]] (Disable non-autoconfirmed page creation). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:50, 1 October 2026 (UTC) :::What I'm proposing is that we require a registered account for page creation, not autoconfirmed. enwiki (as well as a few other wikis) already use this configuration - it's not new. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:58, 1 October 2026 (UTC) :::: Okay, but I provided some alternatives above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 20:06, 1 October 2026 (UTC) : In that case, I have no objections here. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:03, 6 October 2026 (UTC) :I would propose the use of autoconfirmed, to better patrol new pages that are being created. There are countless advertisement pages being created on Wikibooks, usually in the user's userpage. The use of a registered account proposed by Omphalographer therefore may have some limitations. I agree with the proposal to make new pages strictly autoconfirmed. If a user wishes to create a page, there could be a feature for reviewers/patrollers to check such pages that are being created. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:36, 9 October 2026 (UTC) :: You might want to read my point about limits to configuration changes. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:53, 9 October 2026 (UTC) :Why turn off potential good contributors by telling them they must register AND log-in in order to contribute? The problem at Wikibooks right now is the dearth of contributions, not vandalism, I think (?). :* Anons are already precluded from editing pages that have been "protected" by admins. :* Anon user contributions are automatically marked for Review before they become public :* There are less than 500 anon accounts that have contributed more than one edit to Wikibooks? :Is it really necessary to stop us from contributing to Wikibooks? [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 00:19, 10 October 2026 (UTC) :: {{ping|~2026-40500-29}} The initial question was not whether registered accounts can contribute, it is whether temporary accounts can create pages. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:48, 10 October 2026 (UTC) :::And please unblock me [[User:ArtopiaBoy|ArtopiaBoy]] ([[User talk:ArtopiaBoy|discuss]] • [[Special:Contributions/ArtopiaBoy|contribs]]) 13:26, 10 October 2026 (UTC) oi4id2xfxlzv33z9xfj5yoru21qpz03 4675451 4675450 2026-10-10T13:40:39Z Codename Noreste 3441010 [[WB:REVERT|Reverted]] edit by [[Special:Contributions/ArtopiaBoy|ArtopiaBoy]] ([[User talk:ArtopiaBoy|talk]]) to last version by Codename Noreste 4675448 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:RFC|WB:PROPOSALS}} {{TOC left<!--|limit=2-->}} Welcome to the '''Proposals reading room'''. On this page, Wikibookians are free to talk about suggestions for improving Wikibooks. {{User:MiszaBot/config |archive = Wikibooks:Reading room/Proposals/%(year)d/%(monthname)s |algo = old(120d) |counter = 1 |key = 1f2adc5eee951900b65c7b981b786191 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{clear}} <!--Take threads to archive below this line--> <!--Add new threads to bottom of page--> == New gadget to browse subpages == Hi all! I developed a gadget to easily browse subpages through a collapsible menu, that I think might be useful in Wikibooks. Here's a little demo video: [[File:Subpages_gadget_demo.webm|frameless]] To test it yourself, add the following to [[Special:MyPage/common.js|your common.js]]: <syntaxhighlight lang="javascript"> mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' ); </syntaxhighlight> If you find it useful, I can enable it as a gadget to make it generally available from the preferences. Thoughts? Cheers! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 2 July 2026 (UTC) :Wikibooks relies heavily on subpages, so this is a nice addition. Merci. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:43, 2 July 2026 (UTC) :This could be extremely useful for books here!! I'll note, though, that it doesn't work quite right with the vector legacy skin (what I use). —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:20, 3 July 2026 (UTC) : @[[User:Sophivorus|Sophivorus]] I will be the one in charge installing this as a gadget since there is no objection, but what dependecies does this gadget need to use? You might also want to read Kittycataclysm's suggestion above. ''Muchos saludos''. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:08, 9 July 2026 (UTC) ::@[[User:Codename Noreste|Codename Noreste]] Hi! I just fixed the issue with Vector legacy and also for other skins. Regarding dependencies, this gadget requires <code>mediawiki.api</code> and <code>@wikimedia/codex</code>. If you want to take care of the installation, please do not copy-paste the source code, but rather load the global version using <code>mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );</code>, like other [[mw:Global gadgets|global gadgets]]. Thanks! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 14:22, 22 July 2026 (UTC) ::: I put the code on the gadgets definition page @[[User:Sophivorus|Sophivorus]], but feel free to fix what I placed. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 21:45, 22 July 2026 (UTC) == Breadcrumbs in the title == Hi! I think breadcrumbs would be more intuitive, compact and cleaner if they were integrated into the title rather than below it, like so: <gallery> Wikisource breadcrumbs proposal (before).png|Current breadcrumbs Wikisource breadcrumbs proposal (after).png|Proposed breadcrumbs </gallery> What do you think? [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 17 August 2026 (UTC) :I appreciate the effort, but I don't see a big difference or that one would be more usable than another. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:14, 17 August 2026 (UTC) :I like proposal and I think it would be an improvement. Having the breadcrumbs twice, as in the current system, creates a redundant ui element. I also think the formatting around the forward slashes in the "new" version better conveys that they have specific technical meaning and are not part of the name of the page. --[[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:52, 7 October 2026 (UTC) == Approve [[Wikibooks:CheckUser]] as a local policy? == Some of the text was based off of the global CheckUser policy, but in this case, should we approve [[Wikibooks:CheckUser]] as a local policy? There is a special clause allowing stewards to perform checks even during non-emergency situations (as set in [[Wikibooks:Global rights policy]]). I have yet to include a part where users may request CU checks. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 21:55, 13 September 2026 (UTC) :I'm somewhat just unsure on what the benefit of making this policy would be. Sure, there's strength in policy, of course. But this seems to be doing fine overall as an information page, no? It doesn't differ very much from the global CU policy, so I'm not sure that a page without any Wikibooks-specific information really benefits from policy status. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:22, 14 September 2026 (UTC) :I would {{support}} this. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:26, 20 September 2026 (UTC) == FlaggedRevs again == <div class="cd-moveMark">''Moved from [[Wikibooks:Reading room/General#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div> Hi all. I already know there were various topics over the years about this subject, but I was considering for the project on whether we should remove this extension from this project, and go back to using MediaWiki's page patrol system. Currently, there is a backlog of more than 3000 unreviewed edits (some going back as far as a few years ago); that’s why I started this discussion here. {{collapse top}} * <code>autoreview</code> and <code>editor</code> would be <code>autopatrolled</code> and <code>patroller</code>, respectively. * <code>wgUseNPPatrol</code> and <code>wgUseFilePatrol</code> would be re-enabled for English Wikibooks. * <code>autopatrol</code> and <code>patrol</code> would be re-assigned back to sysops and their respective user groups. * <code>patroller</code> would also have <code>rollback</code> and <code>suppressredirect</code> and its rate limit untouched. {{collapse bottom}} Best, [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:56, 30 September 2026 (UTC) :{{s}} the removal of FlaggedRevs. Inasmuch as the extension works at all, it works best when it is used selectively on projects like Wikipedia, for individual high-traffic pages with lots of watchers which are subject to vandalism or controversy. Wikibooks is not a good use case for this extension. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 15:51, 1 October 2026 (UTC) :{{s}} I don't see any way that backlog ever gets cleared, frankly, and if it isn't going to be cleared, we might as well go to something easier, which is the normal page patrol system, which works well off of [[Special:NewPages]] already. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:31, 3 October 2026 (UTC) :{{neutral}} - Wikibooks is not a good use case for this extension, and with 3000 unreviewed edits with no progress at all, it does make sense to remove it. On the other hand, there could be a WikiProject to review each of these edits. For this reason, I am voting neutral [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:41, 3 October 2026 (UTC) :: There was the outdated [[Wikibooks:New page patrol]] before this project used FlaggedRevs. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:22, 3 October 2026 (UTC) :{{support}} the removal of FlaggedRevs from Wikibooks. It's a redundant extension that's not useful in this wiki. --[[User:Agusbou2015|Agusbou2015]] ([[User talk:Agusbou2015|discuss]] • [[Special:Contributions/Agusbou2015|contribs]]) 21:53, 3 October 2026 (UTC) :{{Support}}. Several years ago I spent hundreds of hours trying to do the first review of every page. I managed to get all the root pages done but only got as far as "E" for the other pages. While I was doing this I stopped reviewing changes - and in that time over a 1,000 out of date pages were in the list. I concluded it was an impossible task unless lots of people joined in the work but that didn't happen and I doubt it ever will. I do think it has value for Wikijunior in showing the last reviewed page rather than the possibly offensively vandalised latest revision, but other than that it's a waste of time. At some point the extension will get fully deprecated and we'll be forced to stop using it anyway. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 09:53, 6 October 2026 (UTC) :Will <code>patroller</code> be granted automatically? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:24, 6 October 2026 (UTC) :: Unfortunately, no. Since we will stop using FlaggedRevs, the patroller user group will not be granted automatically and thus will have to be manually given out by administrators. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 6 October 2026 (UTC) :::@[[User:Codename Noreste|Codename Noreste]]: And are we planning on giving back the <code>patroller</code> right to existing reviewers? Or will they have to manually reapply? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:30, 8 October 2026 (UTC) :::: I have a plan: any former reviewer who has been active recently in the past two years will have patroller rights. This will be done to reduce a huge amount of inactive former reviewers. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:26, 8 October 2026 (UTC) ::::Keep the name the same; just remove the reviewer right. After all, patrolling is a form of reviewing. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 18:52, 8 October 2026 (UTC) ::::: Do we have to use the term {{tq|reviewing}} instead of {{tq|patrolling}}? [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:57, 8 October 2026 (UTC) :::{{ping|Codename Noreste}} Is there a reason that we should not simply give the reviewer group the <code>patrol</code> right, and keep the auto-granting going? [[Wikibooks:Reviewers#Automatic criteria]] does not appear to be FlaggedRevs-specific, so auto-promotion should still be able to continue even without FlaggedRevs, and reviewers could simply become patrollers (in the technical sense). [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 07:55, 10 October 2026 (UTC) : If you take a look at the extended content, I also included what I also proposed too. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:19, 6 October 2026 (UTC) :{{comment}}. The [[mw:Extension:FlaggedRevs|FlaggedRevs extension]] is not recommended for production use, per Mediawiki. On this basis alone we should discontinue use of it. However, we haven't determined if page patrolling is the best replacement. There are [[mw:Content approval extensions|alternative extensions]] and the mediawiki page for FlaggedRevs specifically recommends [[mw:Extension:Approved Revs|'''Approved Revs extension''']]. We should determine which of page patrolling or these extensions is the most appropriate antivandalism tool first. (after all, according to [[Help:Tracking_changes#Reviewing_pages]], the purpose of FlaggedRevs is to be "our primary counter-vandalism tool"). --[[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:48, 7 October 2026 (UTC) :: Approved Revs would require significant testing and approval per [[mw:Writing an extension for deployment]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 16:35, 7 October 2026 (UTC) == Disable (some) page creation by temporary accounts == Creating a new book, or adding a chapter to an existing book, is a significant action, and users performing this action should be available to discuss it. Additionally, in practice, most page creations by temp accounts are out of scope, if not outright vandalism. (See https://en.wikibooks.org/w/index.php?title=Special:Log&type=create for some examples.) As such, I'd like to propose that the wiki require a registered account to create pages in any non-talk namespace. Temporary accounts will still be able to edit existing pages, or to create talk pages to start discussions. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 1 October 2026 (UTC) : From a technical point of view, this would require moving <code>createpage</code> from unregistered users (<code><nowiki>*</nowiki></code>) to registered users (<code>user</code>), but that would mean every non-registered user may not be able to create pages in every namespace, but talk pages. : Another solution would be to add [[mw:Extension:ArticleCreationWorkflow]] to this project, but we don't have a system to create drafts (or similar). : And a final solution would be to create an edit filter disallowing unregistered users from creating pages in mainspace. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:43, 1 October 2026 (UTC) :: Just to note, please read the first point of [[m:Limits to configuration changes#Changes that are likely to be declined]] (Disable non-autoconfirmed page creation). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:50, 1 October 2026 (UTC) :::What I'm proposing is that we require a registered account for page creation, not autoconfirmed. enwiki (as well as a few other wikis) already use this configuration - it's not new. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:58, 1 October 2026 (UTC) :::: Okay, but I provided some alternatives above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 20:06, 1 October 2026 (UTC) : In that case, I have no objections here. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:03, 6 October 2026 (UTC) :I would propose the use of autoconfirmed, to better patrol new pages that are being created. There are countless advertisement pages being created on Wikibooks, usually in the user's userpage. The use of a registered account proposed by Omphalographer therefore may have some limitations. I agree with the proposal to make new pages strictly autoconfirmed. If a user wishes to create a page, there could be a feature for reviewers/patrollers to check such pages that are being created. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:36, 9 October 2026 (UTC) :: You might want to read my point about limits to configuration changes. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:53, 9 October 2026 (UTC) :Why turn off potential good contributors by telling them they must register AND log-in in order to contribute? The problem at Wikibooks right now is the dearth of contributions, not vandalism, I think (?). :* Anons are already precluded from editing pages that have been "protected" by admins. :* Anon user contributions are automatically marked for Review before they become public :* There are less than 500 anon accounts that have contributed more than one edit to Wikibooks? :Is it really necessary to stop us from contributing to Wikibooks? [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 00:19, 10 October 2026 (UTC) :: {{ping|~2026-40500-29}} The initial question was not whether registered accounts can contribute, it is whether temporary accounts can create pages. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:48, 10 October 2026 (UTC) kfu04rot5mdncwlgjg6mwo47ob3e5l4 4675452 4675451 2026-10-10T13:58:22Z Codename Noreste 3441010 /* FlaggedRevs again */ reply to EggRoll97 ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4675452 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:RFC|WB:PROPOSALS}} {{TOC left<!--|limit=2-->}} Welcome to the '''Proposals reading room'''. On this page, Wikibookians are free to talk about suggestions for improving Wikibooks. {{User:MiszaBot/config |archive = Wikibooks:Reading room/Proposals/%(year)d/%(monthname)s |algo = old(120d) |counter = 1 |key = 1f2adc5eee951900b65c7b981b786191 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{clear}} <!--Take threads to archive below this line--> <!--Add new threads to bottom of page--> == New gadget to browse subpages == Hi all! I developed a gadget to easily browse subpages through a collapsible menu, that I think might be useful in Wikibooks. Here's a little demo video: [[File:Subpages_gadget_demo.webm|frameless]] To test it yourself, add the following to [[Special:MyPage/common.js|your common.js]]: <syntaxhighlight lang="javascript"> mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' ); </syntaxhighlight> If you find it useful, I can enable it as a gadget to make it generally available from the preferences. Thoughts? Cheers! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 2 July 2026 (UTC) :Wikibooks relies heavily on subpages, so this is a nice addition. Merci. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:43, 2 July 2026 (UTC) :This could be extremely useful for books here!! I'll note, though, that it doesn't work quite right with the vector legacy skin (what I use). —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:20, 3 July 2026 (UTC) : @[[User:Sophivorus|Sophivorus]] I will be the one in charge installing this as a gadget since there is no objection, but what dependecies does this gadget need to use? You might also want to read Kittycataclysm's suggestion above. ''Muchos saludos''. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:08, 9 July 2026 (UTC) ::@[[User:Codename Noreste|Codename Noreste]] Hi! I just fixed the issue with Vector legacy and also for other skins. Regarding dependencies, this gadget requires <code>mediawiki.api</code> and <code>@wikimedia/codex</code>. If you want to take care of the installation, please do not copy-paste the source code, but rather load the global version using <code>mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );</code>, like other [[mw:Global gadgets|global gadgets]]. Thanks! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 14:22, 22 July 2026 (UTC) ::: I put the code on the gadgets definition page @[[User:Sophivorus|Sophivorus]], but feel free to fix what I placed. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 21:45, 22 July 2026 (UTC) == Breadcrumbs in the title == Hi! I think breadcrumbs would be more intuitive, compact and cleaner if they were integrated into the title rather than below it, like so: <gallery> Wikisource breadcrumbs proposal (before).png|Current breadcrumbs Wikisource breadcrumbs proposal (after).png|Proposed breadcrumbs </gallery> What do you think? [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 17 August 2026 (UTC) :I appreciate the effort, but I don't see a big difference or that one would be more usable than another. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:14, 17 August 2026 (UTC) :I like proposal and I think it would be an improvement. Having the breadcrumbs twice, as in the current system, creates a redundant ui element. I also think the formatting around the forward slashes in the "new" version better conveys that they have specific technical meaning and are not part of the name of the page. --[[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:52, 7 October 2026 (UTC) == Approve [[Wikibooks:CheckUser]] as a local policy? == Some of the text was based off of the global CheckUser policy, but in this case, should we approve [[Wikibooks:CheckUser]] as a local policy? There is a special clause allowing stewards to perform checks even during non-emergency situations (as set in [[Wikibooks:Global rights policy]]). I have yet to include a part where users may request CU checks. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 21:55, 13 September 2026 (UTC) :I'm somewhat just unsure on what the benefit of making this policy would be. Sure, there's strength in policy, of course. But this seems to be doing fine overall as an information page, no? It doesn't differ very much from the global CU policy, so I'm not sure that a page without any Wikibooks-specific information really benefits from policy status. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:22, 14 September 2026 (UTC) :I would {{support}} this. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:26, 20 September 2026 (UTC) == FlaggedRevs again == <div class="cd-moveMark">''Moved from [[Wikibooks:Reading room/General#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div> Hi all. I already know there were various topics over the years about this subject, but I was considering for the project on whether we should remove this extension from this project, and go back to using MediaWiki's page patrol system. Currently, there is a backlog of more than 3000 unreviewed edits (some going back as far as a few years ago); that’s why I started this discussion here. {{collapse top}} * <code>autoreview</code> and <code>editor</code> would be <code>autopatrolled</code> and <code>patroller</code>, respectively. * <code>wgUseNPPatrol</code> and <code>wgUseFilePatrol</code> would be re-enabled for English Wikibooks. * <code>autopatrol</code> and <code>patrol</code> would be re-assigned back to sysops and their respective user groups. * <code>patroller</code> would also have <code>rollback</code> and <code>suppressredirect</code> and its rate limit untouched. {{collapse bottom}} Best, [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:56, 30 September 2026 (UTC) :{{s}} the removal of FlaggedRevs. Inasmuch as the extension works at all, it works best when it is used selectively on projects like Wikipedia, for individual high-traffic pages with lots of watchers which are subject to vandalism or controversy. Wikibooks is not a good use case for this extension. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 15:51, 1 October 2026 (UTC) :{{s}} I don't see any way that backlog ever gets cleared, frankly, and if it isn't going to be cleared, we might as well go to something easier, which is the normal page patrol system, which works well off of [[Special:NewPages]] already. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:31, 3 October 2026 (UTC) :{{neutral}} - Wikibooks is not a good use case for this extension, and with 3000 unreviewed edits with no progress at all, it does make sense to remove it. On the other hand, there could be a WikiProject to review each of these edits. For this reason, I am voting neutral [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:41, 3 October 2026 (UTC) :: There was the outdated [[Wikibooks:New page patrol]] before this project used FlaggedRevs. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:22, 3 October 2026 (UTC) :{{support}} the removal of FlaggedRevs from Wikibooks. It's a redundant extension that's not useful in this wiki. --[[User:Agusbou2015|Agusbou2015]] ([[User talk:Agusbou2015|discuss]] • [[Special:Contributions/Agusbou2015|contribs]]) 21:53, 3 October 2026 (UTC) :{{Support}}. Several years ago I spent hundreds of hours trying to do the first review of every page. I managed to get all the root pages done but only got as far as "E" for the other pages. While I was doing this I stopped reviewing changes - and in that time over a 1,000 out of date pages were in the list. I concluded it was an impossible task unless lots of people joined in the work but that didn't happen and I doubt it ever will. I do think it has value for Wikijunior in showing the last reviewed page rather than the possibly offensively vandalised latest revision, but other than that it's a waste of time. At some point the extension will get fully deprecated and we'll be forced to stop using it anyway. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 09:53, 6 October 2026 (UTC) :Will <code>patroller</code> be granted automatically? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:24, 6 October 2026 (UTC) :: Unfortunately, no. Since we will stop using FlaggedRevs, the patroller user group will not be granted automatically and thus will have to be manually given out by administrators. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 6 October 2026 (UTC) :::@[[User:Codename Noreste|Codename Noreste]]: And are we planning on giving back the <code>patroller</code> right to existing reviewers? Or will they have to manually reapply? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:30, 8 October 2026 (UTC) :::: I have a plan: any former reviewer who has been active recently in the past two years will have patroller rights. This will be done to reduce a huge amount of inactive former reviewers. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:26, 8 October 2026 (UTC) ::::Keep the name the same; just remove the reviewer right. After all, patrolling is a form of reviewing. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 18:52, 8 October 2026 (UTC) ::::: Do we have to use the term {{tq|reviewing}} instead of {{tq|patrolling}}? [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:57, 8 October 2026 (UTC) :::{{ping|Codename Noreste}} Is there a reason that we should not simply give the reviewer group the <code>patrol</code> right, and keep the auto-granting going? [[Wikibooks:Reviewers#Automatic criteria]] does not appear to be FlaggedRevs-specific, so auto-promotion should still be able to continue even without FlaggedRevs, and reviewers could simply become patrollers (in the technical sense). [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 07:55, 10 October 2026 (UTC) :::: I believe that would require some additional code on InitialiseSettings.php, and as for <code>reviewer</code>, I'm not sure we should still use that user group term over <code>patroller</code> as per the point {{tq|Special groups on small wikis}} on [[m:Limits to configuration changes]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:58, 10 October 2026 (UTC) : If you take a look at the extended content, I also included what I also proposed too. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:19, 6 October 2026 (UTC) :{{comment}}. The [[mw:Extension:FlaggedRevs|FlaggedRevs extension]] is not recommended for production use, per Mediawiki. On this basis alone we should discontinue use of it. However, we haven't determined if page patrolling is the best replacement. There are [[mw:Content approval extensions|alternative extensions]] and the mediawiki page for FlaggedRevs specifically recommends [[mw:Extension:Approved Revs|'''Approved Revs extension''']]. We should determine which of page patrolling or these extensions is the most appropriate antivandalism tool first. (after all, according to [[Help:Tracking_changes#Reviewing_pages]], the purpose of FlaggedRevs is to be "our primary counter-vandalism tool"). --[[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:48, 7 October 2026 (UTC) :: Approved Revs would require significant testing and approval per [[mw:Writing an extension for deployment]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 16:35, 7 October 2026 (UTC) == Disable (some) page creation by temporary accounts == Creating a new book, or adding a chapter to an existing book, is a significant action, and users performing this action should be available to discuss it. Additionally, in practice, most page creations by temp accounts are out of scope, if not outright vandalism. (See https://en.wikibooks.org/w/index.php?title=Special:Log&type=create for some examples.) As such, I'd like to propose that the wiki require a registered account to create pages in any non-talk namespace. Temporary accounts will still be able to edit existing pages, or to create talk pages to start discussions. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 1 October 2026 (UTC) : From a technical point of view, this would require moving <code>createpage</code> from unregistered users (<code><nowiki>*</nowiki></code>) to registered users (<code>user</code>), but that would mean every non-registered user may not be able to create pages in every namespace, but talk pages. : Another solution would be to add [[mw:Extension:ArticleCreationWorkflow]] to this project, but we don't have a system to create drafts (or similar). : And a final solution would be to create an edit filter disallowing unregistered users from creating pages in mainspace. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:43, 1 October 2026 (UTC) :: Just to note, please read the first point of [[m:Limits to configuration changes#Changes that are likely to be declined]] (Disable non-autoconfirmed page creation). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:50, 1 October 2026 (UTC) :::What I'm proposing is that we require a registered account for page creation, not autoconfirmed. enwiki (as well as a few other wikis) already use this configuration - it's not new. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:58, 1 October 2026 (UTC) :::: Okay, but I provided some alternatives above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 20:06, 1 October 2026 (UTC) : In that case, I have no objections here. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:03, 6 October 2026 (UTC) :I would propose the use of autoconfirmed, to better patrol new pages that are being created. There are countless advertisement pages being created on Wikibooks, usually in the user's userpage. The use of a registered account proposed by Omphalographer therefore may have some limitations. I agree with the proposal to make new pages strictly autoconfirmed. If a user wishes to create a page, there could be a feature for reviewers/patrollers to check such pages that are being created. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:36, 9 October 2026 (UTC) :: You might want to read my point about limits to configuration changes. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:53, 9 October 2026 (UTC) :Why turn off potential good contributors by telling them they must register AND log-in in order to contribute? The problem at Wikibooks right now is the dearth of contributions, not vandalism, I think (?). :* Anons are already precluded from editing pages that have been "protected" by admins. :* Anon user contributions are automatically marked for Review before they become public :* There are less than 500 anon accounts that have contributed more than one edit to Wikibooks? :Is it really necessary to stop us from contributing to Wikibooks? [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 00:19, 10 October 2026 (UTC) :: {{ping|~2026-40500-29}} The initial question was not whether registered accounts can contribute, it is whether temporary accounts can create pages. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:48, 10 October 2026 (UTC) kcdsjfzcyaz622vwlpsjpqtc74vdwmg OpenSCAD User Manual/Using OpenSCAD in a command line environment 0 227473 4675502 4672213 2026-10-11T08:50:31Z ~2026-54602-53 3628139 /* Automation */ Presentation, fix newlines and orthograph 4675502 wikitext text/x-wiki === Command line usage === OpenSCAD can not only be used as a GUI, but also handles command line arguments. OpenSCAD (DEV/nightly) 2025.08.17 has these options <pre> Usage: openscad.exe [options] file.scad Allowed options: --export-format arg overrides format of exported scad file when using option '-o', arg can be any of its supported file extensions. For ascii stl export, specify 'asciistl', and for binary stl export, specify 'binstl'. Ascii export is the current stl default, but binary stl is planned as the future default so asciistl should be explicitly specified in scripts when needed. -o [ --o ] arg output specified file instead of running the GUI. The file extension specifies the type: stl, off, wrl, amf, 3mf, csg, dxf, svg, pdf, png, echo, ast, term, nef3, nefdbg, param, pov. May be used multiple times for different exports. Use '-' for stdout. -O [ --O ] arg pass settings value to the file export using the format section/key=value, e.g export-pdf/paper-size=a3. Use --help-export to list all available settings. -D [ --D ] arg var=val -pre-define variables -p [ --p ] arg customizer parameter file -P [ --P ] arg customizer parameter set --enable arg enable experimental features (specify 'all' for enabling all available features): roof | input-driver-dbus | lazy-union | vertex-object-renderers-indexing | textmetrics | import-function | predictible-output -h [ --help ] print this help message and exit --help-export print list of export parameters and values that can be set via -O -v [ --version ] print the version --info print information about the build process --camera arg camera parameters when exporting png: =translate_x,y,z,rot_x,y,z,dist or =eye_x,y,z,center_x,y,z --autocenter adjust camera to look at object's center --viewall adjust camera to fit object --backend arg 3D rendering backend to use: 'CGAL' (old/slow) [default] or 'Manifold' (new/fast) --imgsize arg =width,height of exported png --render arg for full geometry evaluation when exporting png --preview arg [=throwntogether] -for ThrownTogether preview png --animate arg export N animated frames --animate_sharding arg Parameter <shard>/<num_shards> - Divide work into <num_shards> and only output frames for <shard>. E.g. 2/5 only outputs the second 1/5 of frames. Use to parallelize work on multiple cores or machines. --view arg =view options: axes | crosshairs | edges | scales --projection arg =(o)rtho or (p)erspective when exporting png --csglimit arg =n -stop rendering at n CSG elements when exporting png --summary arg enable additional render summary and statistics: all | cache | time | camera | geometry | bounding-box | area --summary-file arg output summary information in JSON format to the given file, using '-' outputs to stdout --colorscheme arg =colorscheme: *Cornfield | Metallic | Sunset | Starnight | BeforeDawn | Nature | Daylight Gem | Nocturnal Gem | DeepOcean | Solarized | Tomorrow | Tomorrow Night | ClearSky | Monotone -d [ --d ] arg deps_file -generate a dependency file for make -m [ --m ] arg make_cmd -runs make_cmd file if file is missing -q [ --quiet ] quiet mode (don't print anything *except* errors) --hardwarnings Stop on the first warning --trace-depth arg =n, maximum number of trace messages --trace-usermodule-parameters arg =true/false, configure the output of user module parameters in a trace --check-parameters arg =true/false, configure the parameter check for user modules and functions --check-parameter-ranges arg =true/false, configure the parameter range check for builtin modules --debug arg special debug info - specify 'all' or a set of source file names -s [ --s ] arg stl_file deprecated, use -o -x [ --x ] arg dxf_file deprecated, use -o </pre> Export help <pre> OpenSCAD version 2025.08.17 List of settings that can be given using the -O option using the format '<section>/<key>=value', e.g.: openscad -O export-pdf/paper-size=a6 -O export-pdf/show-grid=false Section 'export-pdf': - paper-size (enum): [a6,a5,<a4>,a3,letter,legal,tabloid] - orientation (enum): [<portrait>,landscape,auto] - show-filename (bool): <true>/false - show-scale (bool): <true>/false - show-scale-message (bool): <true>/false - show-grid (bool): <true>/false - grid-size (double): 1.000000 : <10.000000> : 100.000000 - add-meta-data (bool): <true>/false - meta-data-title (string): "" - meta-data-author (string): "" - meta-data-subject (string): "" - meta-data-keywords (string): "" Section 'export-3mf': - color-mode (enum): [<model>,none,selected-only] - unit (enum): [micron,<millimeter>,centimeter,meter,inch,foot] - color (string): "#f9d72c" - material-type (enum): [color,<basematerial>] - decimal-precision (int): 1 : <6> : 16 - add-meta-data (bool): <true>/false - meta-data-title (string): "" - meta-data-designer (string): "" - meta-data-description (string): "" - meta-data-copyright (string): "" - meta-data-license-terms (string): "" - meta-data-rating (string): "" </pre> OpenSCAD 2021.01 has these options: Usage: openscad [options] file.scad Allowed options: --export-format arg overrides format of exported scad file when using option '-o', arg can be any of its supported file extensions. For ascii stl export, specify 'asciistl', and for binary stl export, specify 'binstl'. Ascii export is the current stl default, but binary stl is planned as the future default so asciistl should be explicitly specified in scripts when needed. -o [ --o ] arg output specified file instead of running the GUI, the file extension specifies the type: stl, off, wrl, amf, 3mf, csg, dxf, svg, pdf, png, echo, ast, term, nef3, nefdbg (May be used multiple time for different exports). Use '-' for stdout -D [ --D ] arg var=val -pre-define variables -p [ --p ] arg customizer parameter file -P [ --P ] arg customizer parameter set --enable arg enable experimental features (specify 'all' for enabling all available features): roof | input-driver-dbus | lazy-union | vertex-object-renderers | vertex-object-renderers-indexing | vertex-object-renderers-direct | vertex-object-renderers-prealloc | textmetrics -h [ --help ] print this help message and exit -v [ --version ] print the version --info print information about the build process --camera arg camera parameters when exporting png: =translate_x,y,z,rot_x,y,z,dist or =eye_x,y,z,center_x,y,z --autocenter adjust camera to look at object's center --viewall adjust camera to fit object --imgsize arg =width,height of exported png --render for full geometry evaluation when exporting png --preview arg [=throwntogether] -for ThrownTogether preview png --animate arg export N animated frames --view arg =view options: axes | crosshairs | edges | scales | wireframe --projection arg =(o)rtho or (p)erspective when exporting png --csglimit arg =n -stop rendering at n CSG elements when exporting png --summary arg enable additional render summary and statistics: all | cache | time | camera | geometry | bounding-box | area --summary-file arg output summary information in JSON format to the given file, using '-' outputs to stdout --colorscheme arg =colorscheme: *Cornfield | Metallic | Sunset | Starnight | BeforeDawn | Nature | DeepOcean | Solarized | Tomorrow | Tomorrow Night | Monotone -d [ --d ] arg deps_file -generate a dependency file for make -m [ --m ] arg make_cmd -runs make_cmd file if file is missing -q [ --quiet ] quiet mode (don't print anything *except* errors) --hardwarnings Stop on the first warning --check-parameters arg =true/false, configure the parameter check for user modules and functions --check-parameter-ranges arg =true/false, configure the parameter range check for builtin modules --debug arg special debug info - specify 'all' or a set of source file names === Export options === When called with the <code>-o</code> option, OpenSCAD does not start the GUI, but executes the given file and exports to the <i>output_file</i> in a format depending on the extension (<code>.stl</code> / <code>.off</code> / <code>.dxf</code>, <code>.csg</code>). Some versions use -s/-d/-o to determine the output file format instead; check with "openscad --help". If the option <code>-d</code> is given in addition to an export command, all files accessed while building the mesh are written in the argument of <code>-d</code> in the syntax of a Makefile. For at least 2015.03-2+, specifying the extension <code>.echo</code> causes openscad to produce a text file containing error messages and the output of all <code>echo()</code> calls in <code>filename</code> as they would appear in the console window visible in the GUI. Multiple output files are not supported, so using this option you cannot also obtain the model that would have normally been generated. Note: When exporting to STL, the GUI defaults to binary STL (smaller, faster) and the CLI defaults to ASCII STL (larger, slower). Post-processing pipelines may prefer ASCII STL; they should explicitly say `--export-format asciistl` in preparation for the default eventually changing to binary STL. ==== Camera and image output ==== For 2013.05+, the option to output a <code>.png</code> image was added. There are two types of cameras available for the generation of images. The first camera type is a 'gimbal' camera that uses Euler angles, translation, and a camera distance, like OpenSCAD's GUI viewport display at the bottom of the OpenSCAD window. The second camera type is a 'vector' camera, with an 'eye' camera location vector and a 'lookat' center vector. --imgsize x,y chooses the .png dimensions and --projection chooses orthogonal or perspective, as in the GUI. By default, cmdline .png output uses Preview mode (f5) with OpenCSG. For some situations it may be desirable to output the full render, with CGAL. This is done by adding '--render' as an option. === Constants === In order to pre-define variables, use the <code>-D</code> option. It can be given repeatedly. Each occurrence of <code>-D</code> must be followed by an assignment. Unlike normal OpenSCAD assignments, these assignments don't define variables, but constants, which cannot be changed inside the program, and can thus be used to overwrite values defined in the program at export time. If you want to assign the -D variable to another variable, the -D variable MUST be initialized in the main .scad program param1=17; // must be initialized val=param1; // param1 passed via -D on cmd-line echo(val,param1); // outputs 17,17 without the first line, val would be undefined. The right hand sides can be arbitrary OpenSCAD expressions, including mathematical operations and strings. Be aware that your shell (bash, cmd, etc.) parses the arguments before passing them to <code>openscad</code>, therefore you need to properly quote or escape arguments with special characters like spaces or quotation marks. For example to assign a string <code>production</code> to a <code>quality</code> parameter one has to ensure the <code>"</code> characters OpenSCAD expects aren't stripped by the shell. In bash one could write: openscad -o my_model_production.stl -D 'quality="production"' my_model.scad or from the Windows prompt: openscad.com -o my_model_production.stl -D "quality=""production""" my_model.scad or you may need to escape the inner quotes instead: openscad -o my_model_production.stl -D "quality=\"production\"" my_model.scad Note that this sort of double-escaping isn't necessary when executing OpenSCAD from another process that isn't using a shell, because each argument is passed separately. For example a Java application might start a process like so: pb = new ProcessBuilder("/usr/bin/openscad", "-o", "my_model_production.stl", "-D", "quality=\"production\"", "my_model.scad"); // 12-Pole Fuse Box with Cover (EV Application) // ================= PARAMETERS ================= length = 100; width = 40; height = 35; wall = 2.5; fuse_w = 4.2; fuse_l = 12; fuse_h = 12; x_pitch = 8.5; y_pitch = 14; cover_height = 5; // ================= MAIN HOUSING ================= difference() { cube([length, width, height]); // Hollow inside translate([wall, wall, wall]) cube([length-2*wall, width-2*wall, height]); // Fuse slots (2 rows x 6 columns) for (row = [0:1]) { for (col = [0:5]) { x = 10 + col * x_pitch; y = 10 + row * y_pitch; translate([x, y, 5]) cube([fuse_w, fuse_l, fuse_h]); } } } // ================= COVER ================= translate([0, 0, height]) cube([length, width, cover_height]); // ================= MOUNTING HOLES ================= for (x = [10, length-10]) { translate([x, width/2, 0]) cylinder(h=height, d=5, center=false); } === Processing all .scad files in a folder === Example to convert all the .scad in a folder into .stl: In a folder with .scad files, make a .bat file with text: FOR %%f in (*.scad) DO openscad -o "%%~nf.stl" "%%f" If it closes without processing, check to set the PATH by adding openscad directory to: Start - Settings - Control Panel - System - Advanced tab - Environment Variables - System Variables, select Path, then click Edit. Add the openscad directory to the list === Makefile example === The <code>-d</code> and <code>-m</code> options only make sense together. (<code>-m</code> without <code>-d</code> would not consider modified dependencies when building exports, <code>-d</code> without <code>-m</code> would require the files to be already built for the first run that generates the dependencies.) Here is an example of a basic Makefile that creates an .stl file from an .scad file of the same name: # explicit wildcard expansion suppresses errors when no files are found include $(wildcard *.deps) %.stl: %.scad openscad -m make -o $@ -d $@.deps $< When <code>make my_example.stl</code> is run for the first time, it finds no .deps files, and must depend on <code>my_example.scad</code>. Because <code>my_example.stl</code> is not yet present, it gets created unconditionally. If OpenSCAD finds missing files, it calls <code>make</code> to build them, and it lists all used files in <code>my_example.stl.deps</code>. When <code>make my_example.stl</code> is called subsequently, it finds and includes <code>my_example.stl.deps</code> and check if any of the files listed there, including <code>my_example.scad</code>, changed since <code>my_example.stl</code> was built, based on their time stamps. Only if that is the case, it builds <code>my_example.stl</code> again. ==== Automatic targets ==== When building similar .stl files from a single .scad file, there is a way to automate that too: # match "module foobar() { // `make` me" TARGETS=$(shell sed '/^module [a-z0-9_-]*().*make..\?me.*$$/!d;s/module //;s/().*/.stl/' base.scad) all: ${TARGETS} # auto-generated .scad files with .deps make make re-build always. keeping the # scad files solves this problem. ([[Talk:OpenSCAD User Manual/Using OpenSCAD in a command line environment|explanations are welcome]].) .SECONDARY: $(shell echo "${TARGETS}" | sed 's/\.stl/.scad/g') # explicit wildcard expansion suppresses errors when no files are found include $(wildcard *.deps) %.scad: echo -ne 'use <base.scad>\n$*();' > $@ %.stl: %.scad openscad -m make -o $@ -d $@.deps $< All objects that are supposed to be exported automatically have to be defined in <code>base.scad</code> in an own module with their future file name (without the ".stl"), and have a comment like "<code>// make me</code>" in the line of the module definition. The "<code>TARGETS=</code>" line picks these out of the base file and creates the file names. These are built when <code>make all</code> (or <code>make</code>, for short) is called. As the convention from the last example is to create the .stl files from .scad files of the same base name, for each of these files, an .scad file must be generated. This is done in the "<code>%.scad:</code>" paragraph; <code>my_example.scad</code> is a simple OpenSCAD file: use <base.scad> my_example(); The "<code>.SECONDARY</code>" line is there to keep <code>make</code> from deleting the generated .scad files. Its presence helps determine which files no longer need to be rebuilt; please post ideas about what exactly goes wrong there (or how to fix it better) on the [[Talk:OpenSCAD User Manual/Using OpenSCAD in a command line environment|talk]] page! === Windows notes === On Windows, openscad.com should be called from the command line as a wrapper for openscad.exe. This is because Openscad uses the 'devenv' solution to the Command-Line/GUI output issue. Typing 'openscad' at the cmd.exe prompt calls the .com program wrapper by default. === MacOS notes === On MacOS the binary is normally hidden inside the App folder. If OpenSCAD is installed in the global Applications folder, it can be called from command line like in the following example that just shows the OpenSCAD version: macbook:/$ /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD -v OpenSCAD version 2013.06 Alternatively, you may create a symbolic link to the binary to make calls from the command line easier: macbook:/$ sudo ln -sf /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD /usr/local/bin/openscad Now you can call <code>openscad</code> directly without having to type in the full path. macbook:/$ openscad -v OpenSCAD version 2015.03-3 On some versions of MacOS, you might get the following error when attempting to run openscad via that link: This application failed to start because it could not find or load the Qt platform plugin "cocoa". Reinstalling the application may fix this problem. Abort trap: 6 You can fix this by creating a wrapper script to invoke the executable directly: sudo rm -f /usr/local/bin/openscad echo '#!/bin/sh' > test echo '/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD "$@"' >> test chmod +x test ; sudo mv test /usr/local/bin/openscad == Automation == There are many solutions to automate Openscad operation, the following examples use Microsoft Powershell which is available either on Windows, on Linux (in deb and snap packages) or on MacOS. Such script file shall be written on a text editor, much preferably a code editor with syntax coloring for powershell (e.g. VS code, Sublime text). Note that while powershell script may be started directly from file browser in Linux, for debugging you may want to start script from a terminal window in order to see messages from script or OpenScad. First you shall define the program call for your system and set it in a variable, adjust according your system On Windows this may depends from your system disk, could be simpler if your environment variable are well set: <pre>$scad = "c:`"/Program Files/OpenSCAD/openscad.exe`""</pre> On Linux simply: <pre>$scad = "openscad" </pre> On MacOS this may be: <pre>$scad = "/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD"</pre> If you want to be capable to use a variation of openscad, say the nightly version, set the openscad version you want. <pre>$scad = "openscad-nightly"</pre> === Outputting different parts of a model === The first automation that you may want is to output automatically many parts from the same scad file. You can use a variable ‘part’ to select the part to output. code of 'mymodel.scad' might be: <pre> part = 0; // [0:Ensemble, 1:Part 1, 2:Part 2, 3:Part 3] ... if (part==1) { ... } else if (part==2) { ... } else if (part==3) { ... } </pre> and the automation file ‘mybatch.ps1’ will be: <pre> #!/usr/bin/env pwsh # Above 'shebang' line required on Linux for automatic execution of powershell from a direct launch on file browser. 'mybatch.ps1' file attributes shall be made executable first. #Powershell part batch generator $arglist = "-o mymodelpart1.stl -D part=1 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow $arglist = "-o mymodelpart2.stl -D part=2 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow $arglist = "-o mymodelpart2.stl -D part=3 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow </pre> -Wait parameter impose the task to be finished before continuing the script -NoNewWindow will execute the script in the existing window without starting a new one Note there is no space around the '=' sign for parameters You may want to change any other parameter than 'part' at will, including or not a part number, in this case the argument list might be: <pre> $arglist = "-o somepart.stl -D myvar1=value1 -D myvar2=value2 mymodel.scad" </pre> Note that if the value is a string, double quotes shall be escaped by a bactick ` -D myvals=`"myparam`" for them not to be interpreted as the $arglist string end or start. You may also define a string by setting it between simple quotes but that prevent you to use variables which will be interpreted when running command. So the execution line became: Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow === BOM or datasheet exportation === Another frequent request is to export a BOM or a specification This could be done by adapting your program to echo the stuff you want, by example: <pre> echoout = 0; //0 is normal screen echo, 1 will be BOM, 2 will be data Specification if (echoout==0) { echo("Normal echo"); } ... if (echoout==1) { echo("Part 1 : description1"); echo("Part 2 : description2"); echo("Part 3 : description3 dimensions:", part3dim1,"x",part3dim2); } ... if (echoout==2) { echo(str("First parameter =", var1)); echo(str("Second parameter =", var2)); echo(str("Third parameter =", var3)); } </pre> Writing your own echo module may help. then to obtain an output, your argument list may became: <pre>$arglist = "-o mymodel_BOM.txt -D echoout=1 --export-format echo mymodel.scad"</pre> and <pre>$arglist = "-o mymodel_data.txt -D echoout=2 --export-format echo mymodel.scad"</pre> However, the outputted text will have 'ECHO:' written at the beginning of each line and text will be set between ", that you want to remove with following commands: <pre> $fc = Get-Content .\mymodel_BOM.txt #get whole file in $fc variable if($fc) { #check if the file have any content $fc = $fc -replace 'ECHO: ', '' #remove 'ECHO: ' text $fc = $fc -replace '"' , '' #remove '"' char - this is optional $fc > .\mymodel_BOM.txt #send variable content to the file which will be overwritten } </pre> === Using datasets === An interesting option is to use Customizer datasets, however Customizer datasets variable values supersedes any values than you try to define in the command line: The solution is to rename the parameter you need to modify and copy it to a variable that the command line will then be capable to change. In your scad you may find: <pre> cpart = 0; // [0:ensemble, 1:Part 1, 2:Part 2, 3:Part 3] //This variable will be recorded in the dataset, so not modifiable part=cpart; // 'part' variable can be manipulated by the command line //Argument list for all your runs could then be: $arglist = "-o mymodeldataset1part1.stl -D part=1 -p mymodel.json -P dataset1 mymodel.scad" $arglist = "-o mymodeldataset1part2.stl -D part=2 -p mymodel.json -P dataset1 mymodel.scad" $arglist = "-o mymodeldataset2part1.stl -D part=1 -p mymodel.json -P dataset2 mymodel.scad" $arglist = "-o mymodeldataset2part2.stl -D part=2 -p mymodel.json -P dataset2 mymodel.scad" </pre> Do the same for any parameter that you want to manipulate in the command Line when using datasets: <pre> //This is parameter1 cvar1 = value1; var1 = cvar1; //This is parameter 2 cvar2 = value2; var2 = cvar2; </pre> === Browsing datasets === A step further might be to automate the dataset browsing. You shall read the json file which contains all datasets: A regular expression can then filter dataset names: <pre> $regex='\"(?!parameterSets)([^\"]+)\"\:\s\{' # This regex extract anything between "" followed by ': {' excluding 'parameterSets' $jfile = "./mymodel.json #directory localisation required by powershell foreach($line in Get-Content $jfile) { # read json file Line by Line if($line -match $regex) { # We found a dataset name $dataset = $Matches.1 # dataset is the part captured by the regex parenthesis, will also be used in the part name Write-Output "Dataset: $dataset" #Output to console debugging info $datasetname = $dataset -replace ' ' , '_' #replace space by underscore #Dataset name containing often space character shall be set between double quotes #We may use simple quotes to define strings containing double quotes around dataset name $arglist = "-o + mymodel" + $datasetname + '.stl -p mymodel.json -P "' + $dataset + '" mymodel.scad' Write-Output "Argument list: $arglist" #Output to console debugging info Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow } } </pre> {{BookCat}} ku3ofquxaz3fbepmy04gprsmk5lzsx4 4675503 4675502 2026-10-11T08:52:23Z ~2026-54602-53 3628139 /* Outputting different parts of a model */ Presentation 4675503 wikitext text/x-wiki === Command line usage === OpenSCAD can not only be used as a GUI, but also handles command line arguments. OpenSCAD (DEV/nightly) 2025.08.17 has these options <pre> Usage: openscad.exe [options] file.scad Allowed options: --export-format arg overrides format of exported scad file when using option '-o', arg can be any of its supported file extensions. For ascii stl export, specify 'asciistl', and for binary stl export, specify 'binstl'. Ascii export is the current stl default, but binary stl is planned as the future default so asciistl should be explicitly specified in scripts when needed. -o [ --o ] arg output specified file instead of running the GUI. The file extension specifies the type: stl, off, wrl, amf, 3mf, csg, dxf, svg, pdf, png, echo, ast, term, nef3, nefdbg, param, pov. May be used multiple times for different exports. Use '-' for stdout. -O [ --O ] arg pass settings value to the file export using the format section/key=value, e.g export-pdf/paper-size=a3. Use --help-export to list all available settings. -D [ --D ] arg var=val -pre-define variables -p [ --p ] arg customizer parameter file -P [ --P ] arg customizer parameter set --enable arg enable experimental features (specify 'all' for enabling all available features): roof | input-driver-dbus | lazy-union | vertex-object-renderers-indexing | textmetrics | import-function | predictible-output -h [ --help ] print this help message and exit --help-export print list of export parameters and values that can be set via -O -v [ --version ] print the version --info print information about the build process --camera arg camera parameters when exporting png: =translate_x,y,z,rot_x,y,z,dist or =eye_x,y,z,center_x,y,z --autocenter adjust camera to look at object's center --viewall adjust camera to fit object --backend arg 3D rendering backend to use: 'CGAL' (old/slow) [default] or 'Manifold' (new/fast) --imgsize arg =width,height of exported png --render arg for full geometry evaluation when exporting png --preview arg [=throwntogether] -for ThrownTogether preview png --animate arg export N animated frames --animate_sharding arg Parameter <shard>/<num_shards> - Divide work into <num_shards> and only output frames for <shard>. E.g. 2/5 only outputs the second 1/5 of frames. Use to parallelize work on multiple cores or machines. --view arg =view options: axes | crosshairs | edges | scales --projection arg =(o)rtho or (p)erspective when exporting png --csglimit arg =n -stop rendering at n CSG elements when exporting png --summary arg enable additional render summary and statistics: all | cache | time | camera | geometry | bounding-box | area --summary-file arg output summary information in JSON format to the given file, using '-' outputs to stdout --colorscheme arg =colorscheme: *Cornfield | Metallic | Sunset | Starnight | BeforeDawn | Nature | Daylight Gem | Nocturnal Gem | DeepOcean | Solarized | Tomorrow | Tomorrow Night | ClearSky | Monotone -d [ --d ] arg deps_file -generate a dependency file for make -m [ --m ] arg make_cmd -runs make_cmd file if file is missing -q [ --quiet ] quiet mode (don't print anything *except* errors) --hardwarnings Stop on the first warning --trace-depth arg =n, maximum number of trace messages --trace-usermodule-parameters arg =true/false, configure the output of user module parameters in a trace --check-parameters arg =true/false, configure the parameter check for user modules and functions --check-parameter-ranges arg =true/false, configure the parameter range check for builtin modules --debug arg special debug info - specify 'all' or a set of source file names -s [ --s ] arg stl_file deprecated, use -o -x [ --x ] arg dxf_file deprecated, use -o </pre> Export help <pre> OpenSCAD version 2025.08.17 List of settings that can be given using the -O option using the format '<section>/<key>=value', e.g.: openscad -O export-pdf/paper-size=a6 -O export-pdf/show-grid=false Section 'export-pdf': - paper-size (enum): [a6,a5,<a4>,a3,letter,legal,tabloid] - orientation (enum): [<portrait>,landscape,auto] - show-filename (bool): <true>/false - show-scale (bool): <true>/false - show-scale-message (bool): <true>/false - show-grid (bool): <true>/false - grid-size (double): 1.000000 : <10.000000> : 100.000000 - add-meta-data (bool): <true>/false - meta-data-title (string): "" - meta-data-author (string): "" - meta-data-subject (string): "" - meta-data-keywords (string): "" Section 'export-3mf': - color-mode (enum): [<model>,none,selected-only] - unit (enum): [micron,<millimeter>,centimeter,meter,inch,foot] - color (string): "#f9d72c" - material-type (enum): [color,<basematerial>] - decimal-precision (int): 1 : <6> : 16 - add-meta-data (bool): <true>/false - meta-data-title (string): "" - meta-data-designer (string): "" - meta-data-description (string): "" - meta-data-copyright (string): "" - meta-data-license-terms (string): "" - meta-data-rating (string): "" </pre> OpenSCAD 2021.01 has these options: Usage: openscad [options] file.scad Allowed options: --export-format arg overrides format of exported scad file when using option '-o', arg can be any of its supported file extensions. For ascii stl export, specify 'asciistl', and for binary stl export, specify 'binstl'. Ascii export is the current stl default, but binary stl is planned as the future default so asciistl should be explicitly specified in scripts when needed. -o [ --o ] arg output specified file instead of running the GUI, the file extension specifies the type: stl, off, wrl, amf, 3mf, csg, dxf, svg, pdf, png, echo, ast, term, nef3, nefdbg (May be used multiple time for different exports). Use '-' for stdout -D [ --D ] arg var=val -pre-define variables -p [ --p ] arg customizer parameter file -P [ --P ] arg customizer parameter set --enable arg enable experimental features (specify 'all' for enabling all available features): roof | input-driver-dbus | lazy-union | vertex-object-renderers | vertex-object-renderers-indexing | vertex-object-renderers-direct | vertex-object-renderers-prealloc | textmetrics -h [ --help ] print this help message and exit -v [ --version ] print the version --info print information about the build process --camera arg camera parameters when exporting png: =translate_x,y,z,rot_x,y,z,dist or =eye_x,y,z,center_x,y,z --autocenter adjust camera to look at object's center --viewall adjust camera to fit object --imgsize arg =width,height of exported png --render for full geometry evaluation when exporting png --preview arg [=throwntogether] -for ThrownTogether preview png --animate arg export N animated frames --view arg =view options: axes | crosshairs | edges | scales | wireframe --projection arg =(o)rtho or (p)erspective when exporting png --csglimit arg =n -stop rendering at n CSG elements when exporting png --summary arg enable additional render summary and statistics: all | cache | time | camera | geometry | bounding-box | area --summary-file arg output summary information in JSON format to the given file, using '-' outputs to stdout --colorscheme arg =colorscheme: *Cornfield | Metallic | Sunset | Starnight | BeforeDawn | Nature | DeepOcean | Solarized | Tomorrow | Tomorrow Night | Monotone -d [ --d ] arg deps_file -generate a dependency file for make -m [ --m ] arg make_cmd -runs make_cmd file if file is missing -q [ --quiet ] quiet mode (don't print anything *except* errors) --hardwarnings Stop on the first warning --check-parameters arg =true/false, configure the parameter check for user modules and functions --check-parameter-ranges arg =true/false, configure the parameter range check for builtin modules --debug arg special debug info - specify 'all' or a set of source file names === Export options === When called with the <code>-o</code> option, OpenSCAD does not start the GUI, but executes the given file and exports to the <i>output_file</i> in a format depending on the extension (<code>.stl</code> / <code>.off</code> / <code>.dxf</code>, <code>.csg</code>). Some versions use -s/-d/-o to determine the output file format instead; check with "openscad --help". If the option <code>-d</code> is given in addition to an export command, all files accessed while building the mesh are written in the argument of <code>-d</code> in the syntax of a Makefile. For at least 2015.03-2+, specifying the extension <code>.echo</code> causes openscad to produce a text file containing error messages and the output of all <code>echo()</code> calls in <code>filename</code> as they would appear in the console window visible in the GUI. Multiple output files are not supported, so using this option you cannot also obtain the model that would have normally been generated. Note: When exporting to STL, the GUI defaults to binary STL (smaller, faster) and the CLI defaults to ASCII STL (larger, slower). Post-processing pipelines may prefer ASCII STL; they should explicitly say `--export-format asciistl` in preparation for the default eventually changing to binary STL. ==== Camera and image output ==== For 2013.05+, the option to output a <code>.png</code> image was added. There are two types of cameras available for the generation of images. The first camera type is a 'gimbal' camera that uses Euler angles, translation, and a camera distance, like OpenSCAD's GUI viewport display at the bottom of the OpenSCAD window. The second camera type is a 'vector' camera, with an 'eye' camera location vector and a 'lookat' center vector. --imgsize x,y chooses the .png dimensions and --projection chooses orthogonal or perspective, as in the GUI. By default, cmdline .png output uses Preview mode (f5) with OpenCSG. For some situations it may be desirable to output the full render, with CGAL. This is done by adding '--render' as an option. === Constants === In order to pre-define variables, use the <code>-D</code> option. It can be given repeatedly. Each occurrence of <code>-D</code> must be followed by an assignment. Unlike normal OpenSCAD assignments, these assignments don't define variables, but constants, which cannot be changed inside the program, and can thus be used to overwrite values defined in the program at export time. If you want to assign the -D variable to another variable, the -D variable MUST be initialized in the main .scad program param1=17; // must be initialized val=param1; // param1 passed via -D on cmd-line echo(val,param1); // outputs 17,17 without the first line, val would be undefined. The right hand sides can be arbitrary OpenSCAD expressions, including mathematical operations and strings. Be aware that your shell (bash, cmd, etc.) parses the arguments before passing them to <code>openscad</code>, therefore you need to properly quote or escape arguments with special characters like spaces or quotation marks. For example to assign a string <code>production</code> to a <code>quality</code> parameter one has to ensure the <code>"</code> characters OpenSCAD expects aren't stripped by the shell. In bash one could write: openscad -o my_model_production.stl -D 'quality="production"' my_model.scad or from the Windows prompt: openscad.com -o my_model_production.stl -D "quality=""production""" my_model.scad or you may need to escape the inner quotes instead: openscad -o my_model_production.stl -D "quality=\"production\"" my_model.scad Note that this sort of double-escaping isn't necessary when executing OpenSCAD from another process that isn't using a shell, because each argument is passed separately. For example a Java application might start a process like so: pb = new ProcessBuilder("/usr/bin/openscad", "-o", "my_model_production.stl", "-D", "quality=\"production\"", "my_model.scad"); // 12-Pole Fuse Box with Cover (EV Application) // ================= PARAMETERS ================= length = 100; width = 40; height = 35; wall = 2.5; fuse_w = 4.2; fuse_l = 12; fuse_h = 12; x_pitch = 8.5; y_pitch = 14; cover_height = 5; // ================= MAIN HOUSING ================= difference() { cube([length, width, height]); // Hollow inside translate([wall, wall, wall]) cube([length-2*wall, width-2*wall, height]); // Fuse slots (2 rows x 6 columns) for (row = [0:1]) { for (col = [0:5]) { x = 10 + col * x_pitch; y = 10 + row * y_pitch; translate([x, y, 5]) cube([fuse_w, fuse_l, fuse_h]); } } } // ================= COVER ================= translate([0, 0, height]) cube([length, width, cover_height]); // ================= MOUNTING HOLES ================= for (x = [10, length-10]) { translate([x, width/2, 0]) cylinder(h=height, d=5, center=false); } === Processing all .scad files in a folder === Example to convert all the .scad in a folder into .stl: In a folder with .scad files, make a .bat file with text: FOR %%f in (*.scad) DO openscad -o "%%~nf.stl" "%%f" If it closes without processing, check to set the PATH by adding openscad directory to: Start - Settings - Control Panel - System - Advanced tab - Environment Variables - System Variables, select Path, then click Edit. Add the openscad directory to the list === Makefile example === The <code>-d</code> and <code>-m</code> options only make sense together. (<code>-m</code> without <code>-d</code> would not consider modified dependencies when building exports, <code>-d</code> without <code>-m</code> would require the files to be already built for the first run that generates the dependencies.) Here is an example of a basic Makefile that creates an .stl file from an .scad file of the same name: # explicit wildcard expansion suppresses errors when no files are found include $(wildcard *.deps) %.stl: %.scad openscad -m make -o $@ -d $@.deps $< When <code>make my_example.stl</code> is run for the first time, it finds no .deps files, and must depend on <code>my_example.scad</code>. Because <code>my_example.stl</code> is not yet present, it gets created unconditionally. If OpenSCAD finds missing files, it calls <code>make</code> to build them, and it lists all used files in <code>my_example.stl.deps</code>. When <code>make my_example.stl</code> is called subsequently, it finds and includes <code>my_example.stl.deps</code> and check if any of the files listed there, including <code>my_example.scad</code>, changed since <code>my_example.stl</code> was built, based on their time stamps. Only if that is the case, it builds <code>my_example.stl</code> again. ==== Automatic targets ==== When building similar .stl files from a single .scad file, there is a way to automate that too: # match "module foobar() { // `make` me" TARGETS=$(shell sed '/^module [a-z0-9_-]*().*make..\?me.*$$/!d;s/module //;s/().*/.stl/' base.scad) all: ${TARGETS} # auto-generated .scad files with .deps make make re-build always. keeping the # scad files solves this problem. ([[Talk:OpenSCAD User Manual/Using OpenSCAD in a command line environment|explanations are welcome]].) .SECONDARY: $(shell echo "${TARGETS}" | sed 's/\.stl/.scad/g') # explicit wildcard expansion suppresses errors when no files are found include $(wildcard *.deps) %.scad: echo -ne 'use <base.scad>\n$*();' > $@ %.stl: %.scad openscad -m make -o $@ -d $@.deps $< All objects that are supposed to be exported automatically have to be defined in <code>base.scad</code> in an own module with their future file name (without the ".stl"), and have a comment like "<code>// make me</code>" in the line of the module definition. The "<code>TARGETS=</code>" line picks these out of the base file and creates the file names. These are built when <code>make all</code> (or <code>make</code>, for short) is called. As the convention from the last example is to create the .stl files from .scad files of the same base name, for each of these files, an .scad file must be generated. This is done in the "<code>%.scad:</code>" paragraph; <code>my_example.scad</code> is a simple OpenSCAD file: use <base.scad> my_example(); The "<code>.SECONDARY</code>" line is there to keep <code>make</code> from deleting the generated .scad files. Its presence helps determine which files no longer need to be rebuilt; please post ideas about what exactly goes wrong there (or how to fix it better) on the [[Talk:OpenSCAD User Manual/Using OpenSCAD in a command line environment|talk]] page! === Windows notes === On Windows, openscad.com should be called from the command line as a wrapper for openscad.exe. This is because Openscad uses the 'devenv' solution to the Command-Line/GUI output issue. Typing 'openscad' at the cmd.exe prompt calls the .com program wrapper by default. === MacOS notes === On MacOS the binary is normally hidden inside the App folder. If OpenSCAD is installed in the global Applications folder, it can be called from command line like in the following example that just shows the OpenSCAD version: macbook:/$ /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD -v OpenSCAD version 2013.06 Alternatively, you may create a symbolic link to the binary to make calls from the command line easier: macbook:/$ sudo ln -sf /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD /usr/local/bin/openscad Now you can call <code>openscad</code> directly without having to type in the full path. macbook:/$ openscad -v OpenSCAD version 2015.03-3 On some versions of MacOS, you might get the following error when attempting to run openscad via that link: This application failed to start because it could not find or load the Qt platform plugin "cocoa". Reinstalling the application may fix this problem. Abort trap: 6 You can fix this by creating a wrapper script to invoke the executable directly: sudo rm -f /usr/local/bin/openscad echo '#!/bin/sh' > test echo '/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD "$@"' >> test chmod +x test ; sudo mv test /usr/local/bin/openscad == Automation == There are many solutions to automate Openscad operation, the following examples use Microsoft Powershell which is available either on Windows, on Linux (in deb and snap packages) or on MacOS. Such script file shall be written on a text editor, much preferably a code editor with syntax coloring for powershell (e.g. VS code, Sublime text). Note that while powershell script may be started directly from file browser in Linux, for debugging you may want to start script from a terminal window in order to see messages from script or OpenScad. First you shall define the program call for your system and set it in a variable, adjust according your system On Windows this may depends from your system disk, could be simpler if your environment variable are well set: <pre>$scad = "c:`"/Program Files/OpenSCAD/openscad.exe`""</pre> On Linux simply: <pre>$scad = "openscad" </pre> On MacOS this may be: <pre>$scad = "/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD"</pre> If you want to be capable to use a variation of openscad, say the nightly version, set the openscad version you want. <pre>$scad = "openscad-nightly"</pre> === Outputting different parts of a model === The first automation that you may want is to output automatically many parts from the same scad file. You can use a variable ‘part’ to select the part to output. code of 'mymodel.scad' might be: <pre> part = 0; // [0:Ensemble, 1:Part 1, 2:Part 2, 3:Part 3] ... if (part==1) { ... } else if (part==2) { ... } else if (part==3) { ... } </pre> and the automation file ‘mybatch.ps1’ will be: <pre> #!/usr/bin/env pwsh # Above 'shebang' line required on Linux for automatic execution of powershell from a direct launch on file browser. 'mybatch.ps1' file attributes shall be made executable first. #Powershell part batch generator $arglist = "-o mymodelpart1.stl -D part=1 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow $arglist = "-o mymodelpart2.stl -D part=2 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow $arglist = "-o mymodelpart2.stl -D part=3 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow </pre> -Wait parameter impose the task to be finished before continuing the script -NoNewWindow will execute the script in the existing window without starting a new one Note there is no space around the '=' sign for parameters You may want to change any other parameter than 'part' at will, including or not a part number, in this case the argument list might be: <pre> $arglist = "-o somepart.stl -D myvar1=value1 -D myvar2=value2 mymodel.scad" </pre> Note that if the value is a string, double quotes shall be escaped by a bactick ` -D myvals=`"myparam`" for them not to be interpreted as the $arglist string end or start. You may also define a string by setting it between simple quotes but that prevent you to use variables which will be interpreted when running command. So the execution line became: <pre> Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow </pre> === BOM or datasheet exportation === Another frequent request is to export a BOM or a specification This could be done by adapting your program to echo the stuff you want, by example: <pre> echoout = 0; //0 is normal screen echo, 1 will be BOM, 2 will be data Specification if (echoout==0) { echo("Normal echo"); } ... if (echoout==1) { echo("Part 1 : description1"); echo("Part 2 : description2"); echo("Part 3 : description3 dimensions:", part3dim1,"x",part3dim2); } ... if (echoout==2) { echo(str("First parameter =", var1)); echo(str("Second parameter =", var2)); echo(str("Third parameter =", var3)); } </pre> Writing your own echo module may help. then to obtain an output, your argument list may became: <pre>$arglist = "-o mymodel_BOM.txt -D echoout=1 --export-format echo mymodel.scad"</pre> and <pre>$arglist = "-o mymodel_data.txt -D echoout=2 --export-format echo mymodel.scad"</pre> However, the outputted text will have 'ECHO:' written at the beginning of each line and text will be set between ", that you want to remove with following commands: <pre> $fc = Get-Content .\mymodel_BOM.txt #get whole file in $fc variable if($fc) { #check if the file have any content $fc = $fc -replace 'ECHO: ', '' #remove 'ECHO: ' text $fc = $fc -replace '"' , '' #remove '"' char - this is optional $fc > .\mymodel_BOM.txt #send variable content to the file which will be overwritten } </pre> === Using datasets === An interesting option is to use Customizer datasets, however Customizer datasets variable values supersedes any values than you try to define in the command line: The solution is to rename the parameter you need to modify and copy it to a variable that the command line will then be capable to change. In your scad you may find: <pre> cpart = 0; // [0:ensemble, 1:Part 1, 2:Part 2, 3:Part 3] //This variable will be recorded in the dataset, so not modifiable part=cpart; // 'part' variable can be manipulated by the command line //Argument list for all your runs could then be: $arglist = "-o mymodeldataset1part1.stl -D part=1 -p mymodel.json -P dataset1 mymodel.scad" $arglist = "-o mymodeldataset1part2.stl -D part=2 -p mymodel.json -P dataset1 mymodel.scad" $arglist = "-o mymodeldataset2part1.stl -D part=1 -p mymodel.json -P dataset2 mymodel.scad" $arglist = "-o mymodeldataset2part2.stl -D part=2 -p mymodel.json -P dataset2 mymodel.scad" </pre> Do the same for any parameter that you want to manipulate in the command Line when using datasets: <pre> //This is parameter1 cvar1 = value1; var1 = cvar1; //This is parameter 2 cvar2 = value2; var2 = cvar2; </pre> === Browsing datasets === A step further might be to automate the dataset browsing. You shall read the json file which contains all datasets: A regular expression can then filter dataset names: <pre> $regex='\"(?!parameterSets)([^\"]+)\"\:\s\{' # This regex extract anything between "" followed by ': {' excluding 'parameterSets' $jfile = "./mymodel.json #directory localisation required by powershell foreach($line in Get-Content $jfile) { # read json file Line by Line if($line -match $regex) { # We found a dataset name $dataset = $Matches.1 # dataset is the part captured by the regex parenthesis, will also be used in the part name Write-Output "Dataset: $dataset" #Output to console debugging info $datasetname = $dataset -replace ' ' , '_' #replace space by underscore #Dataset name containing often space character shall be set between double quotes #We may use simple quotes to define strings containing double quotes around dataset name $arglist = "-o + mymodel" + $datasetname + '.stl -p mymodel.json -P "' + $dataset + '" mymodel.scad' Write-Output "Argument list: $arglist" #Output to console debugging info Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow } } </pre> {{BookCat}} ei2au9gshjv72zex4y59p323mp1kkll 4675505 4675503 2026-10-11T08:54:44Z ~2026-54602-53 3628139 /* Outputting different parts of a model */ presentation 4675505 wikitext text/x-wiki === Command line usage === OpenSCAD can not only be used as a GUI, but also handles command line arguments. OpenSCAD (DEV/nightly) 2025.08.17 has these options <pre> Usage: openscad.exe [options] file.scad Allowed options: --export-format arg overrides format of exported scad file when using option '-o', arg can be any of its supported file extensions. For ascii stl export, specify 'asciistl', and for binary stl export, specify 'binstl'. Ascii export is the current stl default, but binary stl is planned as the future default so asciistl should be explicitly specified in scripts when needed. -o [ --o ] arg output specified file instead of running the GUI. The file extension specifies the type: stl, off, wrl, amf, 3mf, csg, dxf, svg, pdf, png, echo, ast, term, nef3, nefdbg, param, pov. May be used multiple times for different exports. Use '-' for stdout. -O [ --O ] arg pass settings value to the file export using the format section/key=value, e.g export-pdf/paper-size=a3. Use --help-export to list all available settings. -D [ --D ] arg var=val -pre-define variables -p [ --p ] arg customizer parameter file -P [ --P ] arg customizer parameter set --enable arg enable experimental features (specify 'all' for enabling all available features): roof | input-driver-dbus | lazy-union | vertex-object-renderers-indexing | textmetrics | import-function | predictible-output -h [ --help ] print this help message and exit --help-export print list of export parameters and values that can be set via -O -v [ --version ] print the version --info print information about the build process --camera arg camera parameters when exporting png: =translate_x,y,z,rot_x,y,z,dist or =eye_x,y,z,center_x,y,z --autocenter adjust camera to look at object's center --viewall adjust camera to fit object --backend arg 3D rendering backend to use: 'CGAL' (old/slow) [default] or 'Manifold' (new/fast) --imgsize arg =width,height of exported png --render arg for full geometry evaluation when exporting png --preview arg [=throwntogether] -for ThrownTogether preview png --animate arg export N animated frames --animate_sharding arg Parameter <shard>/<num_shards> - Divide work into <num_shards> and only output frames for <shard>. E.g. 2/5 only outputs the second 1/5 of frames. Use to parallelize work on multiple cores or machines. --view arg =view options: axes | crosshairs | edges | scales --projection arg =(o)rtho or (p)erspective when exporting png --csglimit arg =n -stop rendering at n CSG elements when exporting png --summary arg enable additional render summary and statistics: all | cache | time | camera | geometry | bounding-box | area --summary-file arg output summary information in JSON format to the given file, using '-' outputs to stdout --colorscheme arg =colorscheme: *Cornfield | Metallic | Sunset | Starnight | BeforeDawn | Nature | Daylight Gem | Nocturnal Gem | DeepOcean | Solarized | Tomorrow | Tomorrow Night | ClearSky | Monotone -d [ --d ] arg deps_file -generate a dependency file for make -m [ --m ] arg make_cmd -runs make_cmd file if file is missing -q [ --quiet ] quiet mode (don't print anything *except* errors) --hardwarnings Stop on the first warning --trace-depth arg =n, maximum number of trace messages --trace-usermodule-parameters arg =true/false, configure the output of user module parameters in a trace --check-parameters arg =true/false, configure the parameter check for user modules and functions --check-parameter-ranges arg =true/false, configure the parameter range check for builtin modules --debug arg special debug info - specify 'all' or a set of source file names -s [ --s ] arg stl_file deprecated, use -o -x [ --x ] arg dxf_file deprecated, use -o </pre> Export help <pre> OpenSCAD version 2025.08.17 List of settings that can be given using the -O option using the format '<section>/<key>=value', e.g.: openscad -O export-pdf/paper-size=a6 -O export-pdf/show-grid=false Section 'export-pdf': - paper-size (enum): [a6,a5,<a4>,a3,letter,legal,tabloid] - orientation (enum): [<portrait>,landscape,auto] - show-filename (bool): <true>/false - show-scale (bool): <true>/false - show-scale-message (bool): <true>/false - show-grid (bool): <true>/false - grid-size (double): 1.000000 : <10.000000> : 100.000000 - add-meta-data (bool): <true>/false - meta-data-title (string): "" - meta-data-author (string): "" - meta-data-subject (string): "" - meta-data-keywords (string): "" Section 'export-3mf': - color-mode (enum): [<model>,none,selected-only] - unit (enum): [micron,<millimeter>,centimeter,meter,inch,foot] - color (string): "#f9d72c" - material-type (enum): [color,<basematerial>] - decimal-precision (int): 1 : <6> : 16 - add-meta-data (bool): <true>/false - meta-data-title (string): "" - meta-data-designer (string): "" - meta-data-description (string): "" - meta-data-copyright (string): "" - meta-data-license-terms (string): "" - meta-data-rating (string): "" </pre> OpenSCAD 2021.01 has these options: Usage: openscad [options] file.scad Allowed options: --export-format arg overrides format of exported scad file when using option '-o', arg can be any of its supported file extensions. For ascii stl export, specify 'asciistl', and for binary stl export, specify 'binstl'. Ascii export is the current stl default, but binary stl is planned as the future default so asciistl should be explicitly specified in scripts when needed. -o [ --o ] arg output specified file instead of running the GUI, the file extension specifies the type: stl, off, wrl, amf, 3mf, csg, dxf, svg, pdf, png, echo, ast, term, nef3, nefdbg (May be used multiple time for different exports). Use '-' for stdout -D [ --D ] arg var=val -pre-define variables -p [ --p ] arg customizer parameter file -P [ --P ] arg customizer parameter set --enable arg enable experimental features (specify 'all' for enabling all available features): roof | input-driver-dbus | lazy-union | vertex-object-renderers | vertex-object-renderers-indexing | vertex-object-renderers-direct | vertex-object-renderers-prealloc | textmetrics -h [ --help ] print this help message and exit -v [ --version ] print the version --info print information about the build process --camera arg camera parameters when exporting png: =translate_x,y,z,rot_x,y,z,dist or =eye_x,y,z,center_x,y,z --autocenter adjust camera to look at object's center --viewall adjust camera to fit object --imgsize arg =width,height of exported png --render for full geometry evaluation when exporting png --preview arg [=throwntogether] -for ThrownTogether preview png --animate arg export N animated frames --view arg =view options: axes | crosshairs | edges | scales | wireframe --projection arg =(o)rtho or (p)erspective when exporting png --csglimit arg =n -stop rendering at n CSG elements when exporting png --summary arg enable additional render summary and statistics: all | cache | time | camera | geometry | bounding-box | area --summary-file arg output summary information in JSON format to the given file, using '-' outputs to stdout --colorscheme arg =colorscheme: *Cornfield | Metallic | Sunset | Starnight | BeforeDawn | Nature | DeepOcean | Solarized | Tomorrow | Tomorrow Night | Monotone -d [ --d ] arg deps_file -generate a dependency file for make -m [ --m ] arg make_cmd -runs make_cmd file if file is missing -q [ --quiet ] quiet mode (don't print anything *except* errors) --hardwarnings Stop on the first warning --check-parameters arg =true/false, configure the parameter check for user modules and functions --check-parameter-ranges arg =true/false, configure the parameter range check for builtin modules --debug arg special debug info - specify 'all' or a set of source file names === Export options === When called with the <code>-o</code> option, OpenSCAD does not start the GUI, but executes the given file and exports to the <i>output_file</i> in a format depending on the extension (<code>.stl</code> / <code>.off</code> / <code>.dxf</code>, <code>.csg</code>). Some versions use -s/-d/-o to determine the output file format instead; check with "openscad --help". If the option <code>-d</code> is given in addition to an export command, all files accessed while building the mesh are written in the argument of <code>-d</code> in the syntax of a Makefile. For at least 2015.03-2+, specifying the extension <code>.echo</code> causes openscad to produce a text file containing error messages and the output of all <code>echo()</code> calls in <code>filename</code> as they would appear in the console window visible in the GUI. Multiple output files are not supported, so using this option you cannot also obtain the model that would have normally been generated. Note: When exporting to STL, the GUI defaults to binary STL (smaller, faster) and the CLI defaults to ASCII STL (larger, slower). Post-processing pipelines may prefer ASCII STL; they should explicitly say `--export-format asciistl` in preparation for the default eventually changing to binary STL. ==== Camera and image output ==== For 2013.05+, the option to output a <code>.png</code> image was added. There are two types of cameras available for the generation of images. The first camera type is a 'gimbal' camera that uses Euler angles, translation, and a camera distance, like OpenSCAD's GUI viewport display at the bottom of the OpenSCAD window. The second camera type is a 'vector' camera, with an 'eye' camera location vector and a 'lookat' center vector. --imgsize x,y chooses the .png dimensions and --projection chooses orthogonal or perspective, as in the GUI. By default, cmdline .png output uses Preview mode (f5) with OpenCSG. For some situations it may be desirable to output the full render, with CGAL. This is done by adding '--render' as an option. === Constants === In order to pre-define variables, use the <code>-D</code> option. It can be given repeatedly. Each occurrence of <code>-D</code> must be followed by an assignment. Unlike normal OpenSCAD assignments, these assignments don't define variables, but constants, which cannot be changed inside the program, and can thus be used to overwrite values defined in the program at export time. If you want to assign the -D variable to another variable, the -D variable MUST be initialized in the main .scad program param1=17; // must be initialized val=param1; // param1 passed via -D on cmd-line echo(val,param1); // outputs 17,17 without the first line, val would be undefined. The right hand sides can be arbitrary OpenSCAD expressions, including mathematical operations and strings. Be aware that your shell (bash, cmd, etc.) parses the arguments before passing them to <code>openscad</code>, therefore you need to properly quote or escape arguments with special characters like spaces or quotation marks. For example to assign a string <code>production</code> to a <code>quality</code> parameter one has to ensure the <code>"</code> characters OpenSCAD expects aren't stripped by the shell. In bash one could write: openscad -o my_model_production.stl -D 'quality="production"' my_model.scad or from the Windows prompt: openscad.com -o my_model_production.stl -D "quality=""production""" my_model.scad or you may need to escape the inner quotes instead: openscad -o my_model_production.stl -D "quality=\"production\"" my_model.scad Note that this sort of double-escaping isn't necessary when executing OpenSCAD from another process that isn't using a shell, because each argument is passed separately. For example a Java application might start a process like so: pb = new ProcessBuilder("/usr/bin/openscad", "-o", "my_model_production.stl", "-D", "quality=\"production\"", "my_model.scad"); // 12-Pole Fuse Box with Cover (EV Application) // ================= PARAMETERS ================= length = 100; width = 40; height = 35; wall = 2.5; fuse_w = 4.2; fuse_l = 12; fuse_h = 12; x_pitch = 8.5; y_pitch = 14; cover_height = 5; // ================= MAIN HOUSING ================= difference() { cube([length, width, height]); // Hollow inside translate([wall, wall, wall]) cube([length-2*wall, width-2*wall, height]); // Fuse slots (2 rows x 6 columns) for (row = [0:1]) { for (col = [0:5]) { x = 10 + col * x_pitch; y = 10 + row * y_pitch; translate([x, y, 5]) cube([fuse_w, fuse_l, fuse_h]); } } } // ================= COVER ================= translate([0, 0, height]) cube([length, width, cover_height]); // ================= MOUNTING HOLES ================= for (x = [10, length-10]) { translate([x, width/2, 0]) cylinder(h=height, d=5, center=false); } === Processing all .scad files in a folder === Example to convert all the .scad in a folder into .stl: In a folder with .scad files, make a .bat file with text: FOR %%f in (*.scad) DO openscad -o "%%~nf.stl" "%%f" If it closes without processing, check to set the PATH by adding openscad directory to: Start - Settings - Control Panel - System - Advanced tab - Environment Variables - System Variables, select Path, then click Edit. Add the openscad directory to the list === Makefile example === The <code>-d</code> and <code>-m</code> options only make sense together. (<code>-m</code> without <code>-d</code> would not consider modified dependencies when building exports, <code>-d</code> without <code>-m</code> would require the files to be already built for the first run that generates the dependencies.) Here is an example of a basic Makefile that creates an .stl file from an .scad file of the same name: # explicit wildcard expansion suppresses errors when no files are found include $(wildcard *.deps) %.stl: %.scad openscad -m make -o $@ -d $@.deps $< When <code>make my_example.stl</code> is run for the first time, it finds no .deps files, and must depend on <code>my_example.scad</code>. Because <code>my_example.stl</code> is not yet present, it gets created unconditionally. If OpenSCAD finds missing files, it calls <code>make</code> to build them, and it lists all used files in <code>my_example.stl.deps</code>. When <code>make my_example.stl</code> is called subsequently, it finds and includes <code>my_example.stl.deps</code> and check if any of the files listed there, including <code>my_example.scad</code>, changed since <code>my_example.stl</code> was built, based on their time stamps. Only if that is the case, it builds <code>my_example.stl</code> again. ==== Automatic targets ==== When building similar .stl files from a single .scad file, there is a way to automate that too: # match "module foobar() { // `make` me" TARGETS=$(shell sed '/^module [a-z0-9_-]*().*make..\?me.*$$/!d;s/module //;s/().*/.stl/' base.scad) all: ${TARGETS} # auto-generated .scad files with .deps make make re-build always. keeping the # scad files solves this problem. ([[Talk:OpenSCAD User Manual/Using OpenSCAD in a command line environment|explanations are welcome]].) .SECONDARY: $(shell echo "${TARGETS}" | sed 's/\.stl/.scad/g') # explicit wildcard expansion suppresses errors when no files are found include $(wildcard *.deps) %.scad: echo -ne 'use <base.scad>\n$*();' > $@ %.stl: %.scad openscad -m make -o $@ -d $@.deps $< All objects that are supposed to be exported automatically have to be defined in <code>base.scad</code> in an own module with their future file name (without the ".stl"), and have a comment like "<code>// make me</code>" in the line of the module definition. The "<code>TARGETS=</code>" line picks these out of the base file and creates the file names. These are built when <code>make all</code> (or <code>make</code>, for short) is called. As the convention from the last example is to create the .stl files from .scad files of the same base name, for each of these files, an .scad file must be generated. This is done in the "<code>%.scad:</code>" paragraph; <code>my_example.scad</code> is a simple OpenSCAD file: use <base.scad> my_example(); The "<code>.SECONDARY</code>" line is there to keep <code>make</code> from deleting the generated .scad files. Its presence helps determine which files no longer need to be rebuilt; please post ideas about what exactly goes wrong there (or how to fix it better) on the [[Talk:OpenSCAD User Manual/Using OpenSCAD in a command line environment|talk]] page! === Windows notes === On Windows, openscad.com should be called from the command line as a wrapper for openscad.exe. This is because Openscad uses the 'devenv' solution to the Command-Line/GUI output issue. Typing 'openscad' at the cmd.exe prompt calls the .com program wrapper by default. === MacOS notes === On MacOS the binary is normally hidden inside the App folder. If OpenSCAD is installed in the global Applications folder, it can be called from command line like in the following example that just shows the OpenSCAD version: macbook:/$ /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD -v OpenSCAD version 2013.06 Alternatively, you may create a symbolic link to the binary to make calls from the command line easier: macbook:/$ sudo ln -sf /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD /usr/local/bin/openscad Now you can call <code>openscad</code> directly without having to type in the full path. macbook:/$ openscad -v OpenSCAD version 2015.03-3 On some versions of MacOS, you might get the following error when attempting to run openscad via that link: This application failed to start because it could not find or load the Qt platform plugin "cocoa". Reinstalling the application may fix this problem. Abort trap: 6 You can fix this by creating a wrapper script to invoke the executable directly: sudo rm -f /usr/local/bin/openscad echo '#!/bin/sh' > test echo '/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD "$@"' >> test chmod +x test ; sudo mv test /usr/local/bin/openscad == Automation == There are many solutions to automate Openscad operation, the following examples use Microsoft Powershell which is available either on Windows, on Linux (in deb and snap packages) or on MacOS. Such script file shall be written on a text editor, much preferably a code editor with syntax coloring for powershell (e.g. VS code, Sublime text). Note that while powershell script may be started directly from file browser in Linux, for debugging you may want to start script from a terminal window in order to see messages from script or OpenScad. First you shall define the program call for your system and set it in a variable, adjust according your system On Windows this may depends from your system disk, could be simpler if your environment variable are well set: <pre>$scad = "c:`"/Program Files/OpenSCAD/openscad.exe`""</pre> On Linux simply: <pre>$scad = "openscad" </pre> On MacOS this may be: <pre>$scad = "/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD"</pre> If you want to be capable to use a variation of openscad, say the nightly version, set the openscad version you want. <pre>$scad = "openscad-nightly"</pre> === Outputting different parts of a model === The first automation that you may want is to output automatically many parts from the same scad file. You can use a variable ‘part’ to select the part to output. code of 'mymodel.scad' might be: <pre> part = 0; // [0:Ensemble, 1:Part 1, 2:Part 2, 3:Part 3] ... if (part==1) { ... } else if (part==2) { ... } else if (part==3) { ... } </pre> and the automation file ‘mybatch.ps1’ will be: <pre> #!/usr/bin/env pwsh # Above 'shebang' line required on Linux for automatic execution of powershell from a direct launch on file browser. 'mybatch.ps1' file attributes shall be made executable first. #Powershell part batch generator $arglist = "-o mymodelpart1.stl -D part=1 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow $arglist = "-o mymodelpart2.stl -D part=2 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow $arglist = "-o mymodelpart2.stl -D part=3 mymodel.scad" Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow </pre> -Wait parameter impose the task to be finished before continuing the script -NoNewWindow will execute the script in the existing window without starting a new one Note there is no space around the '=' sign for parameters You may want to change any other parameter than 'part' at will, including or not a part number, in this case the argument list might be: <pre> $arglist = "-o somepart.stl -D myvar1=value1 -D myvar2=value2 mymodel.scad" </pre> Note that if the value is a string, double quotes shall be escaped by a bactick ` : -D myvals=`"myparam`" for them not to be interpreted as the $arglist string end or start. You may also define a string by setting it between simple quotes but that prevent you to use variables which will be interpreted when running command. So the execution line became: <pre> Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow </pre> === BOM or datasheet exportation === Another frequent request is to export a BOM or a specification This could be done by adapting your program to echo the stuff you want, by example: <pre> echoout = 0; //0 is normal screen echo, 1 will be BOM, 2 will be data Specification if (echoout==0) { echo("Normal echo"); } ... if (echoout==1) { echo("Part 1 : description1"); echo("Part 2 : description2"); echo("Part 3 : description3 dimensions:", part3dim1,"x",part3dim2); } ... if (echoout==2) { echo(str("First parameter =", var1)); echo(str("Second parameter =", var2)); echo(str("Third parameter =", var3)); } </pre> Writing your own echo module may help. then to obtain an output, your argument list may became: <pre>$arglist = "-o mymodel_BOM.txt -D echoout=1 --export-format echo mymodel.scad"</pre> and <pre>$arglist = "-o mymodel_data.txt -D echoout=2 --export-format echo mymodel.scad"</pre> However, the outputted text will have 'ECHO:' written at the beginning of each line and text will be set between ", that you want to remove with following commands: <pre> $fc = Get-Content .\mymodel_BOM.txt #get whole file in $fc variable if($fc) { #check if the file have any content $fc = $fc -replace 'ECHO: ', '' #remove 'ECHO: ' text $fc = $fc -replace '"' , '' #remove '"' char - this is optional $fc > .\mymodel_BOM.txt #send variable content to the file which will be overwritten } </pre> === Using datasets === An interesting option is to use Customizer datasets, however Customizer datasets variable values supersedes any values than you try to define in the command line: The solution is to rename the parameter you need to modify and copy it to a variable that the command line will then be capable to change. In your scad you may find: <pre> cpart = 0; // [0:ensemble, 1:Part 1, 2:Part 2, 3:Part 3] //This variable will be recorded in the dataset, so not modifiable part=cpart; // 'part' variable can be manipulated by the command line //Argument list for all your runs could then be: $arglist = "-o mymodeldataset1part1.stl -D part=1 -p mymodel.json -P dataset1 mymodel.scad" $arglist = "-o mymodeldataset1part2.stl -D part=2 -p mymodel.json -P dataset1 mymodel.scad" $arglist = "-o mymodeldataset2part1.stl -D part=1 -p mymodel.json -P dataset2 mymodel.scad" $arglist = "-o mymodeldataset2part2.stl -D part=2 -p mymodel.json -P dataset2 mymodel.scad" </pre> Do the same for any parameter that you want to manipulate in the command Line when using datasets: <pre> //This is parameter1 cvar1 = value1; var1 = cvar1; //This is parameter 2 cvar2 = value2; var2 = cvar2; </pre> === Browsing datasets === A step further might be to automate the dataset browsing. You shall read the json file which contains all datasets: A regular expression can then filter dataset names: <pre> $regex='\"(?!parameterSets)([^\"]+)\"\:\s\{' # This regex extract anything between "" followed by ': {' excluding 'parameterSets' $jfile = "./mymodel.json #directory localisation required by powershell foreach($line in Get-Content $jfile) { # read json file Line by Line if($line -match $regex) { # We found a dataset name $dataset = $Matches.1 # dataset is the part captured by the regex parenthesis, will also be used in the part name Write-Output "Dataset: $dataset" #Output to console debugging info $datasetname = $dataset -replace ' ' , '_' #replace space by underscore #Dataset name containing often space character shall be set between double quotes #We may use simple quotes to define strings containing double quotes around dataset name $arglist = "-o + mymodel" + $datasetname + '.stl -p mymodel.json -P "' + $dataset + '" mymodel.scad' Write-Output "Argument list: $arglist" #Output to console debugging info Start-Process $scad -ArgumentList $arglist -Wait -NoNewWindow } } </pre> {{BookCat}} oi235z57tovmrtafniiy6i6wslmm76s Accordion/Left hand/Lesson 2 0 246270 4675454 4496550 2026-10-10T14:56:54Z WereSpielChequers 248949 typo 4675454 wikitext text/x-wiki Now that you know all the available "C" chords, now it's time to learn to play in other keys. The basses are arranged in a [[circle of fifths]]. From the pedal "C" button, move up one button. This one plays a "G". If you try the corresponding chord buttons on this row, you'll notice they're the same, but play in the key of G, not C. Move up another row and the bass note is "D", then "A", etc. Going "upwards" from the C, the circle of fifths goes C, G, D, A, E, B, F#, C#/Db, Ab, Eb, Bb, F, and then back to C. Similarly, if you go downwards from middle "C", you will play an "F", then a "B flat", etc. The circle of fifths downward (technically this is a circle of fourths, which is the inversion of a fifth) is C, F, Bb, Eb, Ab, Db, Gb, B, E, A, D, G, then back to C. You may recognize the pattern from folk songs which have chords in this order (e.g., E, A, D, G). The key here is to remember where each button is and the distance between buttons. Because you can't see your left hand, it can be challenging to play smoothly. To help guide your left hand, most accordions have one or more buttons with depressions, raised jewels or other tactile markers. Typically, the C bass button, the E bass button above the C, and the Ab bass button below the C have some type of engraving or marking. You can study a diagram of the Stradella bass button system to see how the buttons' musical keys are laid out. When you are starting iut, you can also look at your left hand in a mirror. Just as important as learning about diagrams and layouts, though, is [[ear training]], which is learning to hear and identify common intervals and chords just by hearing them. While there are countless possible chord movements to eventually learn by ear, the most important ones are I (the tonic or "home chord"), IV (the sub-dominant) and V7 (the dominant), which in C Major are the chords C Major, F Major, and G7. Many of the complex chords you will learn about later are substitutes for or chromatic alterations of these three basic chord functions. ---- *'''I, IV, V Exercise:''' Play the middle "C" and "C major" chord buttons. In this book, the instruction to "play a C Major chord" typically means to play the bass button and a chord from the same row (advanced players will often play a bass button from one row and a chord button from a different row, but that is for later on in your studies). Then, move upward and play a "G bass note" and "G major" chord. Assuming you are in the key of C Major, the C chord is the tonic or "home chord", and the G Major (or G7) is the dominant chord. Alternate between these two positions until you are comfortable with the distance. Now try going from C Major to the row below, an F Major chord. Now play a C Major chord, an F Major chord, a G7 chord, and then the C major chord. You can loop it and play it many times. This is the I-IV-V7-I sequence which is the foundation of many popular music songs. Try this blues progression (each slash means play one beat of the chord, so four slashes in the first bar means to play C, C, C, C for that first bar, and so on): C__F__C__C__ <br> ////|////|////|//// F__F__C__C__ <br> ////|////|////|//// G7_F__C__G7_ <br> ////|////|////|//// Now go from the "C" position and jump to a "D" and "D major" chord. You would do this if your bandleader told you the group would play in the key of D. Now you are in the key of D Major, the D chord is the tonic or "home chord", and the A Major (or A7) is the dominant chord. Now try going from D Major to the row below, a G Major chord, the IV chord in D. Now play a D Major chord, a G Major chord, an A7 chord, and then the D major chord. Do this until the transition becomes reasonably smooth and you land right in the middle of the buttons. D__G__D__D__ <br> ////|////|////|//// G__G__D__D__ <br> ////|////|////|//// A7_G__D__A7_ <br> ////|////|////|//// Now that you can play the I, IV, V progression, you have the tools to play the 12 bar blues progression and play many simple folk and pop songs. *'''I, VI, ii, V7 Exercise:''' Go back to the key if C. To get a key "in your ear", play the tonic, then the dominant seventh several times; in this case, play C Major, G7, C Major, G7 a couple of times. Now we are going to learn the second most important chords in a key, The essential chords are I, IV, and V (or V7). You can do a lot with I, IV, V, but if you go to jam sessions, eventually you will hear people talking about "ii chords" ("two chords") and "vi chords" ("six chords"). In the key of C, the ii chord is d minor. The d minor chord is, like the F major, a subdominant chord (meaning that its function is to lead you to the dominant). The d minor chord and the F major are so similar that they can often be substituted for each other. In the key of C, the vi chord is "a minor" (in quotes to make clear that it is the minor chord built on the note "a"). The "a minor" chord is so similar to the C major chord that "a minor" is considered a tonic substitute. The chord progression I, vi, ii, V7 in the key of C is: C Major , a minor, d minor, G7. This is used in many pop and jazz songs. You play the C chord, then you need to learn to shift up to the A bass button, hopping over the G and D rows, while moving your finger to the "a minor" chord once your hand in position. The next two chords are easy, as you just move down row by row from d minor to G Major (or G7). Here us how you might see it written in a jam session (the minus signs mean "minor"): C__a-__d-__G7_ <br> ////|////|////|//// Eventually, you should be able to go all the way from C to distant buttons above and below quickly and smoothly. Try to "remember" each distance. This takes a lot of time to do well, so don't despair if it doesn't come easily! Just keep at it. You can mix it up by playing a seventh chord instead of the usual chord. This is a jazzy variant of I, vi, ii, V in which the vi and ii are both dominant seventh chords: C__A7_D7_G7__ <br> ////|////|////|//// Many rock and blues songs use another variant chord, the bVI chord (said " flat sixth"). In the key of C Major, the bVI chord is Ab. A popular chord to use along with the bVI is bVII, which is Bb. The resulting progression is I-bVII-bVI-V7, which is the chords C Major, Bb Major, Ab Major, and G7. On accordion, the first three are relatively easy, as you just skip a bass row for the C to Bb and the Bb to Ab. Getting the G7 quickly after Ab Major is more challenging, because you have to jump multiple rows. One way to make it easier is to leave a rest on the fourth beat of the third bar, to give time to move your hand. C__Bb_Ab_G7_ <br> ////|////|////|//// *'''Minor key i, iv, V Exercise:''' Play the middle "C" and "C minor" chord buttons. You are in the key of C minor, the C chord is the tonic or "home chord", and the G Major (or G7) is the dominant chord. Alternate between these two positions until you are comfortable with the distance. Now try going from C minor to the row below, an F minor chord. Now play a C minor chord, an F minor chord, a G7 chord, and then the C minor chord. You can loop it and play it many times. This is the i-iv-V7-i sequence which is the foundation of many minor key songs. Try this minor blues progression: c-__f-__c-__c-__ <br> ////|////|////|//// f-__f-__c-__c-__ <br> ////|////|////|//// G7_f-__c-__G7_ <br> ////|////|////|//// Now go from the "C" position and jump to a "D" and "D minor" chord. You would do this if your bandleader told you the group would play in the key of D. Now you are in the key of D minor, the D chord is the tonic or "home chord", and the A Major (or A7) is the dominant chord. Now try going from D minor to the row below, a "g minor" chord, the iv chord in D. Now play a D minor chord, a g minor chord, an A7 chord, and then the D minor chord. Do this until the transition becomes reasonably smooth and you land right in the middle of the buttons. d-__g-__d-__d-__ <br> ////|////|////|//// g-__g-__d-__d-__ <br> ////|////|////|//// A7_g-__d-__A7_ <br> ////|////|////|//// Flat six chord variant (the 9th and the 10th bar are changed from V7-iv to bVI7-V7): d-_g-__d-__d-__ <br> ////|////|////|//// g-__g-__d-__d-__ <br> ////|////|////|//// Bb7_A7_d-__A7_ <br> ////|////|////|//// Now that you can play the i, iv, V progression, you have the tools to play the 12 bar minor blues progression and play many simple minor key songs. ---- *'''Oom-pah Exercise:''' The classic accordion accompaniment pattern is "oom-pah", which is a bass note followed by a chord. Both are usually played staccato (short). To play the "oom-pah" pattern in C Major, play the middle "C" bass note and then play the "C major" chord button. Then, play a G bass note folowed by the "C major" chord again. Some important chord progressions to practice the "oom-pah" pattern on are: *I to V7 (C Major to G7 and back to C; G Major to D7 and back to G; D Major to A7 and back to D; etc.) *i to V7 (C minor to G7 and back to C minor; G minor to D7 and back to G minor; D minor to A7 and back to D minor; etc.) *I IV V7 I (C Major, F Major, G7, C Major) *I ii V7 I (C Major, d minor, G7, C Major) *I VI7 ii V7 I (C Major, A7, d minor, G7, C Major) You should also try these progressions with the bass note and chord together. ---- <big>'''[[Accordion/Left hand/Lesson 1|<< Back to Lesson 1]] • [[Accordion/Left hand/Lesson 3|Lesson 3 >>]]'''</big> <div style="text-align: center;"><big>''Go to:'' [[Accordion/Left hand|Introduction]] • Lesson [[Accordion/Left hand/Lesson 1|1]]• '''2''' • [[Accordion/Left hand/Lesson 3|3]] • [[Accordion/Left hand/Lesson 4|4]]</big></div> {{BookCat}} 54mczusv6mf505q24gohk0qb9i4ab0s Bicycles/Maintenance and Repair/Gear-changing Dimensions 0 256142 4675506 4659783 2026-10-11T10:08:53Z ~2026-54748-83 3628143 /* External Links */ Dead link & archive.org 4675506 wikitext text/x-wiki {{bicycles}} <table style="margin:20px;float:left;"> <tr> <td>__TOC__ </td> </tr> </table> [[image:Free Wheel.jpg|300px|right|thumb|A nine-speed cassette on a bicycle's rear wheel.]] ==Introduction== This page intends to document the various standards that are in use by manufacturers for bicycle gear-shifting. The parts that are most likely to be of interest are the measurements of cogsets, the cable pull of shifters, and the shift ratios of derailleurs. In addition, notes on the mixing of gear from different manufacturers is also of interest to those who intend to improvise. ==The Shift Equation== In all ''indexed shifting'' there is a fundamental shifting equation that applies to the gear-changing process. For convenience, it is repeated here. '''The product of cable pull and the derailleur's shift ratio (reciprocal of actuation ratio) equals the transverse distance moved by the derailleur cage across the cogs. For useful shifting the distance shifted must equal the center to center cog spacing (pitch)'''. :<math>\begin{align} \textrm{Center To Center Cog Spacing Or Pitch} &= \textrm{Cable Pull} & \times & & \textrm{Derailleur Shift Ratio} \\ &= \textrm{Cog Thickness} & + & & \textrm{Spacer Thickness} \end{align}</math> ==REAR SHIFTING TABLES== ===Cog Pitch=== '''The center to center spacing between adjacent cogs of a cluster is called the ''pitch''.''' It is usual for the pitch to be uniform across a cog-set whether it is arranged in a freewheel or in a cassette. Other uses of the term ''pitch'' refer to the distance between teeth on the cogs and the distance between links of the chain that engage them. Chains have an unambiguous pitch of 0.5 inches on bicycles, so this term can be used here safely to refer to center to center cog spacing. '''The ''pitch'' is made up of the thickness of a cog plus the thickness of a spacer.''' Cogs are sometimes increased in thickness to accommodate the increased stresses applied to them, and in these cases the spacers are reduced in thickness to maintain a uniform pitch. '''The ''pitch'' is reduced for increasing numbers of cogs'''. There are disadvantages in setting the chain-line of a bicycle far from the wheel's center, so at some stage as the number of cogs is increased, they must be fitted closer together - hence the reduced pitch. '''The ''pitch'' of all modern ''seven-speed'' cog-sets is invariably five millimeters.''' This is true for all manufacturers of seven-speed cog-sets, and such consistency is unusual in cog standards. In most other sizes, manufacturers have used their own standards, so that it is usual to have different pitch dimensions even for the same size of cassette. Table 1 lists the pitch of some commonly available cog-sets as well as various other dimensions: ===Cog-set Stack Width=== The overall width of a uniform cog-set can be calculated: :<math>\begin{align} \textrm{Stack Width} &= & \textrm{n} \times \textrm{Cog Thickness} & &+ & & (\textrm{n} - 1) \times \textrm{Spacer Thickness}& \\ \textrm{Max Chain Width} &= & \textrm{Cog Thickness} & &+ & & 2 \times \textrm{Spacer Thickness}& \\ \end{align}</math> Where ''n'' is the number of cogs. The stack widths for various uniform cog-sets are given in Table 1. When cog-sets are assembled with parts from different sources the stack width is often built out with additional spacers to allow the fitting of cogs onto the freehub. At times it is difficult to reconcile the widths of large cassettes with the known available space on the hub; this is usually because some cogs of the cluster are designed to overhang the normal fittings. {| class="wikitable sortable" style="text-align:left" |+ '''TABLE FOR REAR SHIFTING ONLY'''<br />'''Table 1: Cog-set Sprocket Pitch and Other Data by Size and Manufacturer'''<br />[http://www.ctc.org.uk/DesktopDefault.aspx?TabID=3946 ''Credit due to CTC, the UK's national cyclists' organisation.'']<br />[http://blog.artscyclery.com/science-behind-the-magic/science-behind-the-magic-drivetrain-compatibility/ ''Credit due to blog.artscyclery.com.'']<br />Note: The term ''pitch'' in these tables means ''inter-cog center-to-center spacing.'' !Brand !Speed !Code !Sprocket<br />Pitch<br />(mm) !Sprocket<br />Thickness<br />(mm) !Spacer<br />Thickness<br />(mm) !Stack<br />Width<br />(mm) |- |''all''||5-6||S5/6||5 - 5.50||||||23.2 - 29.5 |- |''all standard''||7||S7||5.00||||||31.5 - 32.4 |- |Shimano Hyperglide||7||S7||5.00||1.85||3.1<ref>https://si.shimano.com/en/pdfs/ev/CS-HG90_HG70_HG50-7M-1167/EV-CS-HG90_HG70_HG50-7M-1167.pdf</ref>||31.9 |- |Campagnolo|| 8|| C8||5.00||1.9 ||3.1 ||36.9 |- |Shimano || 8|| S8||4.80||1.8 ||3.0<ref>https://si.shimano.com/en/pdfs/ev/CS-7401_HG90_HG70-8V-1166/EV-CS-7401_HG90_HG70-8V-1166A.pdf</ref>||35.4 |- |SRAM || 8|| S8||4.80||1.8 ||3.00||35.4 |- |Campagnolo|| 9|| C9||4.55||1.75||2.8 ||38.2 |- |Shimano || 9|| S9||4.35||1.78||2.56<ref>https://si.shimano.com/en/pdfs/ev/CS-HG70-9-1746/EV-CS-HG70-9-1746A.pdf</ref><ref>https://si.shimano.com/en/pdfs/ev/CS-HG70-9%20(ar)-1772/EV-CS-HG70-9%20(ar)-1772B.pdf</ref>||36.5 |- |SRAM || 9|| S9||4.35||1.8 ||2.54||36.5 |- |Campagnolo||10||C10||4.15||1.7 ||2.4<ref>https://www.campagnolo.com/media/files/035_2355_Catalogue_spare%20parts_tools_Campagnolo_2017_part_B.pdf</ref> (Veloce 10s compatible)<br />2.55 (steel)||40.0±0.1<ref>https://www.campagnolo.com/media/files/035_221_Technical_manual_sprockets_10s_11s_Campagnolo_Rev01_10_18_ENG.pdf</ref> |- |Shimano ||10||S10||3.95||1.6 ||2.35<ref>https://si.shimano.com/en/pdfs/ev/CS-6700-2924/EV-CS-6700-2924B.pdf</ref><ref>https://si.shimano.com/en/pdfs/ev/CS-M771-10-3017/EV-CS-M771-10-3017A.pdf</ref>||37.2 |- |SRAM ||10||S10||3.95||1.6 ||2.35||37.2 |- |Campagnolo||11||C11||3.85||1.6 ||2.2 (mostly)<br />2.3<ref>https://www.campagnolo.com/media/files/035_221_Technical_manual_sprockets_10s_11s_Campagnolo_Rev01_10_18_ENG.pdf</ref> (mixed with 2.2)||40.2+0.15-0.05<nowiki>*</nowiki><ref>https://www.campagnolo.com/media/files/035_221_Technical_manual_sprockets_10s_11s_Campagnolo_Rev01_10_18_ENG.pdf</ref> |- |Shimano ||11||S11||3.74||1.6 ||2.18<ref>https://si.shimano.com/en/pdfs/ev/CS-R7000-4330/EV-CS-R7000-4330.pdf</ref><ref>https://si.shimano.com/en/pdfs/ev/CS-M7000-3984/EV-CS-M7000-3984A.pdf</ref>||39.0<nowiki>*</nowiki> |- |SRAM ||11||n/a||3.72||n/a ||n/a ||n/a |- |Campagnolo||12||n/a||n/a ||n/a ||2.0 ||40.4±0.1<ref>https://www.campagnolo.com/media/files/035_2414_Technical_manual_sprockets_12s_Campagnolo_Rev01_04_19_ENG.pdf</ref> |- |Shimano ||12||n/a||3.55<ref>https://www.vtt12v.ovh/transmission/panachage#h.ezso70hxkrcl</ref>||n/a ||1.95 ("thick")<ref>https://morou2.com/2021/12/23/r8100_3/</ref><ref>https://www.bike-discount.de/en/shimano-sprocket-spacer-for-cs-m7100/m8100</ref><ref>https://si.shimano.com/en/pdfs/dm/RACS010/DM-RACS010-03-ENG.pdf</ref><ref>https://si.shimano.com/en/pdfs/dm/MACS001/DM-MACS001-05-ENG.pdf</ref><br />0.95 ("thin")||n/a |- |SRAM ||12||n/a||3.65<ref>https://www.mtbiking.com.au/news/sram-takes-it-to-12</ref>||n/a ||n/a ||n/a |- |Campagnolo||13||n/a||n/a ||n/a ||n/a ||45<ref>https://www.campagnolo.com/media/files/035_2481_Technical_manual_sprockets_13s_Campagnolo_Rev00_06_21_ENG.pdf</ref> |} <nowiki>*</nowiki> In cases where the available freehub space is less than the stack width, mainly for large cogsets, some cogs have been specially designed to ''overhang'' the stack. <br clear=all> ===Rear Shift Ratios=== '''Actuation ratio is given as the ratio of an input change to an output effect, and the ''shift ratio'' is its reciprocal'''. In the specific case of bicycle derailleurs, the ''shift ratio'' is the distance that the cage travels across the cogs divided by the cable pull to achieve it. In other words ''shift ratio'' is the cog-pitch divided by the cable pull. The SRAM and Shimano manufacturers make use of approximate ''gain ratios'' as short-codes that identify the ''family'' for compatibility of their products. They refer to them as either 2:1 (for Shimano compatible products) or 1:1 (for SRAM's own products). These terms in fact refer to families with shift ratios of 1.7 (''one-point-seven'') and 1.1 (''one-point-one'') respectively, so they do not depict the exact shift or actuation ratios. When SRAM makes a product for Shimano compatibility it uses the 2:1 keyword to identify it as such. <table align=center border=1 cellspacing=0 cellpadding=10px style="border:1.5px solid gray;border-bottom:2px solid gray; border-collapse:collapse;background:mintcream;{{Text default color}};;{{Text default color}}; width:600px;text-align:center;"> <caption>'''TABLE FOR REAR SHIFTING ONLY'''<br>Table 2: Shift Ratios for Derailleurs by Manufacturer</caption> <tr style="text-align:center;"> <td style="width:33%; text-align:center; border:1px solid gray;">Shifter</td> <td style="width:33%; border:1px solid gray;">Ratio</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo(New)</td> <td style=" border:1px solid gray;">1.5</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo(Old)</td> <td style=" border:1px solid gray;">1.4</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Old Dura Ace</td> <td style=" border:1px solid gray;">1.9</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM 1:1 family</td> <td style=" border:1px solid gray;">1.3</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM 2:1 family</td> <td style=" border:1px solid gray;">1.7</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 2:1 for all (except 10 speed 4700) </td> <td style=" border:1px solid gray;">1.7</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 11 (including 4700 and RX400 10 speed)</td> <td style=" border:1px solid gray;">1.4</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 10 & 11 (Dynasys/MTB)</td> <td style=" border:1px solid gray;">1.15</td> </tr> </table> ===Shifter Cable Pull=== The ''rear shift'' data listed in these tables is the same for both MTB (mountain bike) rear shifting, and road bike, (drop-handlebars and racers) rear shifting. For ''front shifting'', (section still needs completion, and data is almost non-existent), the cable pull often is different between the two types of bike. For example, Shimano shifters have different cable pulls for their MTB and road series bikes. <table style="width:600px; border:1.5px solid gray;border-bottom:2px solid gray; border-collapse:collapse;background:mintcream;{{Text default color}};text-align:center;" cellpadding=5px align=center> <caption>'''TABLE FOR REAR SHIFTING ONLY'''<br>Table 3: Cable Pull Length for Various Gear Shifters by Manufacturer<br>[http://www.ctc.org.uk/DesktopDefault.aspx?TabID=3946 ''Credit due to CTC, the UK's national cyclists' organisation.'']</caption> <tr style="text-align:center;"> <td style="width:33%; text-align:center; border:1px solid gray;">Shifter</td> <td style="width:33%; border:1px solid gray;">Cable Pull</td> <td style="width:33%; border:1px solid gray;">Code</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">(mm)</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 6</td> <td style=" border:1px solid gray;">3.2</td> <td style=" border:1px solid gray;">S6</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 7</td> <td style=" border:1px solid gray;">2.9</td> <td style=" border:1px solid gray;">S7</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 8</td> <td style=" border:1px solid gray;">2.8</td> <td style=" border:1px solid gray;">S8</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 9</td> <td style=" border:1px solid gray;">2.5</td> <td style="border:1px solid gray;">S9</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 10 (4600, 5600, 5700, 6600 or 6700)</td> <td style=" border:1px solid gray;">2.3</td> <td style=" border:1px solid gray;">S10</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 10 (Dynasys/MTB)</td> <td style=" border:1px solid gray;">3.4</td> <td style=" border:1px solid gray;">S10D</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 10 (4700)</td> <td style=" border:1px solid gray;">2.8</td> <td style=" border:1px solid gray;">?</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 11</td> <td style=" border:1px solid gray;">2.7</td> <td style=" border:1px solid gray;">S11</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 11 (Dynasys/MTB)</td> <td style=" border:1px solid gray;">3.2</td> <td style=" border:1px solid gray;">S11D</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo 8</td> <td style=" border:1px solid gray;">3.5</td> <td style=" border:1px solid gray;">C8</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo old 9</td> <td style=" border:1px solid gray;">3.2</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo new 9</td> <td style=" border:1px solid gray;">3.0</td> <td style=" border:1px solid gray;">C9</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo 10</td> <td style=" border:1px solid gray;">2.8</td> <td style=" border:1px solid gray;">C10</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo 11</td> <td style=" border:1px solid gray;">2.6</td> <td style="border:1px solid gray;">C11</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (1:1) 7</td> <td style=" border:1px solid gray;">4.5</td> <td style=" border:1px solid gray;">(1:1)-7</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (1:1) 8</td> <td style=" border:1px solid gray;">4.3</td> <td style=" border:1px solid gray;">(1:1)-8</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (1:1) 9</td> <td style=" border:1px solid gray;">4.0</td> <td style=" border:1px solid gray;">(1:1)-9</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (1:1-Exact Actuation) 10</td> <td style=" border:1px solid gray;">3.1</td> <td style=" border:1px solid gray;">(1:1)-10</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (2:1) 7</td> <td style=" border:1px solid gray;">2.9</td> <td style=" border:1px solid gray;">S7</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (2:1) 8</td> <td style=" border:1px solid gray;">2.8</td> <td style=" border:1px solid gray;">S8</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (2:1) 9</td> <td style="">2.5</td> <td style="border:1px solid gray;">S9</td> </tr> </table> <br clear=all> ===Mixing Rear Drive Components=== At times it is of interest to know whether or not the components of other than the host manufacturer will work well for indexed shifting. Table 4 brings together the data of Tables 1, 2, and 3 to generate the derailleur shifts that would result from the mixing of components. By relating these shifts to the known pitches of the available cog-sets, it is possible to gauge the likelihood of success or failure. Follow the examples that follow the table to understand how it is used. <table style="width:800px; border:1.5px solid gray;border-bottom:2px solid gray; border-collapse:collapse;background:mintcream;{{Text default color}};text-align:center;" cellpadding=5px align=center> <caption>'''TABLE FOR REAR SHIFTING ONLY'''<br>Table 4: Predicted cog-shifts for variously mixed bicycle drive-gear<br>[http://www.ctc.org.uk/DesktopDefault.aspx?TabID=3946 ''Credit due to CTC, the UK's national cyclists' organisation.'']<br>Note: The term ''pitch'' in these tables means ''inter-cog center-to-center spacing.''</caption> <tr style="text-align:center;"> <td rowspan=2 colspan=2 style="text-align:left; border:1px solid gray;">&nbsp;</td> <td colspan=12 style="border:1px solid gray;">Rear Mechanism</td> </tr> <tr style="text-align:center;"> <td colspan=2 style=" border:1px solid gray;">Shimano</td> <td colspan=2 style=" border:1px solid gray;">old Dura-ace</td> <td colspan=2 style=" border:1px solid gray;">Hubbub</td> <td colspan=2 style=" border:1px solid gray;">New<br>Campagnolo</td> <td colspan=2 style=" border:1px solid gray;">Old<br>Campagnolo</td> <td colspan=2 style=" border:1px solid gray;">SRAM (1:1)</td> </tr> <tr style="text-align:center;"> <td colspan=2 style="text-align:center; border:1px solid gray;">Derailleur Shift Ratios</td> <td style=" border:1px solid gray;">1.7</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">1.9</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">1.6</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">1.5</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">1.4</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">1.1</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shifter</td> <td style=" border:1px solid gray;">Cable Pull</td> <td style=" border:1px solid gray;">Pitch</td> <td style=" border:1px solid gray;">Code</td> <td style=" border:1px solid gray;">Pitch</td> <td style=" border:1px solid gray;">Code</td> <td style=" border:1px solid gray;">Pitch</td> <td style=" border:1px solid gray;">Code</td> <td style=" border:1px solid gray;">Pitch</td> <td style=" border:1px solid gray;">Code</td> <td style=" border:1px solid gray;">Pitch</td> <td style=" border:1px solid gray;">Code</td> <td style=" border:1px solid gray;">Pitch</td> <td style=" border:1px solid gray;">Code</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">(mm)</td> <td style=" border:1px solid gray;">(mm)</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">(mm)</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">(mm)</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">(mm)</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">(mm)</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">(mm)</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 6</td> <td style=" border:1px solid gray;">3.2</td> <td style="background:rgb(219,245,156);{{Text default color}};border:1px solid gray;">5.5</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S5/6</td> <td style=" border:1px solid gray;">6.07</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.98</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S7/C8</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.76</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S8</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.56</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">C9</td> <td style=" border:1px solid gray;">3.54</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 7</td> <td style=" border:1px solid gray;">2.9</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">5.0</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S7</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">5.52</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S5/6</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.53</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">C9</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.33</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S9</td> <td style="background:pink;{{Text default color}};; border:1px solid gray;">4.14</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">C10</td> <td style=" border:1px solid gray;">3.22</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 8</td> <td style=" border:1px solid gray;">2.8</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.8</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S8</td> <td style=" border:1px solid gray;">5.30</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.35</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S9</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.16</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">C10</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">3.98</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S10</td> <td style=" border:1px solid gray;">3.09</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 9</td> <td style=" border:1px solid gray;">2.5</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.35</td> <td style="background:rgb(219,245,156);{{Text default color}};border:1px solid gray;">S9</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.80</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S8</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">3.94</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S10</td> <td style=" border:1px solid gray;">3.77</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">3.60</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">2.80</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Shimano 10</td> <td style=" border:1px solid gray;">2.3</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">3.95</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S10</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.36</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S9</td> <td style=" border:1px solid gray;">3.58</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">3.42</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">3.27</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">2.55</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo 8</td> <td style=" border:1px solid gray;">3.5</td> <td style=" border:1px solid gray;">6.03</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">6.66</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">5.47</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S5/6</td> <td style=" border:1px solid gray;">5.22</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">5.00</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S7/C8</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">3.89</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S10</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo old 9</td> <td style=" border:1px solid gray;">3.2</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">5.49</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S5/6</td> <td style=" border:1px solid gray;">6.06</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.98</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S7</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.75</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S8</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.55</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">C9</td> <td style=" border:1px solid gray;">3.54</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo new 9</td> <td style=" border:1px solid gray;">3.0</td> <td style=" border:1px solid gray;">5.26</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">5.80</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.76</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S8</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.55</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">C9</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.36</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S9</td> <td style=" border:1px solid gray;">3.39</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo 10</td> <td style=" border:1px solid gray;">2.8</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.79</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S8</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">5.29</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S5/6</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.34</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S9</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.15</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">C10</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">3.97</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S10</td> <td style=" border:1px solid gray;">3.09</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Campagnolo 11</td> <td style=" border:1px solid gray;">2.6</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.48</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S9</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.94</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S7/8</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">4.05</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S10</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">3.85</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">C11</td> <td style=" border:1px solid gray;">3.70</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">2.83</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (1:1) 7</td> <td style=" border:1px solid gray;">4.5</td> <td style=" border:1px solid gray;">7.76</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">8.56</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">7.03</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">6.43</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">5.00</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S7</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (1:1) 8</td> <td style=" border:1px solid gray;">4.3</td> <td style=" border:1px solid gray;">7.45</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">8.22</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">6.75</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">6.45</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">6.17</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.80</td> <td style="background:rgb(219,245,156);{{Text default color}};border:1px solid gray;">S8</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (1:1) 9</td> <td style=" border:1px solid gray;">4.0</td> <td style=" border:1px solid gray;">6.75</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">7.45</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">6.12</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">5.84</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">5.59</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.35</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S9</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (1:1 - Exact Actuation) 10</td> <td style=" border:1px solid gray;">3.1</td> <td style=" border:1px solid gray;">5.27</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">5.89</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">4.96</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">4.65</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">4.34</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">3.9 (1.25:1)</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S10</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (2:1) 7</td> <td style=" border:1px solid gray;">2.9</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">5.0</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S7</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">5.52</td> <td style="background:lemonchiffon;{{Text default color}}; border:1px solid gray;">S5/6</td> <td style="background:pink; border:1px solid gray;{{Text default color}};">4.53</td> <td style="background:pink; border:1px solid gray;{{Text default color}};">C9</td> <td style="background:pink; border:1px solid gray;{{Text default color}};">4.33</td> <td style="background:pink; border:1px solid gray;{{Text default color}};">S9</td> <td style="background:pink; border:1px solid gray;{{Text default color}};">4.14</td> <td style="background:pink; border:1px solid gray;{{Text default color}};">C10</td> <td style=" border:1px solid gray;">3.22</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (2:1) 8</td> <td style=" border:1px solid gray;">2.8</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.8</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S8</td> <td style=" border:1px solid gray;">5.30</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.35</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S9</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">4.16</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">C10</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">3.98</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S10</td> <td style=" border:1px solid gray;">3.09</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SRAM (2:1) 9</td> <td style=" border:1px solid gray;">2.5</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.35</td> <td style="background:rgb(219,245,156);{{Text default color}};border:1px solid gray;">S9</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">4.80</td> <td style="background:rgb(219,245,156);{{Text default color}}; border:1px solid gray;">S8</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">3.94</td> <td style="background:pink;{{Text default color}}; border:1px solid gray;">S10</td> <td style=" border:1px solid gray;">3.77</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">3.60</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">2.80</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> </table> <table align=center> <tr style="text-align:center;border:none;"> <td colspan=2 style="text-align:left;">COLOR CODE</td> <td>&nbsp;</td> <td colspan=4 style="background:rgb(219,245,156);{{Text default color}};">OK since designed to match</td> <td>&nbsp;</td> <td colspan=4 style="background:lemonchiffon;{{Text default color}};">OK but unused shifter positions</td> <td>&nbsp;</td> <td colspan=4 style="background:pink;{{Text default color}};">OK but needs cassette shortened</td> </tr> </table> <br clear=all> Tables 1 and 4 give the means to predict whether or not rear-gear shifting will work with various combinations of shifters, derailleurs, and cogs. Because of the size limitations and difficulty in modifying freewheels, '''these tables refer in the main to CASSETTES'''. The emphasis here is on ''closeness of pitch'', and other practical factors might still need to be considered. The pitch of common cog-sets is given in one table and the derailleur shift data is given in another. The shift data is divided into four main categories: ;GREEN Colors:'''''These show the resultant derailleur shift in millimeters when the shifter, derailleur, and cogs of one manufacturer are used together. This is the ideal situation.''''' For example, the Shimano 10-speed shifter with a cable pull of 2.3mm is applied to a Shimano derailleur with a shift ratio of 1.7, resulting in a shift (2.3mm x 1.7) of 3.91mm. Allowing for the precision of the available data this fits the Shimano 10-speed cog-set pitch of 3.95mm well, and the shifting is considered to be ideal. ;YELLOW Colors:'''''These give the resultant derailleur shift in millimeters when other than the ideal combination is used, and are characterized by having an intact set of cogs, but unused positions on the shifter when the modification is complete.'''''(But see Campagnolo 'old and new'). The pitch that is produced works well enough with the alternative cog-set. For example, the Campagnolo 10-speed shifter with a cable pull of 2.8mm is applied to a Shimano derailleur with a shift ratio of 1.7, resulting in a shift (2.8mm x 1.7) of 4.76mm. Allowing for the precision of the available data this fits the Shimano 8-speed cog-set pitch of 4.80mm well. That is to say, the Campagnolo 10-speed shifter could be used with the Shimano derailleur provided that there was an 8-speed Shimano cog-set installed. The other two positions on the shifter would remain unused, excluded by adjusting the limit stops of the derailleur. ;RED Colors:'''''These give the resultant derailleur shift in millimeters when other than the ideal combination is used, and although the shifter range will be correct, they need some cogs to be left off the cassette assembly.''''' The pitch that is produced works well enough with the specified cog-set. For example, the Campagnolo 8-speed shifter with a cable pull of 3.5mm is applied to a SRAM (1.0) derailleur with a shift ratio of 1.1, resulting in a shift (3.5mm x 1.1) of 3.85mm. Allowing for the precision of the available data this fits the Shimano S10 cog-set pitch of 3.95mm well. That is to say, the cog-set can be assembled using eight of the Shimano 10-speed cogs and seven of its spacers. ;OTHER Shift Data:''''' Data other than those with green, yellow, or red coloring would not index correctly.''''' That said, there are some other Shimano combinations that can be applied to a Shimano 7-speed freehub. The set can be extended to eight cogs if S9 cogs form the cassette, and a 9-speed shifter and chain are used. Similar results can be obtained for nine cogs on a 7-speed freehub if S10 is used for the assembly, and a 10-speed shifter and chain are used. In each of these two cases the unused positions on the shifters are blocked by the adjustment of the derailleurs' limit stops. 7 August 2011 ===SRAM Rear Shifter Families (2:1 or 1:1)=== The SRAM manufacturer makes two families of gear shifters. The families differ too greatly to be interchanged in rear-shifting. One is Shimano compatible (called 2:1) and one is not; (called 1:1). The 1:1 shifters are designed for SRAM's own (native) 1:1 rear derailleur family, and can also be used with modified numbers of shifts, for their front derailleurs and the front derailleurs of Shimano. See the compatibility details for rear shifting in table 5. <table style="width:50%; border:1.5px solid gray;border-bottom:2px solid gray; border-collapse:collapse;background:mintcream;{{Text default color}};text-align:center;" cellpadding=5px align=center> <caption>'''TABLE FOR REAR SHIFTING ONLY'''<br>Table 5: SRAM Rear Shifter Families</caption> <tr style="text-align:center;"> <td style="width:50%; text-align:center; border:1px solid gray;">'''SRAM Shifter Designation...'''</td> <td style="width:50%; border:1px solid gray;">'''...For Rear Derailleur Family'''</td> </tr> <tr> <td colspan=2 style="text-align:center; border:1px solid gray;">'''SRAM Trigger Shifters'''</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Attack (8/9 speeds)</td> <td style=" border:1px solid gray;">Shimano compatible 2:1</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Rocket</td> <td style=" border:1px solid gray;">Shimano compatible 2:1</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">TRX (7/8 speeds)</td> <td style=" border:1px solid gray;">Shimano compatible 2:1</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Via</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X-3 (7 speed)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X-4 (8 speed)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X-5 (8/9 speeds)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X-7 (9 speed)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X-7 (10 speed exact actuation)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X-9 (9 speed)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr> <td colspan=3 style="text-align:center; border:1px solid gray;">'''SRAM Twist Shifters'''</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">3.0 Comp (7/8 speeds)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">3.0 MRX comp (7/8 speeds)</td> <td style=" border:1px solid gray;">Shimano compatible 2:1</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Centera (8/9 speeds)</td> <td style=" border:1px solid gray;">Shimano compatible 2:1</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">MRX Pro(7/8/9 speeds)</td> <td style=" border:1px solid gray;">Shimano compatible 2:1</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X.0 (8/9 speeds)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X.5 (8/9 speeds)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X.7 (9 speed)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">X.9 (9 speed)</td> <td style=" border:1px solid gray;">SRAM 1:1 only</td> </tr> </table> <br><br> ==FRONT SHIFTING TABLES== The following table is intended for data collection. If it is successful it will form a useful collaborative effort in writing. As the heading shows it is for ''Shimano road front shifting'', not because of any preference for their products but because they have different cable-pull standards for their front road shifters, compared to their MTB front shifters, and the matter is poorly documented. It might be of interest to know that Shimano's ''rear'' shifter cable pulls are the same for road and MTB of a given speed, except for 10 speed. The Dyna-Sys mark denotes the different 10 speed MTB cable pull. Dyna-Sys rear derailleurs can only be used with Dyna-Sys shifters for 10 speed, or SRAM 9 speed MTB shifters for 9 speed. Interested parties should please add data using a full set of measurements taken from the same well-working, drop-handlebar, road bicycle. In this way it is hoped that data comparable to that available for rear-shifting can be tabulated. If readers are uncomfortable about entering data into the table directly, please just place the data in the discussion text (see page top, and don't forget to save), and an editor will complete the entries or straighten out the table as necessary. <table style="width:70%; border:1.5px solid gray;border-bottom:2px solid gray; border-collapse:collapse;background:mintcream;{{Text default color}};text-align:center;" cellpadding=5px align=center> <caption>'''TABLE FOR SHIMANO FRONT ROAD SHIFTING ONLY'''<br>Table 6: Raw Data from Individual Contributors for Shimano Front Road Shifting</caption> <tr style="text-align:center;"> <td style="width:20%; text-align:center; border:1px solid gray;">Front Shifter</td> <td style="width:13%; text-align:center; border:1px solid gray;">Number of Rear Cogs<br>or Hub Gear Type</td> <td style="width:13%; border:1px solid gray;">(A)<br>Front Cable Pull (mm)</td> <td style="width:13%; border:1px solid gray;">Model of<br>Front Derailleur</td> <td style="width:13%; text-align:center; border:1px solid gray;">(B)<br>Chainring Spacing<br> Center to Center<br>(mm)</td> <td style="width:13%; border:1px solid gray;">Double or Triple Rings?<br>(Enter D or T)</td> <td style="width:13%; border:1px solid gray;">(C)<br>Calculated Derailleur<br>Shift Ratio<br>(Enter C = A/B)</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">RapidFire Plus flat bar Shifter</td> <td style=" border:1px solid gray;">9</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">EZ Fire Brake/Shift flat bar lever</td> <td style=" border:1px solid gray;">8</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">SL flat bar Shifter</td> <td style=" border:1px solid gray;">9</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">2300 Shifter</td> <td style=" border:1px solid gray;">8</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">105 Shifter</td> <td style=" border:1px solid gray;">10</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Sora Shifter</td> <td style=" border:1px solid gray;">9</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Tiagra Shifter</td> <td style=" border:1px solid gray;">9</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Tiagra 10s ST-4600</td> <td style=" border:1px solid gray;">10</td> <td style=" border:1px solid gray;">~9.5mm (bit less than 10mm)</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">D</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">Ultegra Shifter</td> <td style=" border:1px solid gray;">10</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> <tr style="text-align:center;"> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style="text-align:left; border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> <td style=" border:1px solid gray;">&nbsp;</td> </tr> </table> <br clear=all> ===Chain-ring Pitch=== ===Chain-ring Thickness and Spacing=== ===Front Shift Ratios=== The notion of shift ratio, the ratio of cable pull to the distance that the derailleur moves across the chain-rings is primarily of interest for ''indexed shifting'', as opposed to ''friction shifting''. Regrettably, manufacturers give no more information for front shifting than they do for rear shifting, and user data is scarce. The few facts that are available are these. *'''SRAM Front Derailleurs''': The native SRAM shift ratio for its front and rear gear is in fact about 1.1, as opposed to the 1:1 family's implied unity. In general, SRAM shifters that are made for the 1:1 family can be used with native SRAM front and rear derailleurs, provided of course that they have the correct number of speeds. *'''Shimano Front Derailleurs''': Shimano makes use of indexed front shifting. The Shimano shift ratio for front derailleurs is close to that of SRAM's 1:1 family, ie, unity or 1.1, (one-point-one). Note that this differs considerably from their rear derailleur ratios of 1.7. Although this fact is not specified by Shimano, because SRAM advertises 1:1 shifters for their rear shifting as being suitable for Shimano's front derailleurs, the assumed shift ratio of unity seems reasonable. Shimano's front shifters however, differ for road and MTB use; a discussion at [http://www.ctc.org.uk/desktopdefault.aspx?tabid=4068 '''CTC on Front Shifting'''] implies that an MTB pulls 9.75mm of cable for a front shift whereas a road shifter pulls only 6.75mm; some 3mm less than the MTB. *'''Campagnolo Front Shifters''': No information as yet. An excessive cable pull on a two-chainring bike might still work if it is recalled that the limit stops of the front derailleur can be ''brought in'' to restrict any excessive cage travel. In this way the shifting is not really indexed, and perhaps a bit heavy, but might function just the same. Attempting the same thing with three chain-rings is unlikely to work well. For this, indexed shifting is much preferred. ===Shifter Cable Pull=== The rear shifter cable pull is not the same for each gear shift. Since the rear derailleur swings in an arc, the shifts to lower gears (bigger cogs) will require more and more cable pull to move the derailleur the same amount. The figures given above for cable pull are an average over the range of gears. For example an average cable pull of 3.1mm per shift may range from 3.6mm in the lowest gear shift to about 2.5mm for the highest gear shift. ====Front MTB Shifters==== ====Front Road Shifters==== ===Front Shifting Modifications=== ==CHAIN EXTERNAL WIDTHS== 05 speed - 7.8mm (all brands)<br> 06 speed - 7.8mm (all brands)<br> 07 speed - 7.3mm (all brands)<br> Regina 8 speed = 7.2mm wide (Extra Super Racing)<br> KMC 7/8 speed = 7.1mm (KMC model Z8.1) to 7.3mm (KMC models X8, Z8.3) wide<br> KMC 9 speed = 6.6mm wide<br> KMC 10 speed = 5.88mm wide<br> SACHS/SEDIS (std) 7/8 speed = 7.3mm<br> SACHS/SEDIS (pro) 8 speed = 6.99mm wide (for MAVIC & recommended alternative for Campagnolo)<br> Shimano IG 8 speed = 7.1mm wide<br> Shimano HG 8 speed = 7.4mm wide (CN-7401)<br> Shimano HG 9 speed = 6.6mm wide<br> Shimano HG 10 speed = 6.2mm wide (Narrow)<br> Shimano HG 10 speed = 5.88mm wide (Narrow, Directional)<br> Shimano HG 11 speed = 5.62mm wide (Shimano Dura-Ace)<br> SRAM 8 speed = 7.02mm wide<br> SRAM 9 speed = 6.9mm wide<br> SRAM 10 speed = 5.88mm wide<br> SRAM 11 speed = 5.62mm wide<br> SRAM 12 speed = 5.25mm wide<br> Rohloff 8 speed = 7.1mm wide<br> Rohloff 9 speed = 6.8mm wide<br> Campy 8 speed = 6.85mm wide (Contax Chain CN-CA68S)<br> Campy 9 speed = 6.8mm wide<br> Campy 10 speed = 6.2mm wide (C10 - pre 2006) [also stated 6.1mm wide?]<br> Campy 10 speed = 5.88mm wide (Ultra Narrow - post 2006)<br> Campy 11 speed = 5.5mm (Campagnolo CN-RE500 'Ultralink')<br> ==See Also== ==External Links== *[http://www.campagnolo.com/jsp/en/doc/doccatid_1.jsp ''' ''Campagnolo Technical Documentation'' by Campagnolo'''] *[http://www.sram.com/service '''''SRAM Service Page Links'' by SRAM'''] *[http://www.sram.com/sites/default/files/techdocs/my10-sram-tech-manual-rev-a.pdf ''' ''SRAM Tech Manual 2010'' by SRAM'''] *[http://techdocs.shimano.com/techdocs/index.jsp '''''SHIMANO techdocs links'' by Shimano'''] *[http://www.sram.com/sram '''SRAM Main Product Page''']: The SRAM manufacturer's products page. *[http://www.ctc.org.uk/DesktopDefault.aspx?TabID=3946 '''CTC on Rear Shifting''']: Commentary on rear shifting matters and in particular modifications, by the leading British cycling association. (Link is dead. Latest working link on archive.org is from 20121028021740.) cz8jlninqijwkk7gv46kqfv7ugll1tj On 2D Inverse Problems/Overview 0 279399 4675487 3039314 2026-10-11T03:05:44Z DVD206 724793 further volumes 4675487 wikitext text/x-wiki The inverse problems, that are the main objects of this book, have their roots in the study of the relationships between local and global properties of the embedded graphs and surfaces. The two-dimensional setting has an important structure, due to the duality b/w the harmonic conjugate functions and the connection to classical special matrices, that can be viewed as two-dimensional objects. Also, the dimension of the unknown parameter fits the dimension of the measurement data in several important instances of the inverse problems. [[File:DN approximation (1).jpg|thumbnail|Discretisation technique]] The solutions of the inverse problems are presented in a way bridging the discrete and continuous settings. The techniques of solutions are motivated by the following commutative diagram: [[File:Discrete and Contiuous Inverse problems.jpg|thumbnail|center|Calculation scheme]] The context of the inverse problems provides a unified point of view on the work of many great mathematicians, and even though there are references to many areas of mathematics in this book, it is practically self-contained, and is intended for a wide audience of readers interested in the subject. There are exercises, ranked by difficulty, through most of the chapters of the book, and it can be used as a textbook for an applied mathematics class. In the later volumes we'll discuss the connection and relationship between the spectrum of the operator <math>\partial_s^2=(\partial_\theta+ln(s))^2</math> and its Dirichlet-to-Neumann map (eigenvalues of the monodromy with singularity at the origin) and eta and zeta zeros (trivial and non-trivial kernels of the operator <math>\Lambda_s\Rightarrow\Lambda^s</math> and the function <math>\det(\Lambda_s)</math>. {{BookCat}} lm8pxqvcnbxpz06czydvi3g7ytzjawe 4675488 4675487 2026-10-11T03:07:41Z DVD206 724793 interior and boundary, inside and outside and in between surface interface 4675488 wikitext text/x-wiki The inverse problems, that are the main objects of this book, have their roots in the study of the relationships between local and global properties of the embedded graphs and surfaces. The two-dimensional setting has an important structure, due to the duality b/w the harmonic conjugate functions and the connection to classical special matrices, that can be viewed as two-dimensional objects. Also, the dimension of the unknown parameter fits the dimension of the measurement data in several important instances of the inverse problems. [[File:DN approximation (1).jpg|thumbnail|Discretisation technique]] The solutions of the inverse problems are presented in a way bridging the discrete and continuous settings. The techniques of solutions are motivated by the following commutative diagram: [[File:Discrete and Contiuous Inverse problems.jpg|thumbnail|center|Calculation scheme]] The context of the inverse problems provides a unified point of view on the work of many great mathematicians, and even though there are references to many areas of mathematics in this book, it is practically self-contained, and is intended for a wide audience of readers interested in the subject. There are exercises, ranked by difficulty, through most of the chapters of the book, and it can be used as a textbook for an applied mathematics class. In the later volumes we'll discuss the connection and relationship between the spectrum of the interior operator <math>\partial_s^2=(\partial_\theta+ln(s))^2</math> and its boundary data Dirichlet-to-Neumann map (eigenvalues of the monodromy with singularity at the origin) and eta and zeta zeros (trivial and non-trivial kernels of the operator <math>\Lambda_s\Rightarrow\Lambda^s</math> and the function <math>\det(\Lambda_s)</math>. {{BookCat}} eodo49lmseyr0vrdet5buumqeq4ag7s Aros/Platforms/Arm Raspberry Pi support 0 286123 4675453 4675435 2026-10-10T14:52:49Z Jeff1138 301139 4675453 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] [[#Future]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 512Mb+ RAM Options to boot from using a good power source to prevent the yellow lightning symbol. *With Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c * Pi500+ keyboard wedge - working * Pi500 wedge with up to date bootloader via PiOS - working * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 C1 (Rev1.0) - untested * Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing - * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with '''fan''' to prevent overheating cpu 82C+ throttling * Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past], * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] ====64bit==== '''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository] [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate. 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2138&pid=15057#post_15057 Aros forum thread], [https://forums.raspberrypi.com/viewforum.php?f=179 Raspberry Pi Aros Dev and User forums], [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 previous Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix] Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Pi 3 B+ is pre-configured for USB sata3 boot - untested Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card Speed write wise (top faster) <pre> *NVME Pi5 untested >1000MB/sec or faster if matched correctly *Sata3 ssd 500MB/sec *SD V90 90MB/sec 4K maybe 8K *SD V60 60MB/sec 1080p *SD U3 V30 30MB/sec 720p *SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now *SD C06 6MB/sec *SD C04 4MB/sec </pre> As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again. Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off *if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again *...waiting for an address - Disconnect and try Connect Until, Connected to <router> - 192.168.x.x For lan ethernet port, please use Network prefs and the following hardware is *lan9514 Pi3b Pi2 not supported at the moment *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device * Pi5 Pi500 Pi500+ RP1 i/o (network prefs may forget random information when rebooted) Summary <pre> *3b ethernet not supported, usb ethernet not working but wifi prefs setup works *3b+ wifi working and ethernet works *4 untested *400 wifi and ethernet untested *5 wifi and ethernet untested *500 wifi and ethernet untested *500+ wifi works </pre> Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications. [http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load or resolve (no JIT) and nothing from facebook, reddit etc. Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29), 300 (1.31), 311 (1.33) out of 555, some bigger Amiga like browsers are around 370+ but it does less better. You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space. Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again youtube video and audio - js button for javascript must be on/shaded - Settings -> Soundoutput - AHI Telegram https://t.me/s/channel_name for public messages from vamped_amiga chatamigagames demoscenecracktros *art local js apps like dpaint.js There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 <pre> *bthid keyboard mouse support *btserial serial *btpan short range wireless connecting devices </pre> Only the Pi5 has a RTC real time clock, the other Pis will need to use ntp services time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://github.com/bohunamiga/PiNTP PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc with dtoverlay=i2c-rtc,ds3231 in config.txt] It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen. USB classes support from Prefs/Trident is still work in process *usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w *[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+]. Alternative of [https://homspace.nl/samplerbox/ SamplerBox]. Will need developer clang gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity], Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] *[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi. In the shell (Cntrl + C to end) GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test''' *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] Youtube [], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros... {| class="wikitable sortable" width="90%" ! width="10%" |Pi ! width="10%" |Single Core 2D ! width="10%" |Single Core 3D ! width="10%" |Single Core 3D ! width="10%" |SMP 2D ! width="10%" |SMP 3D ! width="10%" |SMP 3D ! width="35%" |Comments |- | <!--Pi-->Pi3 | <!--Single Core 2D--> | <!--Single Core 3D--> | <!--Single Core 3D--> | <!--SMP 2D--> | <!--SMP 3D--> | <!--SMP 3D--> | <!--Comments--> |- |} ==== 32bit ==== For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build] [https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 From the Aros Raspberry pi 3 64bit thread] Instructions on building 64-bit Raspberry Pi AROS and cross-compiler from sources. You will need: - Ubuntu 24.04 or 26.04 - qemu-system-aarch64 installed - Internet connection - rpi-scripts.tar.gz downloaded (https://axrt.org/download/aros/rpi/rpi-scripts.tar.gz) 1) Install prerequisites: sudo apt install git gcc g++ make gawk bison flex bzip2 netpbm autoconf automake libc6-dev liblzo2-dev libpng-dev gcc-multilib byacc python3-mako cmake yasm curl nasm 2) Clone sources cd <project-directory> git clone https://github.com/aros-development-team/AROS.git --recurse-submodules 3) Extract rpi-scripts.tar.gz. Copy all files into your project directory so that you have: AROS (the directory with cloned sources) fix-dotdot.py rebuild.sh recreate-sdcard.sh run-qemu.sh update-sdcard.sh 4) Run ./rebuild.sh. Select option 1) toolchain-core-aarch64 This will execute process of building a cross-compiler. During this process packages will be downloaded from Internet. This process can take up to 2 hours. If there are some missing dependencies, install them with 'sudo apt install' and restart this step. 5) Run ./rebuild.sh again. Select option 2) core-raspi-aarch64 This will build system files for 64-bit Raspberry Pi AROS. This process can take around an hour. 6) Run ./recreate-sdcard.sh This will create an sdcard.img file with contents of previous step. 7) Run ./run-qemu.sh This will start QEMU with SD card image and ROM images. It will boot into AROS. =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only. *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs no LLMs *2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better? [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues *2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design *Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. h264/x264 as Pi3 All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. GPU VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) So far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Kickstart The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). USB Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs. The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface. Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions. [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[ PiMiga for pi4 and pi5] *[ amibian for pi2 and pi3] *[ retropie pi1 and 2] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Green BentoIO CMX0 - untested *Box EDATec ED-CLAWBOX - untested *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *[https://carboncomputers.us/products/pi-flux piFlux] *[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only - *Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02 *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted *Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs? CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2021-48 Raspberry Pi 4 model B v1.5 2GB 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> The vcgencmd can be used to inspect and dump the current system configuration. vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC. VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware. Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest] A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware. The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support. Hopefully, never/limited support features like location, peer-to-peer, invasive web apps, unwarranted storage, payments, proprietary video streaming etc *spreadsheet [https://git.sheetjs.com/sheetjs/sheetjs sheetjs] [https://github.com/mleibman/SlickGrid SlickGrid] [https://github.com/6pac/SlickGrid SlickGrid] [https://github.com/jspreadsheet/ce jspreadsheet ce] [https://github.com/dream-num/Luckysheet Luckysheet] [https://github.com/ruilisi/fortune-sheet fortune-sheet] [https://github.com/dream-num/univer/ univer] probably without xlsx support *presentations [https://github.com/impress/impress.js/ impress.js simplified] [https://github.com/bwlewis/slides slides] [https://zenomt.github.io/mdslides/ github markdown slides] [https://github.com/Patternslib/slides Patternslib slides markdown] probably without pptx support *weather [https://github.com/kaushalsahu07/weather weather], [https://github.com/Himanshu3412/Weather-Forecast Weather Forecast], ==Future== [https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2] {{BookCat}} 8jmyemtn3yzma3jxl0pgqdan800invr 4675508 4675453 2026-10-11T11:00:14Z Jeff1138 301139 4675508 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] [[#Future]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 512Mb+ RAM Options to boot from using a good power source to prevent the yellow lightning symbol. *With Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c * Pi500+ keyboard wedge - working * Pi500 wedge with up to date bootloader via PiOS - working * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 C1 (Rev1.0) - untested * Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing - * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with '''fan''' to prevent overheating cpu 82C+ throttling * Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past], * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] ====64bit==== '''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository] [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate. 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2138&pid=15057#post_15057 Aros forum thread], [https://forums.raspberrypi.com/viewforum.php?f=179 Raspberry Pi Aros Dev and User forums], [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 previous Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix] Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Pi 3 B+ is pre-configured for USB sata3 boot - untested Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card Speed write wise (top faster) <pre> *NVME Pi5 untested >1000MB/sec or faster if matched correctly *Sata3 ssd 500MB/sec *SD V90 90MB/sec 4K maybe 8K *SD V60 60MB/sec 1080p *SD U3 V30 30MB/sec 720p *SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now *SD C06 6MB/sec *SD C04 4MB/sec </pre> As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again. Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off *if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again *...waiting for an address - Disconnect and try Connect Until, Connected to <router> - 192.168.x.x For lan ethernet port, please use Network prefs and the following hardware is *lan9514 Pi3b Pi2 not supported at the moment *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device * Pi5 Pi500 Pi500+ RP1 i/o (network prefs may forget random information when rebooted) Summary <pre> *3b ethernet not supported, usb ethernet not working but wifi prefs setup works *3b+ wifi working and ethernet works *4 untested *400 wifi and ethernet untested *5 wifi and ethernet untested *500 wifi and ethernet untested *500+ wifi works </pre> Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications. [http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load or resolve (no JIT) and nothing from facebook, reddit etc. Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29), 300 (1.31), 311 (1.33) out of 555, some bigger Amiga like browsers are around 370+ but it does less better. You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space. Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again youtube video and audio - js button for javascript must be on/shaded - Settings -> Soundoutput - AHI Usually restricted to lower resolutions due to [https://docs.invidious.io/faq/#q-where-are-the-360p480p1080p-quality-options bandwidth] Telegram https://t.me/s/channel_name for public messages from vamped_amiga chatamigagames demoscenecracktros *art local js apps like dpaint.js There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 <pre> *bthid keyboard mouse support *btserial serial *btpan short range wireless connecting devices </pre> Only the Pi5 has a RTC real time clock, the other Pis will need to use ntp services time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://github.com/bohunamiga/PiNTP PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc with dtoverlay=i2c-rtc,ds3231 in config.txt] It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen. USB classes support from Prefs/Trident is still work in process *usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w *[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+]. Alternative of [https://homspace.nl/samplerbox/ SamplerBox]. Will need developer clang gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity], Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] *[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi. In the shell (Cntrl + C to end) GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test''' *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] Youtube [], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros... {| class="wikitable sortable" width="90%" ! width="10%" |Pi ! width="10%" |Single Core 2D ! width="10%" |Single Core 3D ! width="10%" |Single Core 3D ! width="10%" |SMP 2D ! width="10%" |SMP 3D ! width="10%" |SMP 3D ! width="35%" |Comments |- | <!--Pi-->Pi3 | <!--Single Core 2D--> | <!--Single Core 3D--> | <!--Single Core 3D--> | <!--SMP 2D--> | <!--SMP 3D--> | <!--SMP 3D--> | <!--Comments--> |- |} ==== 32bit ==== For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build] [https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 From the Aros Raspberry pi 3 64bit thread] Instructions on building 64-bit Raspberry Pi AROS and cross-compiler from sources. You will need: - Ubuntu 24.04 or 26.04 - qemu-system-aarch64 installed - Internet connection - rpi-scripts.tar.gz downloaded (https://axrt.org/download/aros/rpi/rpi-scripts.tar.gz) 1) Install prerequisites: sudo apt install git gcc g++ make gawk bison flex bzip2 netpbm autoconf automake libc6-dev liblzo2-dev libpng-dev gcc-multilib byacc python3-mako cmake yasm curl nasm 2) Clone sources cd <project-directory> git clone https://github.com/aros-development-team/AROS.git --recurse-submodules 3) Extract rpi-scripts.tar.gz. Copy all files into your project directory so that you have: AROS (the directory with cloned sources) fix-dotdot.py rebuild.sh recreate-sdcard.sh run-qemu.sh update-sdcard.sh 4) Run ./rebuild.sh. Select option 1) toolchain-core-aarch64 This will execute process of building a cross-compiler. During this process packages will be downloaded from Internet. This process can take up to 2 hours. If there are some missing dependencies, install them with 'sudo apt install' and restart this step. 5) Run ./rebuild.sh again. Select option 2) core-raspi-aarch64 This will build system files for 64-bit Raspberry Pi AROS. This process can take around an hour. 6) Run ./recreate-sdcard.sh This will create an sdcard.img file with contents of previous step. 7) Run ./run-qemu.sh This will start QEMU with SD card image and ROM images. It will boot into AROS. =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only. *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs no LLMs *2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better? [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues *2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design *Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. h264/x264 as Pi3 All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. GPU VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) So far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Kickstart The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). USB Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs. The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface. Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions. [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[ PiMiga for pi4 and pi5] *[ amibian for pi2 and pi3] *[ retropie pi1 and 2] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Green BentoIO CMX0 - untested *Box EDATec ED-CLAWBOX - untested *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *[https://carboncomputers.us/products/pi-flux piFlux] *[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only - *Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02 *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted *Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs? CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2021-48 Raspberry Pi 4 model B v1.5 2GB 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> The vcgencmd can be used to inspect and dump the current system configuration. vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC. VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware. Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest] A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware. The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support. Hopefully, never/limited support features like location, peer-to-peer, invasive web apps, unwarranted storage, payments, proprietary video streaming etc *spreadsheet [https://git.sheetjs.com/sheetjs/sheetjs sheetjs] [https://github.com/mleibman/SlickGrid SlickGrid] [https://github.com/6pac/SlickGrid SlickGrid] [https://github.com/jspreadsheet/ce jspreadsheet ce] [https://github.com/dream-num/Luckysheet Luckysheet] [https://github.com/ruilisi/fortune-sheet fortune-sheet] [https://github.com/dream-num/univer/ univer] probably without xlsx support *presentations [https://github.com/impress/impress.js/ impress.js simplified] [https://github.com/bwlewis/slides slides] [https://zenomt.github.io/mdslides/ github markdown slides] [https://github.com/Patternslib/slides Patternslib slides markdown] probably without pptx support *weather [https://github.com/kaushalsahu07/weather weather], [https://github.com/Himanshu3412/Weather-Forecast Weather Forecast], ==Future== [https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2] {{BookCat}} rg1dhughge5mive12e2kjqtnbobr4w3 Koine Greek/Declining 1st and 2nd Declension Nouns 0 297346 4675490 4672595 2026-10-11T03:56:36Z It-is-Truly-Meet 3624460 /* First and Second Declension Nouns */ 4675490 wikitext text/x-wiki ==Stems== The '''stem''' of a word is that part of it which remains substantially unchanged through varieties of '''inflection'''. Nouns, adjectives and pronouns are 'declined'; verbs are 'conjugated' by the help of prefixes or terminations added to the stem, which may itself be variously modified, but can always be traced, and contains the main idea of the word. To know this stem, therefore, is an essential preliminary to the study of the inflections. The stems of words shall in this section be distinguished by dark letters, and in general by an appended hyphen, as the stem in itself is incomplete, requiring some kind of addition before it becomes a ''word''. == First and Second Declension Nouns == A declension is a group of nouns, adjectives, or pronouns that all form their gender, number, or case in the same way or in similar ways. In ancient Greek, to change the case, gender, or number, all you need to do is change the case ending. There are three declensions in ancient Greek. Since Greek nouns most commonly use two numbers (singular, plural) and four cases (nominative, genitive, dative, accusative), they need 8 different endings to cover all the possibilities. The second declension only has two sets of endings: singular/plural masculine, and singular/plural neuter. So, to show that the word 'λόγος' is the target (accusative) of the action in a sentence, you would say 'λόγον' ('λόγος' is translated as 'word,' 'reason,' or 'account' (among others)). * γράφω λόγ'''ον'''. — I write a '''word'''. * γράφω λόγ'''ους'''. — I write '''words'''. Now, it might seem that “λόγος” should be neuter, since it is an inanimate object. But, in Greek, each word has a gender, and unless referring to a human, it does not indicate actual gender. In Greek lexicons, the gender of a word is shown by writing the definite article with the same gender as the word after the word. So, to show that λογός is declined masculinely, the lexicon says "λόγός, ὁ.". The gender also helps to identify what adjectives, or other nouns, may be related to each other. In the dative singular under the alpha, there is a small mark called "the iota subscript," an iota written under either α, η, or ω, which helps to identify the function of the word, often signalling the dative case. When a Greek word with an iota subscript is written in capitals, the iota is promoted to the main line, following its vowel. === First Declension Noun Endings === {| class="wikitable" ! rowspan=2|Case ! colspan=2|Masculine ! colspan=2|Feminine |- ! Singular ! Plural ! Singular ! Plural |- ! Nom. | -ᾱς / -ης | -αι | -ᾱ / -η | -αι |- ! Gen. | -ου | -ῶν | -ας / -ης | -ῶν |- ! Dat. | -ᾳ / -ῃ | -αις | -ᾳ / -ῃ | -αις |- ! Acc. | -αν / -ην | -ᾱς | -αν / -ην | -ᾱς |- ! Voc. | -ᾱ / -α | -αι | -ᾱ / -η | -αι |} First-declension nouns that preserve the 'α' are known as '''alpha-pure''', while those that do not are '''alpha-impure'''. Alpha-pure stems end in 'ι', 'ε', or 'ρ' * '''Pure''': ἡμέ<big>'''ρ'''</big>α, ἡ, -ᾳ * '''Impure''': δόξα, ἡ, -ῃ * '''Pure''': νεαν<big>'''ί'''</big>ας, ὁ, -ᾳ * '''Impure''': πολίτης, ὁ, -ῃ === Second Declension Noun Endings === {| class="wikitable" ! rowspan=2|Case ! colspan=2|Masculine ! colspan=2|Neuter |- ! Singular ! Plural ! Singular ! Plural |- ! Nom. | -ος | -οι | -ον | -α |- ! Gen. | -ου | -ων | -ου | -ων |- ! Dat. | -ῳ | -οις | -ῳ | -οις |- ! Acc. | -ον | -ους | -ον | -α |- ! Voc. | -ε | -οι | -ον | -α |} ===Translation=== The nominative case is usually translated as the word and the indefinite article. Words in this case are the sentence’s subject. For example, λόγος means “a word.” When the definite article is present, it becomes ὁ λόγος, meaning “the word.” The subject of the sentence generally has the definite article, while the predicate nominative does not. :: καὶ θεὸς ἦν '''ὁ λόγος'''. — and '''the Word''' was God (John 1.1). The genitive case is translated as “of.” It’s similar to the English possessive case. For instance, λόγου means “of a word.” :: ἡμεῖς δὲ τῇ προσευχῇ καὶ τῇ διακονίᾳ '''τοῦ λόγου''' προσκαρτερήσομεν. — But we will give ourselves continually to prayer, and to the ministry '''of the word''' (Acts 6.4). The dative case is translated as “to,” “for,” or “with.” It shows that the word is the indirect target of the action. For example, λόγῳ means “to, for, or with, a word.” :: οὐ γὰρ '''ἐν λόγῳ''' ἡ βασιλεία τοῦ θεοῦ ἀλλ᾽ ἐν δυνάμει. — For the kingdom of God is not '''in word''', but in power (1 Corinthians 4.20). The accusative case is usually translated as the word and the indefinite article. Words in this case are the sentence’s direct object. :: ὁ σπείρων '''τὸν λόγον''' σπείρει. — The sower soweth '''the word''' (Mark 4.14). The vocative case is translated as the word itself. It’s a direct address. For example, “λόγε” can be translated as “O word.” ===Major patterns=== # The genitive plural of all declensions in Greek (all nouns, pronouns, adjectives, verb participles, basically anything that can decline) end in ων. # The accusative and nominative of all neuter declensions in Greek are the same. # In all declensions, the dative case contains an ι, perhaps as an improper diphthong. ==Vocabulary== ===Second Declension Masculine=== * ἄγγελος, -ου: angel, messenger * ἀδελφός, -ου: brother (Phil'''adelphia''', the city of brotherly love) * ἄνθρωπος, -ου: man ('''anthropo'''logy, the study of humankind) * θεός, -ου: god ('''theo'''logy, the study of the divine) * κόσμος, -ου: world ('''cosmo'''logy, the study of the universe; '''cosmo'''politan, worldly) * κύριος, -ου: lord ('''kyrie''' eleison, "Lord have mercy", the beginning of the Mass) * λόγος, -ου: that which is said, or thought. Translated as word, but has deep meanings in philosophy (-'''logy''', the study of -; logic) * νόμος, -ου: law (astro'''nomy''', the law of the stars) * οὐρανός, -ου: heaven ('''Uranus''', the Greek god of the sky) * υἱός, -ου: son * ἀπόστολος, -ου: apostle, literally, one that is sent * διδάσκαλος, -ου: teacher ('''didactic''', intending to teach) ===Second Declension Neuter=== * ἔργον, -ου: work, deed ('''ergon'''omics) * ἱερόν, -οῦ: temple ('''hier'''archy, from ranking of angles, which derives from rule of the high priest) * πρόσωπον, -ου: face * τέκνον, -ου: child ===First Declension Feminine=== * ἀλήθεια, -ας: truth * ἁμαρτία, -ας: sin ('''hamarti'''ology) * βασιλεία, -ας: kingdom ('''basilica''') * ἡμέρα, -ας: day (ep'''hemera'''l) * καρδία, -ας: heart ('''cardi'''ology) * χαρά, -ας: grace ('''char'''ity) * γλῶσσα, -ης: tongue ('''glossa'''ry, poly'''glot''') * δόξα, -ης: glory ('''dox'''ology) * θάλασσα, -ης: sea ('''thalassic''') * ἀγάπη, -ης: love ('''agape''') * γῆ, -ῆς: earth, land, soil ('''ge'''ology) * ζωή, -ῆς: life ('''zo'''ology) . * φωνή, -ῆς: sound, voice (tele'''phone''') * ψυχή, -ῆς: soul ('''psych'''ology) {{BookCat}} 6itmlgyi620waqq5ojzxydde9tux91o User:Mahitgar/sandbox 2 303728 4675474 4592881 2026-10-10T23:07:59Z Omphalographer 3427146 relocated template 4675474 wikitext text/x-wiki {{User sandbox}} <!-- EDIT BELOW THIS LINE --> __NOTOC__ __NOEDITSECTION__ <!--कृपया येथे लिहिला जाणारा मजकूर ८००x६०० च्या पडद्यावर स्पष्ट दिसावा याची लेखकांनी काळजी घ्यावी--> <!-- यहाँ पर आप जो भी लिखें वह ८००x६०० स्क्रीन पर दिखाई दें ऐसा लिखें--> <!--Article writers may want to fit the contents of their article(s) for screen resolution of 800x600 (as general setting)--> {| Align="Center" Cellspacing="3" Width="100%" |- valign="top" |class="MainPageBG" colspan="2" style="border: 1px solid #AAAAAA; color: #000;background-color: #FAFAFA; border-bottom: 3px solid #FFCC00; margin-bottom:25px;"|<div style="padding: .4em .9em .9em"><h2 style="background-color:#eeeeee; border-bottom:3px solid #999999;color: #FF6E00">&nbsp;Learn Hinduism</h2> {{/Learn Hinduism/Top paragraph}} </div> |- | |-align="center" valign="top" |colspan="2"|<h3>Brief Index</h3>{{Wikibooks:Marathi language portal/brief index}} |- | |- valign="top" |width="50%" class="MainPageBG" style="border: 1px solid #AAAAAA; color: #000; background-color: #FAFAFA; border-bottom: 3px solid #FFCC00; margin-bottom:5px;"|<div style="padding: .4em .9em .9em"><h2 style="background-color: #EEEEEE; border-bottom:3px solid #999999;">&nbsp;Who can learn Marathi ?</h2>{{Wikibooks:Marathi language portal/audiance}}</div> |width="45%" class="MainPageBG"| {|width="100%" class="MainPageBG" style="border: 1px solid #AAAAAA; color: #000; background-color: #FAFAFA; border-bottom: 3px solid #FFCC00; margin-bottom:5px;" |<div style="padding: .4em .9em .9em"><h2 style="background-color: #EEEEEE; border-bottom:3px solid #999999;">&nbsp;Learn with pictures</h2>{{Wikibooks:Marathi language portal/Learn with pictures}}</div> |} {|width="100%" class="MainPageBG" style="border: 1px solid #AAAAAA; color: #000; background-color: #FAFAFA; border-bottom: 3px solid #FFCC00; margin-bottom:5px;" |<div style="padding: .4em .9em .9em"><h2 style="background-color: #EEEEEE; border-bottom:3px solid #999999;">&nbsp;[[Wikibooks:Marathi language portal/Learn with ease|Learn with ease]]</h2>{{Wikibooks:Marathi language portal/Learn with ease}}</div> |} |} {{Wikibooks:Marathi language portal/miscellaneous}} {| Align="Center" Cellspacing="3" Width="100%" |- valign="top" |class="MainPageBG" colspan="2" style="border: 1px solid #AAAAAA; color: #000;background-color: #FAFAFA; border-bottom: 3px solid #FFCC00; margin-bottom:25px;"|<div style="padding: .4em .9em .9em"><h2 style="background-color:#eeeeee; border-bottom:3px solid #999999;color: #FF6E00">&nbsp;तुम्ही काय करू शकता</h2> {{Wikibooks:Marathi language portal/things to do}}{{Wikibooks:Marathi language portal/translations}}</div> |- |} <!--{{alphabetical|M}} {{Subjects|Languages of Asia}}--> {{status|0%}} [[ko:마라티어]] sohhmkloejanf9bmjzhjfxwhkcrwao8 User:Mahitgar/sandbox/Learn Hinduism/Top paragraph 2 303729 4675473 2694542 2026-10-10T23:07:40Z Omphalographer 3427146 Omphalographer moved page [[Wikibooks:Learn Hinduism/Top paragraph]] to [[User:Mahitgar/sandbox/Learn Hinduism/Top paragraph]] without leaving a redirect: moving to associated userspace draft 2694542 wikitext text/x-wiki Hinduism is a religion from the Indian sub-continent. Hinduism is a polytheist anthropomorphic '''way of life''' where in most followers tend to practice highly ritualized forms of worship; at the same time the '''Hindu way of life''' offers ample liberty and choice to create or adopt philosophy and/or rituals at individual, family and social group levels. Respect for different perceptions and plurality of thought are essentials. People watching Hindu practices from a distance tend to think that Hindu's worship multiple things, the perception is only partially correct since most Hindus accept at back of the mind that the creator is only one. It would be easier to understand usually one finds a Hindu is either just respecting or worshiping different powers or facets of omnipresent creator, the nature around himself and various values he belives in. The canon of books and poems that define Hinduism were written in Sanskrit and are of ancient origin. They range from Epics about the lives and loves of the Gods, philosophical treatises on metaphysical questions, and law books. The Hindu religion has provided the roots of Jainism, Sikhism, and Buddhism. In the West it can be found in the Hare Krishna movement. Hinduism is the majority religion of India, Nepal, and Mauritius and a significant minority religion in Fiji, Suriname, Bhutan, Sri Lanka, Bangladesh, Malaysia, and Singapore. j47xysb5zyrtxwmojaga3f3gmnezx2q User:Wrightnotes/sandbox 2 364817 4675481 3000765 2026-10-11T01:38:17Z MathXplore 3097823 Requesting deletion ([[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]] v3.1d) 4675481 wikitext text/x-wiki <noinclude>{{delete|1=Broken redirect <small>[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]</small>}}</noinclude> #REDIRECT [[Wikibooks:Exercise as it relates to Disease/Stairclimbing, is it enough for fitness and health in young, inactive women?]] nndbseyjht7cj1p628c63qltc7un4t0 Muggles' Guide to Harry Potter/Places/Hospital Wing 0 365564 4675449 3241725 2026-10-10T13:02:38Z Pookiyama 1766461 /* Analysis */ 4675449 wikitext text/x-wiki {{Muggles' Guide to Harry Potter/Place| name=Hospital Wing of Hogwarts School| location=Hogwarts school| residents=[[Muggles' Guide to Harry Potter/Characters/Poppy Pomfrey|Madam Pomfrey]]| appearance=[[Muggles' Guide to Harry Potter/Books/Philosopher's Stone/Chapter 14|''Harry Potter and the Philosopher's Stone'']] }} == General Overview == The '''''Hospital Wing''''' at Hogwarts is not precisely a wing of the school, but a section of one floor of the school, similar to an infirmary in a Muggle residential or boarding school, where students (and sometimes teachers) who have been taken ill or suffered an accident can be treated. At Hogwarts, the hospital wing is in the able charge of [[Muggles' Guide to Harry Potter/Characters/Poppy Pomfrey|Madam Pomfrey]], who stolidly treats the various injuries that possibly a thousand young wizards receive while learning their craft without apparently turning an eyebrow at the bizarre explanations, or lack of explanations, she receives. == Extended Description == {{Muggles' Guide to Harry Potter/Beginner Spoiler}} Our first introduction to the Hospital Wing is in [[Muggles' Guide to Harry Potter/Books/Philosopher's Stone/Chapter 14|''Harry Potter and the Philosopher's Stone'']], when [[Muggles' Guide to Harry Potter/Characters/Ron Weasley|Ron]] suffers a [[Muggles' Guide to Harry Potter/Magic/Dragon|dragon]] bite. Dragons being heavily proscribed magically, Ron does not feel able to explain what bit him, but Madam Pomfrey simply treats the injury as best she can. [[Muggles' Guide to Harry Potter/Books/Philosopher's Stone/Chapter 17|At the end of that same book]], Harry wakes up in the Hospital Wing following his duel with [[Muggles' Guide to Harry Potter/Characters/Professor Quirrell|Professor Quirrell]] and [[Muggles' Guide to Harry Potter/Characters/Lord Voldemort|Voldemort]], and has a long discussion there with [[Muggles' Guide to Harry Potter/Characters/Albus Dumbledore|Professor Dumbledore]]. Madam Pomfrey seems upset that Dumbledore has overridden her instructions, and is requiring Harry to be present at the Leaving Feast; she had wanted to keep Harry a little longer for observation. In [[Muggles' Guide to Harry Potter/Books/Chamber of Secrets/Chapter 10|''Harry Potter and the Chamber of Secrets'']], Harry again overnights in the Hospital Wing, this time because [[Muggles' Guide to Harry Potter/Characters/Gilderoy Lockhart|Professor Lockhart]] has, while trying to mend his broken arm, completely removed his arm bones. He is joined there by [[Muggles' Guide to Harry Potter/Characters/Colin Creevey|Colin Creevey]], who has apparently been Petrified by the monster from the chamber. [[Muggles' Guide to Harry Potter/Books/Chamber of Secrets/Chapter 12|Later in that book]], [[Muggles' Guide to Harry Potter/Characters/Hermione Granger|Hermione]] ends up in the Hospital Wing because of a failed transformation using [[Muggles' Guide to Harry Potter/Magic/Polyjuice Potion|Polyjuice Potion]]; again, because this is a restricted potion, Hermione cannot say what caused her to halfway transform into a cat, but Madam Pomfrey simply treats her. Over the course of the book, [[Muggles' Guide to Harry Potter/Characters/Justin Finch-Fletchley|Justin Finch-Fletchley]], [[Muggles' Guide to Harry Potter/Characters/Nearly Headless Nick|Nearly Headless Nick]], [[Muggles' Guide to Harry Potter/Characters/Penelope Clearwater|Penelope Clearwater]] and Hermione end up Petrified and are moved to the Hospital Wing. And [[Muggles' Guide to Harry Potter/Books/Chamber of Secrets/Chapter 18|at the end of that book]], Professor Lockhart, who has destroyed his own memory, is also taken to the Hospital Wing. In ''Harry Potter and the Prisoner of Azkaban'', the presence of [[Muggles' Guide to Harry Potter/Magic/Dementor|Dementors]], and the effect they have on Harry, makes him a repeat visitor to Madam Pomfrey's. [[Muggles' Guide to Harry Potter/Books/Prisoner of Azkaban/Chapter 5|Early in the story]], he avoids a stay in the Hospital Wing solely because of [[Muggles' Guide to Harry Potter/Characters/Remus Lupin|Professor Lupin's]] quick action with an antidote. A flock of Dementors on the [[Muggles' Guide to Harry Potter/Major Events/Quidditch|Quidditch pitch]] [[Muggles' Guide to Harry Potter/Books/Prisoner of Azkaban/Chapter 9|a bit later on]] results in a fall from an extreme height, resulting in a Hospital Wing stay for Harry. And events in [[Muggles' Guide to Harry Potter/Places/Shrieking Shack|the Shrieking Shack]] result in hospital wing visits for Harry, Ron, and Hermione [[Muggles' Guide to Harry Potter/Books/Prisoner of Azkaban/Chapter 21|at the end of the book]]. There is a great deal of discussion that takes place in the Hospital Wing at the end of that book, with Professor Dumbledore arranging for Harry and Hermione to rescue [[Muggles' Guide to Harry Potter/Characters/Buckbeak|Buckbeak]] and [[Muggles' Guide to Harry Potter/Characters/Sirius Black|Sirius Black]], and [[Muggles' Guide to Harry Potter/Characters/Severus Snape|Professor Snape's]] outrage at his escape. [[Muggles' Guide to Harry Potter/Books/Prisoner of Azkaban/Chapter 6|Early in that book,]] [[Muggles' Guide to Harry Potter/Characters/Draco Malfoy|Draco]] is also injured, by a [[Muggles' Guide to Harry Potter/Magic/Hippogriff|Hippogriff]], in [[Muggles' Guide to Harry Potter/Magic/Care of Magical Creatures|Care of Magical Creatures]] class, and while his wound is quickly healed, he malingers, using "continuing pain" from the injury as an excuse for getting others to do his work for him. In the course of the book, Professor Lupin appears ill several times, and is absent several times; but while the reader would suspect that he ought to be in the Hospital Wing, no mention is made of his presence there. It turns out later that his "illness" is not one that Madam Pomfrey can treat, and he is staying in his apartment during those times. Surprisingly, as the major plot arc of the book involves a magical competition between three Wizarding schools, relatively little use of the Hospital Wing occurs during ''Harry Potter and the Goblet of Fire''. All four wizard champions receive injuries from their dragons in the [[Muggles' Guide to Harry Potter/Major Events/First Task|First Task]], but are treated by Madam Pomfrey on the scene. Similarly, while all four champions, and their "treasures," are somewhat chilled by long immersion in the Lake during the [[Muggles' Guide to Harry Potter/Major Events/Second Task|Second Task]], Madam Pomfrey treats them on the lake shore. The first Hospital Wing visit we know of is [[Muggles' Guide to Harry Potter/Characters/Viktor Krum|Viktor Krum]], the [[Muggles' Guide to Harry Potter/Places/Durmstrang Institute|Durmstrang]] champion, who is [[Muggles' Guide to Harry Potter/Magic/Stupefy|stunned]] while guarding [[Muggles' Guide to Harry Potter/Characters/Bartemius Crouch Sr.|Bartemius Crouch]], and is sent to Madam Pomfrey to recuperate. Harry does end up in the Hospital Wing following the [[Muggles' Guide to Harry Potter/Major Events/Third Task|Third Task]], but rather than being related to the Tournament, that is due to the effects of the [[Muggles' Guide to Harry Potter/Major Events/Cemetery Duel|duel at the Cemetery]]. We note that a great deal of discussion occurs [[Muggles' Guide to Harry Potter/Books/Goblet of Fire/Chapter 36|late in this book]] in the Hospital Wing, with [[Muggles' Guide to Harry Potter/Characters/Cornelius Fudge|Minister for Magic Cornelius Fudge]] denying Voldemort's return, and Professor Dumbledore assigning missions to people to deal with his return. It is in the Hospital Wing that Sirius reveals himself, and is forced into grudging alliance with Professor Snape. We see relatively little of the Hospital Wing in ''Harry Potter and the Order of the Phoenix'', though we suspect it is a busy place once Professor Dumbledore has been forced out of the school. It is mentioned that [[Muggles' Guide to Harry Potter/Magic/Skiving Snackbox|Skiving Snackboxes]] from [[Muggles' Guide to Harry Potter/Places/Weasleys' Wizard Wheezes|Weasleys' Wizard Wheezes]], notably Puking Pastilles and Fever Fudge, are used repeatedly by students to escape [[Muggles' Guide to Harry Potter/Characters/Dolores Umbridge|Professor Umbridge's]] class, and as these cause projectile vomiting and raging fever, respectively, we would expect that students using them would end up, at least temporarily, in the Hospital Wing. There are a few explicit mentions, however. Early in the year, [[Muggles' Guide to Harry Potter/Characters/Katie Bell|Katie Bell]] catches a Quaffle in the face during practice, and in an attempt to heal the resulting nosebleed, [[Muggles' Guide to Harry Potter/Characters/Fred Weasley|Fred]] accidentally gives her a [[Muggles' Guide to Harry Potter/Magic/Blood Blisterpod|Blood Blisterpod]]. Fred and George shortly escort her to the Hospital Wing. [[Muggles' Guide to Harry Potter/Books/Order of the Phoenix/Chapter 28|Another student who ends up]] in the Hospital Wing is [[Muggles' Guide to Harry Potter/Characters/Montague|Montague]], who had been forced into an old, broken [[Muggles' Guide to Harry Potter/Magic/Disappearing Cabinets|Vanishing Cabinet]] and reappeared jammed into a toilet a day later. [[Muggles' Guide to Harry Potter/Books/Order of the Phoenix/Chapter 32|The first time we actually see the Hospital Wing in the book]] is a very brief visit: Harry is trying to find [[Muggles' Guide to Harry Potter/Characters/Minerva McGonagall|Professor McGonagall]], who had been hit with multiple Stunners as Professor Umbridge was attempting to dismiss [[Muggles' Guide to Harry Potter/Characters/Rubeus Hagrid|Hagrid]]. Madam Pomfrey, while spooning some blue potion into Montague, tells Harry that Professor McGonagall had been transferred to [[Muggles' Guide to Harry Potter/Places/St. Mungo's Hospital for Magical Maladies and Injuries|St. Mungo's]]. [[Muggles' Guide to Harry Potter/Books/Order of the Phoenix/Chapter 38|We do see the Hospital Wing again]], following the [[Muggles' Guide to Harry Potter/Major Events/Battle at the Department of Mysteries|battle at the Ministry of Magic]], which results in Hermione, Ron, [[Muggles' Guide to Harry Potter/Characters/Neville Longbottom|Neville]], [[Muggles' Guide to Harry Potter/Characters/Ginny Weasley|Ginny]], and [[Muggles' Guide to Harry Potter/Characters/Luna Lovegood|Luna]] being sufficiently injured to require Madam Pomfrey's ministrations. By the time we rejoin the story, all save Ron and Hermione have been released, and Professor Umbridge has been brought in for treatment. There is some discussion of Umbridge's condition at the time. The Hospital Wing is a busy place again in ''Harry Potter and the Half-Blood Prince''. The first person we see in the Hospital Wing is Katie Bell, [[Muggles' Guide to Harry Potter/Books/Half-Blood Prince/Chapter 12|this time]] because she accidentally handled a cursed necklace. Her stay is brief; she is beyond Madam Pomfrey's skill and is quickly sent to St. Mungo's. [[Muggles' Guide to Harry Potter/Books/Half-Blood Prince/Chapter 18|Later in the year]], Ron is accidentally poisoned and ends up in the Hospital Wing for several days; it is here that he begins to realize that his romantic entanglement with [[Muggles' Guide to Harry Potter/Characters/Lavender Brown|Lavender]] is becoming onerous. We learn about this from Lavender, who complains that Ron is always asleep when she visits, and Ron's later admission to Harry that he's doing it on purpose. Harry also ends up in the hospital wing [[Muggles' Guide to Harry Potter/Books/Half-Blood Prince/Chapter 19|at the same time]], having received a skull fracture from a poorly aimed Bludger in a Quidditch match. It is while he is in the Hospital Wing that Harry realizes he can set [[Muggles' Guide to Harry Potter/Characters/Kreacher|Kreacher]] the job of tailing Draco, something he's been trying to do himself with limited success. [[Muggles' Guide to Harry Potter/Books/Half-Blood Prince/Chapter 24|Still later]], Professor Snape takes Draco to the Hospital Wing after Harry, to avoid being hit with the [[Muggles' Guide to Harry Potter/Magic/Crucio|Cruciatus curse]], injures Draco with the [[Muggles' Guide to Harry Potter/Magic/Sectumsempra|Sectumsempra curse]]. Much of the denouement of the sixth book happens in the Hospital Wing, in fact. [[Muggles' Guide to Harry Potter/Books/Half-Blood Prince/Chapter 29|Following the attack on the school]] that left Professor Dumbledore dead and saw Severus Snape run away, the injured [[Muggles' Guide to Harry Potter/Magic/Auror|Aurors]] and members of the [[Muggles' Guide to Harry Potter/Major Events/Order of the Phoenix|Order of the Phoenix]], along with those students who had been involved, are brought to the Hospital Wing. Harry hears news of the battle from Ron, Hermione, Ginny, Luna, and Neville, the five members of Dumbledore's Army who had responded to Harry's call. It is there that Harry explains why Dumbledore trusted Snape, as he then understands it. It is there that [[Muggles' Guide to Harry Potter/Characters/Fleur Delacour|Fleur Delacour]] affirms that her planned wedding to [[Muggles' Guide to Harry Potter/Characters/Bill Weasley|Bill Weasley]] will not be derailed by anything as trivial as a disfiguring injury, and so heals the potential rift between herself and [[Muggles' Guide to Harry Potter/Characters/Molly Weasley|Mrs. Weasley]]. And it is there that we see Remus Lupin's objections to marrying [[Muggles' Guide to Harry Potter/Characters/Nymphadora Tonks|Tonks]] begin to dissolve. While there are a number of injuries that the Trio suffer in the course of the final book, they are not at Hogwarts and so we don't see what's happening in the Hospital Wing. In the end, they know this place well. == Analysis == We note in passing that for nominally healthy young men and women, the Trio seem to be spending an inordinate amount of time in the Hospital Wing. Of course, all of that seems to be due to injuries suffered in extracurricular activities of one sort or another, and very little due to normal illness; still, if Madam Pomfrey is keeping track of visits, she must be wondering a little exactly what is happening to this Potter child. There is never any clear exposition of how large the Hospital Wing is; there have been times in the books that that Madam Pomfrey has been treating as many as six young wizards at once, but we don't have any indication of its available bed count. It is possible that it can magically expand in times of need, but if that were to happen we suspect that Madam Pomfrey would either need to employ help, or would send the worst cases off to [[Muggles' Guide to Harry Potter/Places/St. Mungo's Hospital for Magical Maladies and Injuries|St. Mungo's in London]]. Most institutions that have residences, such as boarding schools and universities, will also have some sort of local infirmary, so the presence of the Hospital Wing is only to be expected. We note that a typical example, a 5,000-student university in the United States, has an infirmary with one 10-bed ward, and a two-bed isolation wards for infectious diseases. With a [[Muggles' Guide to Harry Potter/Places/Hogwarts School of Witchcraft and Wizardry#School population|school population]] of either about 280 or 840 students, one would think that 6 beds would be ample; but there is the complication that this is a school of wizards and witches, so injuries requiring treatment will be magically induced, and likely to require both longer and more involved care. We do find it curious that there seems to be only a single ward for the use of both boys and girls, especially as the Founders seem to have taken steps to prevent male students from entering the girl's dormitories. We would suggest that Madam Pomfrey is rather overworked in any event. Any infirmary visit that requires an overnight stay should, by rights, have a night nurse in attendance. Madam Pomfrey is an extremely dedicated healer, but we should not expect her, and Dumbledore should not expect her, to remain on call 24 hours a day, seven days a week. Our suspicion is that the author felt that introducing a subsidiary healer might prove slightly confusing for the intended readership of the series. All the same, it may have made sense if the author had provided someone to take over for Madam Pomfrey, so she could take an occasional well-earned rest. == Questions == {{Muggles' Guide to Harry Potter/Questions}} == Greater Picture == {{Muggles' Guide to Harry Potter/Intermediate Spoiler}} The entire Wizarding injury and illness treatment mechanism seems, at first look, somewhat poorly thought out. As mentioned in the article on [[Muggles' Guide to Harry Potter/Places/St. Mungo's Hospital for Magical Maladies and Injuries|St. Mungo's]], the entire hospital, with very little in the way of longer-term care, would seem to be one large A&E ward (US: Emergency department). Given that, it is somewhat worrying that there doesn't seem to be either an emergency ambulance broom landing pad, or an array of fireplaces for transporting incapacitated patients. Additionally, there is no mention of a surgery (US: doctor's office) in Hogsmeade, though we assume there must be one for the residents, who can't use the Hospital Wing. Clearly, with no way of handling getting critically injured patients to any other treatment facility, a hospital within Hogwarts is vital. While it does make the Hospital Wing indispensable, the lack of medical infrastructure is not important to the story. As this is a book series nominally for children, a fully developed medical services infrastructure is not necessary; most readers will have a child's understanding of the medical system, a local infirmary will be much closer to their experience. What medical experience most readers will have had will be with the school nurse, and so a school nurse and dispensary will match their experience. In fact, having an actual hospital area in the school is a narrative necessity in the first book. Ron's dragon bite, and the associated Hospital Wing stay, is the mechanism by which Draco learns the details of Norbert's pending departure. If Ron had been resting in Gryffindor Tower, there is no way Draco could have visited him; entrance to the common rooms remains a closely guarded secret. If Ron had been sent off to St. Mungo's, or to an infirmary in town, it would similarly have been difficult for Draco to arrange a visit. The Hospital Wing is an ideal place for Draco to use the information he already has, in order to gain more. Also in the first book, a fairly large chunk of exposition takes place in the Hospital Wing following Harry's recovery from the events surrounding the recovery of the Stone. By forcing Harry into a hospital bed, we make it possible for Dumbledore to provide the necessary exposition without it seeming tedious. This pattern is repeated in several other books; the Hospital Wing provides a place for conversation, either with or over a recovering character, in a way that allows the story to progress without requiring that the characters be doing anything. As a side note, we should mention the author's skill in providing exposition as conversation. While this is a basic skill, many authors do not consider it important; this author clearly provides a counter to that view. {{BookCat}} 0m7c1516kuvgmr20n0b57n7ieg2j1n6 Social Knowledge Creation/Spatial Humanities 0 389473 4675507 3311886 2026-10-11T10:46:26Z WereSpielChequers 248949 typo 4675507 wikitext text/x-wiki Spatial Humanities and Digital Mapping primarily focuses on the practices of present day spatial humanities research following the shift to a computational mode of knowledge production and dissemination through digital mapping. This focal shift has resulted in an expanding social element in many branches of the field and often involves working with large corpora made possible through the automatization of geoparsing. One way in which the social element is integrated into the field is through the active participation of users who collect live geospatial data on GPS-based devices and update them onto a map, such as the OpenStreetMap community-driven environment. Another major constituent of digital spatial humanities is the availability of large general and field-specific open gazetteers with geospatial information and other details about the location that vary depending on the gazetteer. Many of these gazetteers consist of thousands of entries and are continuously expanding through user contribution. The open availability of geospatial information circumvents the widespread commercialization of geospatial information and is aligned with open access values. Rather than focusing on digital mapping tools, the entries in this section survey theoretical discourses in the field, features of digital mapping, and successful social mapping initiatives. == Bibliography == *Google Maps APIs. Google Developers. 14 October 2015. Web. https://developers.google.com/maps/ *GeoNames. GeoNames. n.d. Web. http://geonames.org/ *Gregory, Derek. Geographical Imaginations. Oxford: Blackwell, 1994. Print. *Guldi, Jo and Chris Johnson-Roberson. Paper Machines. metaLAB @ Harvard. n. d. Web. http://papermachines.org/ *Elliott, Tom and Sean Gillies. Pleiades. Pleiades. 21 May 2015. Web. http://pleiades.stoa.org/ *Jenstad, Janelle, and Kim McLean-Fiander. “The MoEML Gazetteer of Early Modern London.” The Map of Early Modern London. Ed. Janelle Jenstad. Victoria: University of Victoria. Web. https://mapoflondon.uvic.ca/gazetteer_about.htm *Moretti, Franco. Atlas of the European Novel, 1800-1900. London: Verso, 1998. Print. *OpenStreetMap. OpenStreetMap Foundation. n.d. Web. https://www.openstreetmap.org *Tally, Robert. Spatiality. New York: Routledge, 2013. Print. *Stanford Natural Language Processing Group. n.d. Web. http://nlp.stanford.edu/ *Unlock. Edina. n.d. Web. http://edina.ac.uk/unlock/places/ *Westphal, Bertrand. Geocriticism: Real and Fictional Spaces. Trans. Robert Tally. New York: Palgrave Macmillan, 2011. Print. {{BookCat}} t25ut8ucwhpnakaq076jmygphpy9qa3 Mirad Grammar/Greetings 0 417654 4675475 4657938 2026-10-10T23:09:57Z Omphalographer 3427146 Omphalographer moved page [[Wikibooks:Mirad Grammar/Greetings and Euphemisms]] to [[Mirad Grammar/Greetings]] over a redirect without leaving a redirect: moving book content out of project space 4657938 wikitext text/x-wiki : Here are some common greetings: [[File:Greeting.png|thumb|]] [[File:PM Modi and Chinese President Xi Jinping visit Sabarmati Ashram - 15089340350.jpg|thumb|]] :{| class="wikitable" style="background:lightyellow;{{Text default color}};font-size:smaller;" |+ Common Greetings |- ! MIRAD !! ENGLISH |- | '''Hay!''' || ''Hello!'' |- | '''Hey!''' || ''Hey!'', ''Oh...!'' |- | '''Hoy!''' || ''Bye!'' |- | '''Hiy...''' || ''Here is / Here comes... / Voici'' |- | '''Huy...''' || ''There's... / There goes... / Voila'' |- | '''Hyay!''' || ''Great! / Good for you! / Congratulations!'' |- | '''Hyey!''' || ''Oh my! / Goodness gracious! / Well!'' |- | '''Hyoy!''' || ''Too bad! / What a shame! / Sorry!'' |- | '''Hway!'''* || ''Thanks!'' |- | '''Hwey!''' || ''Your're welcome! / That's ok.'' |- | '''Hwoy!''' || ''Sorry!'' |- | '''Fijub!'''<br>'''Fimaj!''' || ''Good day!'' |- | '''Fijwamaj!''' || ''Good morning!'' (Lit: ''good early daytime'') |- | '''Fijwomaj!''' || ''Good afternoon!'' (Lit: ''good late daytime'') |- | '''Fijwamoj!''' || ''Good evening!'' (Lit: ''good early nighttime'') |- | '''Fimoj!''' || ''Good night!'' |- | '''Duhayen et xeye?'''<br>'''Duhayen et se?''' || ''How are you?'' (Lit. ''How are you doing?'' or ''How are you?'') |- | '''Fi. Ay et?''' || ''Fine. And you?'' |- | '''Iftaxwo.'''<br>'''Hway.'''<br>'''Fifi''' || ''Thank-you.'' (Lit. ''(It) will be fondly remembered.'')<br><br>(Lit: good wishes) |- | '''Toxu.'''<br>'''Hwey.''' || ''You're welcome.'' (Lit. ''Forget (it).'') |- | '''Diwe.''' || ''Please.'' (Lit. ''It is asked.'') |- | '''Yovobu (at).'''<br>'''Hwoy.''' || ''Excuse (me). / Sorry!'' |- | '''Fipop!''' || ''Bon voyage!'' |- | '''Su valka!''' || ''Be safe!'' |- | '''Igbaksu!''' || ''Get well soon!'' |- | '''Yanivtos!'''<br>'''Hway!''' || ''Congratulations!'' (Lit: together-happy-feeling) |- | '''Iva Tajjub!''' || ''Happy Birthday!'' |- | '''Yanuvtos!'''<br>'''Hwoy!''' || ''My condolences!'' (Lit: together-sad-feeling) |} : * {{smaller|Pronounced like English ''why''.}} <noinclude>{{Chapter navigation with TOC|Hybrids|Vocabulary Formation}}</noinclude> m7hotcq58yz2owm3gkcyar4z9jh6cy4 Wikibooks:GUS2Wiki 4 447875 4675469 4673686 2026-10-10T22:04:37Z Alexis Jazz 470964 Updating gadget usage statistics from [[Special:GadgetUsage]] ([[phab:T121049]]) 4675469 wikitext text/x-wiki {{#ifexist:Project:GUS2Wiki/top|{{/top}}|This page provides a historical record of [[Special:GadgetUsage]] through its page history. To get the data in CSV format, see wikitext. To customize this message or add categories, create [[/top]].}} The following data is cached, and was last updated 2026-10-10T06:12:06Z. A maximum of {{PLURAL:5000|one result is|5000 results are}} available in the cache. {| class="sortable wikitable" ! Gadget !! data-sort-type="number" | Number of users !! data-sort-type="number" | Active users |- |BookCat || 110 || 5 |- |CleanDeleteReasons || 54 || 1 |- |CommentsInLocalTime || 670 || 5 |- |DeluxeBar || 211 || 7 |- |GetCollection || 554 || 2 |- |HotCat || 12 || 2 |- |Massblock || 1 || 1 |- |OneClickWelcomer || 29 || 0 |- |SpecialSearch || 665 || 2 |- |Subpages || 5 || 2 |- |UTCLiveClock || 370 || 7 |- |background-awesomeness || 789 || 6 |- |bottomtabs || 433 || 3 |- |commons-file || data-sort-value="Infinity" | Default || data-sort-value="Infinity" | Default |- |contribsrange || 332 || 6 |- |markAdmins || 146 || 16 |- |markblocked || 60 || 2 |- |modrollback || 83 || 4 |- |navpop || 846 || 8 |- |purge || 622 || 11 |- |rightsfilter || 374 || 4 |- |searchbox || 214 || 4 |- |sidebartranslate || 505 || 4 |- |sixtabs || 312 || 1 |- |subject-pages || 615 || 3 |- |subpages || 30 || 6 |- |wiked || 673 || 4 |- |wikidialog || data-sort-value="Infinity" | Default || data-sort-value="Infinity" | Default |} * [[Special:GadgetUsage]] * [[m:Meta:GUS2Wiki/Script|GUS2Wiki]] <!-- data in CSV format: BookCat,110,5 CleanDeleteReasons,54,1 CommentsInLocalTime,670,5 DeluxeBar,211,7 GetCollection,554,2 HotCat,12,2 Massblock,1,1 OneClickWelcomer,29,0 SpecialSearch,665,2 Subpages,5,2 UTCLiveClock,370,7 background-awesomeness,789,6 bottomtabs,433,3 commons-file,default,default contribsrange,332,6 markAdmins,146,16 markblocked,60,2 modrollback,83,4 navpop,846,8 purge,622,11 rightsfilter,374,4 searchbox,214,4 sidebartranslate,505,4 sixtabs,312,1 subject-pages,615,3 subpages,30,6 wiked,673,4 wikidialog,default,default --> p70kbsxrmry70kf8bqrdfavnhzdk73m Manshu/Chapter 2 0 464539 4675478 4636933 2026-10-11T00:11:21Z Taitesena 3485636 /* The Láncāngjiāng (瀾滄江; ie. Mekong) River and Yǒngchāng (永昌; ie. Bǎoshān) */ 4675478 wikitext text/x-wiki {{Nav}} {{incomplete translation}} {{translation header | language = zh | original = | title = [[../]] | author = Fan Chuo | override_editor = Palace Museum Library | translator = Walter Stanish and Taitesena | section = Chapter 2 | previous = [[../Chapter 1/]] | next = [[../Chapter 3/]] | notes = }} [[zh:蛮书/卷02]] ==Translator's note== In general I am confident of a reasonable translation. The sections are of my own construction. Maps are yet to draw, and cross-referencing with existing identifications of some foreign names will be required. ==Translation== ===Around ''Tuò​dōng​chéng'' (柘東城; ie. Kunming)=== [[File:金碧广场.jpg|thumb|center|800px|The modern 'Golden Horse and Jade Chicken Square' (金馬碧雞廣場) in central Kunming, known succinctly to locals as 'Gold Jade Square' (金碧廣場) and named after the ancient names for the nearby mountains which are described in this section.]] {| class="wikitable" style="text-align:center; width:80%;" |+ Chapter 2: ''Geography''; or ''Mountains and rivers''; or ''Mountains, River-plains, Rivers, and Headwaters'' (山川江源; ''shānchuān jiāng yuán'') — Part 1: Around ''Tuò​dōng​chéng'' (柘東城; ie. Kunming) |- ! scope="col" | Original ! scope="col" | Translation |- |金馬山在柘東城螺山南二十余裏,高百余丈,與碧雞山東南西北相對。 |'''Jīnmǎ​shān​''' (金馬山; lit. 'Golden Horse Mountain') is 20 ''li'' further south from '''Luó​shān​''' (螺山; lit. 'Snail Mountain'<ref>Perhaps this may refer to mountains to the south-southeast of Kunming, between the Chenggong/Dounan area of south-eastern Kunming (recently extensively developed but historically very much inhabited) and the Fuxian Lake basin, or it may be an old name for what is now known as ''Changchongshan''' (长虫山), which dominates the view north from central Kunming and offers sweeping views of the Dianchi Lake (滇池) basin. In any case, a further clue to its identity is shortly revealed in its name — ie. that within the name, apparently the 'snail' rather than 'spiral' sense of the character 螺 is used.</ref>) of '''Tuò​dōng​chéng''' (柘東城; ie. Kunming<ref>See chapter one for an explanation — basically the character 柘 should reasonably be equated semantically in this text when writing 柘東城 with the more usual 拓 for the same, a well known historic name for Kunming.</ref>), and is 100 or more ''zhang'' in height (ie. over 330m<ref>Assuming one ''zhang'' (丈) is 3.3m.</ref>). On each side it is identical to<ref>Alternatively, 'opposes' or 'is equivalent to'.</ref> '''Bìjī​shān​''' (碧雞山; lit. Jade-green Chicken Mountain). |- |土俗傳雲,昔有金馬,往往出見,山上亦有神祠。 |Endemic tradition states that there was once a golden horse which would frequently appear, thus atop the mountain there exists a shrine [to the creature]. |- |從漢界入蠻路,出此山之下。 |From the Chinese controlled boundary, the '''Road to the Barbarian Lands''' (蠻路<ref>Presumably the road southward down the eastern edge of the lake defining the basin known within this text as 昆池 ('''Kūn​chí''') and in modern times as '''Dianchí''' (滇池). The combined traffic in this direction would have been along at least two routes known for trade since ancient times, both that presumably 'better known' southeastward to Vietnam via Tonghai, Jianshui, and possibly Gejiu and Mengzi, and a presumably lesser known series of routes running south to Xishuangbanna via Pu'er (modern Ning'er) and Simao (modern Pu'er) toward the Tai lands of the modern Jinghong basin thence southward to Burma, Laos and Thailand.</ref>) winds beneath this mountain. |- |螺山遍地悉是螺蛤,故以名焉。 |'''Luó​shān​''' (螺山; lit. 'Snail Mountain') is covered with<ref>遍地悉是 — literally 'all places totally are'.</ref> snails,<ref>螺蛤</ref> hence the name.<ref>故以名焉 — literally an amusing collection of characters, rather like 'cause thus name how'.</ref> |- |碧雞山在昆池西岸上,與柘東城隔水相對。 |'''Bìjī​shān​''' (碧雞山; lit. Jade-green Chicken Mountain; ie. modern Xishan?) is on the western shore of '''Kūn​chí​''' (昆池; ie. Dianchi<ref>Presumably 昆池 ('''Kūn​chí''') refers to modern '''Dianchí''' (滇池) rather than '''Green Lake''' (翠湖), which has no major hill to its west and but minor ones to its north, east and south.</ref>), across the water from '''Tuodongcheng''' (柘東城; ie. Kunming). |- |從東來者岡頭數十裏已見此山。 |When coming from the east,<ref>Presumably this basically means "when coming the city".</ref> the ridgetop<ref>Perhaps referring to the relative pass, or saddle-like ridge depression on the extreme north of the range, approximately directly west of the modern extent of water and to the south of which ascends the modern road to the '''Dragon's Gate''' (龙门) past numerous temple buildings, as this would have been a natural means of westerly progression for travellers.</ref> is 10 ''li'' distant, then you are amongst<ref>Actually, the text writes 已見此山 — "you can already see the mountains", though this makes little sense semantically since they are visible from a great distance. It makes more sense to take an 'are within' or 'are amongst' sense with the text here, particularly as the shape of the water means the route is somewhat indirect, veering west then south, thus giving more purpose to the statement.</ref> the mountains. |- |山勢特秀,池水清淡,水中有碧雞山石,山有洞庭樹,年月久遠,空有余本。 |The mountain is particularly elegant in shape, the lakewater clear, and the stones of '''Bìjī​shān​''' (碧雞山; lit. Jade-green Chicken Mountain; ie. modern Xishan?) amongst it. The mountain has caves, pavillions and forest. The passage of time is distant, and the airs are abundant.<ref>This appears to be a classical Chinese literary / Daoist reference of some kind; a Daoist sense of the character 本 in particular. Essentially it's getting at the naturally pregnant / abundant nature of the place.</ref> |} ===The ''Diàn​cāng​shān​'' (玷蒼山; ie. Dali) Region=== {| class="wikitable" style="text-align:center; width:80%;" |+ Chapter 2: ''Geography''; or ''Mountains and rivers''; or ''Mountains, River-plains, Rivers, and Headwaters'' (山川江源; ''shānchuān jiāng yuán'') — The ''Diàn​cāng​shān​'' (玷蒼山; ie. Dali) Region |- ! scope="col" | Original ! scope="col" | Translation |- |玷蒼山<span style="color:#aaa">(案:玷《唐書》作點)</span>,南自石橋,北抵登川,長一百五十余裏,名為玷蒼。 |'''Diàn​cāng​shān​''' (玷蒼山; lit. 'The Mountains of the Dian Mountain Range'; ie. modern Cangshan?<ref>Modern '''Cangshan''' (苍山) to the west of Dali meets most of the descriptive parameters and would seem to be a logical progression in the context of the text.</ref>) <span style="color:#aaa">(Note: The character 玷 is written with additional dots at left in the ''Tangshu'' (唐書).)</span> sports a stone bridge to its south, '''Dēng​chuān​''' (登川; lit. 'Trodden River Plains') at its northern foot, a length of 150 ''li'' and is known as '''Diàn​cāng​''' (玷蒼; lit. 'Dian Mountain Range'). |- |直南北,勸;不甚正。 |The range runs directly north to south,<ref>Meeting the Dali Cangshan assumption.</ref> and does not deviate.<ref>My reading here appears essentially correct and reasonable in context, however when reading more festidiously the characters 勸不甚正 could be interpreted more literally, perhaps "as such, no correction [in navigation path when passing the mountains] is necessary".</ref> |- |東向洱河,城郭邑居,棋布山底。 |At the eastern face is the '''ěr​hé​ River''' (洱河; lit. 'Ear River'<ref>Further encouraging the Dali Cangshan assumption; the lake in to which all rivers on this range drain is today known as 耳海.</ref>), residential villages outside the city walls, and the base of '''Qí​bù​ Mountain''' (棋布山; lit. 'Checker-cloth Mountain'<ref>The checker notion may refer to sparse forest cover, since there is a snowline here.</ref>). |- |西面陡絕,下臨平川。 |The west face is extremely precipitous, and abuts '''Píng​chuān''' (平川; lit. 'Flat and rivered area'<ref>Definitely ''not'' referring to the site of modern Pingchuan village (平川镇) in Bingchuan county (宾川县), Dali prefecture (大理州) since this is far to the east, across the lake, in completely different topography.</ref>) at its base. |- |山頂高數千余丈,石棱青蒼,不通人路。 |The summit is extremely high,<ref>The actual number given is 1000 ''zhang'', or 3.3km assuming a normal 3.3 meter value for the ''zhang'' unit. This is obviously not meant to be taken literally and is figurative: (1) the round number; (2) the fact that the text will be discussing things from a relative base of the Erhai valley as opposed to modern sea level (which wouldn't be far off!); (3) previous, similar references in the same text have been similarly determined to be figurative.</ref> from which dark<ref>青蒼 — apparently no particular color in the grey/black/green/dark range.</ref> stone protrudes, and it is impassable. |- |冬中有時墮雪。 |In winter, snow falls on occasion. |- |囊蔥山在西洱河東隅,河流俯嚙山根。 |'''Náng​cōng​shān​''' (囊蔥山; lit. 'Pocket of [Green Onion/shallot/eschallot/scallion]<ref>An edible wild onion or onion-like species, quite possibly ''Allium chinense'' (commonly known as, variously Chinese onion, Chinese scallion, Japanese scallion, Kiangsi scallion, and Oriental onion). This implies the presence of wild plants on the mountain, which is not too unlikely climatically and could be validated through further study.</ref> Mountain') is on the eastern corner of the western '''ěr​hé​ River''' (洱河; lit. 'Ear River'),<ref>Note that it is not totally clear from the text whether in fact this is referring to the western portion of the river or an entirely different river with the name '''West Ear River''' (西洱河). However, the western portion seems likely.</ref> which tumbles down to gnaw at the base of the mountains.<ref>山根 — literally 'mountain root'.</ref> |- |土山無樹石,高處不過數十丈。 |The earthen mountain sports neither forest nor stone, and its height does not exceed [approximately] 33 meters.<ref>Again, this figure is based on one ''zhang'' (丈) being 3.3m.</ref> |- |面對賓居、越析,山下有路,從渠斂趙出登川。 |It faces the visitor without motion,<ref>A tad vague on this part, but it's thereabouts.</ref> towering and segregating. A road passes beneath, from '''Qú​liǎn​​''' (從渠; lit. 'Dam ditch'<ref>Implying a reasonable period of nontrivial, settled agriculture.</ref>) beyond to '''Dēng​chuān​''' (登川; lit. 'Trodden River Plains'). |} ===West of ''Yǒng​chāng'' (永昌; ie. Bǎoshān): the ''Gāo​lí​qí​shān​ Mountains'' (高黎其山) and the ''Nù​jiāng​ River'' (怒江; ie. Upper Salween)=== {| class="wikitable" style="text-align:center; width:80%;" |+ Chapter 2: ''Geography''; or ''Mountains and rivers''; or ''Mountains, River-plains, Rivers, and Headwaters'' (山川江源; ''shānchuān jiāng yuán'') — West of ''Yǒng​chāng'' (永昌; ie. Baoshan): the ''Gāo​lí​qí​shān​ Mountains'' (高黎其山) and the ''Nù​jiāng​ River'' (怒江; ie. Upper Salween) |- ! scope="col" | Original ! scope="col" | Translation |- |高黎其山在永昌西,下臨怒江。 |'''Gāo​lí​qí​shān​ Mountains''' (高黎其山; lit. 'Tall Black Mountain(s)'<ref>Presumably some relation to the modern Gaoligongshan.</ref>) is located to the west of [the presumed town or city of] '''Yǒng​chāng​''' (永昌; lit. 'Perpetual Prosperity'), and overlooks the '''Nù​jiāng​ River''' (怒江; lit. 'Raging River'; ie. Upper Salween<ref>Well known identification.</ref>). |- |左右平川,謂之穹賧,湯浪加萌所居也。 |To either side<ref>The text states 'left and right' but as we are not oriented, this seems a smoother translation.</ref> are flat river-plains, known for their perfectly clear skies [and by extension, uncomfortably harsh sun, which is soon to be emphasized using the same character sequence]. Dwellings appear where the current slows.<ref>Alternatively, one could read more literally as "[The town or village of] '''Shāng​làng​''' (湯浪) is located where the current slows." however this seems less likely to me (though do not hold this opinion up as unassailable, by any means!) for a few reasons: (1) There is no precedent for discussing a particular location, rather the established context is a range of locations either side of the mountains. (2) The use of 也 is (to my inexperienced eyes) a classical Chinese flourish in this later-period text which alludes to the elevation of the prior phrase to literary modes of interpretation (note that ''Shāng​làng​'' (湯浪) quite possibly rhymed in the Tang Dynasty). (3) The double verb phrase 加萌 — roughly 'to be added forth by sprouting' also suggests literary modes of expression, to my eyes. (4) The same phrase is mentioned shortly and also does not strike me as a place name in that context.</ref> |- |草木不枯,有瘴氣。 |The vegetation is habitually verdant,<ref>The text actually states 'never dries', implying an absence of deciduous foliage, ie. total dominance of evergreen vegetation. This may perhaps be safely read to suggest 'evergreen pine forest' or 'subtropical rainforest'.</ref> and features a sickening miasma.<ref>Almost certainly a reference to the then highly lethal disease Malaria, which was apparently one of many diseases misunderstood by pre-modern peoples (ie. prior to the discovery of bacteria and advances in toxicology) to be contracted through the inhalation of foul smells.</ref> |- |自永昌之越賧,途經此山,一驛在山之半,一驛在山之巔。 |From '''Yǒng​chāng​''' (永昌; lit. 'Perpetual Prosperity') it is better to<ref>This is my in-context (ie. versus the miasma) reading of 自永昌之越賧 and is not completely certain — an alternate reading would be "From Yongchang to Yuedan", though Yuedan (lit. 'More fine') makes little sense as a place name and seems an unlikely option.</ref> pass through these mountains. There is a postal relay station half-way through the mountains, and one upon the summit. |- |朝濟怒江登山,暮方到山頂。 |In the morning one crosses the '''Nù​jiāng​ River''' (怒江; lit. 'Raging River'; ie. Upper Salween) and climbs the mountain, but only reaches the summit in the evening. |- |冬中山上積雪苦寒,夏秋又苦穹賧、湯浪毒暑酷熱。 |In winter the mountain is covered in snow and is bitterly cold. During summer and autumn the sky is clear and the sun once again relentless, the rushing torrent [exhaling]<ref>This word inserted for ease of translation; phrases this flowery rarely exist in modern English!</ref> its poisonous and torrid heat. |- |河賧賈客在尋傳羈離未還者為之謠曰:「冬時欲歸來,高黎其上雪。秋夏欲歸來,無梆穹賧熱。春時欲歸來,平中絡賂絕。」<span style="color:#aaa">(絡賂,財之名也)</span> |The clear river merchants (河賧賈客)<ref>Apparently some form of reference to merchants operating over the mountains in this area.</ref> seek to set out during the 6th solar month (ie. 7th July—6th August). Those who have been state: "In winter we seek to return, as the '''Gāo​lí​qí​shān​ Mountain(s)''' (高黎其山; lit. 'Tall Black Mountain(s)') summit will be snowed-in. In summer and autumn we seek to return, as we do not wish to see the ascendance of the harsh sun and clear skies. What profits we make<ref>The actual characters are 平中 — admittedly 'the balance' would be a closer translation but reads poorly in context.</ref> are entirely lost<ref>絕</ref> to the net of bribery."<ref>While our author's character has earlier seemed hard in places, the inclusion of this rather personal description could be seen as an honest attempt to report the misgivings of (potential) subjects with respect to local corruption or tolls.</ref><span style="color:#aaa">(Note: "The net of bribery" (絡賂) refers to fiscal matters.)</span> |- |大雪山在永呂西北,從騰充過寶山城,又過金寶城以北大賧,周迥百余裏,悉皆野蠻,無君長也。 |'''Dà​xuě​shān​''' (大雪山; lit. 'Great Snowy Mountain(s)') is to the northwest of '''Yǒng​lǚ​''' (永呂; lit. 'Perpetual High Pitch'<ref>Apparently the character 呂 within the place name refers specifically to one of the twelve semitones in the traditional Chinese musical tone system. This is quite an eloquent name which makes sense as high mountains feature wind which can be understood to create a high pitched, constant tone.</ref>), from '''Téng​chōng''' (騰充; lit. 'Satisfying [Rapid Movement]'<ref>Modern place name remains constant. '''Tengchong''' is an ancient Han Chinese outpost in Yunnan which was used for '''Southern Silk Road''' trade with Burma for Jade, and beyond to '''India''' and possibly further afield.</ref>), from '''Téng​chōng''' (騰充) to '''Bǎo​shān​ City''' (寶山城) one again passes through '''Jīn​bǎo​ City''' (金寶城) to the north of the great clear skies.<ref>This part is iffy. Perhaps 大賧 is a place name after all?</ref> The whole trip is over 100 ''li'', through wholly uncivilized lands without a single gentleman to develop them. |- |地有瘴毒,河賧人至彼中瘴者,十有八九死。 |The land is infected with a miasma,<ref>Again, probably a reference to Malaria.</ref> which most<ref>至 in a less common sense.</ref> of the peoples of the clear skies region<ref>河賧人</ref> suffer from,<ref>彼中瘴者 — [those] [suffer - a rarer sense of 中] [miasma] [is/are/ongoing effect]</ref> of whom eight or nine out of ten die. |- |閣羅鳳嘗使領軍將於大賧中築城,管制野蠻。 |'''Géluófèng''' (閣羅鳳; ie. the second King of Nanzhao, essentially the author's sworn enemy<ref>'''Géluófèng''' (閣羅鳳; 712-779) was Nanzhao's second king who reigned from 748-779. In 750 he retaliated for the murder of Nanzhao envoys by Chinese officials, beginning the acceleration of large-scale hostilities that would eventually lead to all out war and the taking of Sichuan and Chengdu by Nanzhao.</ref>) led his troops to [make or take] a fortification in the clear skies region, in order to control the local barbarians. |- |不逾周歲,死者過半,遂罷棄,不復往來。 |After less than a year, more than half the garrison were dead, and it was thus entirely abandoned with no further expeditions since. |- |其山上肥沃,種瓜瓠長丈余,冬瓜亦然,皆三尺圍。 |The mountain top is fertile, growing copious melons and gourds of one ''zhang''<ref>ie. 3.3m</ref> in length, as well as wax gourd (冬瓜<ref>Cucurbitaceae, Benincasa hispida / white gourd / white hairy melon / Chinese squash / 'winter melon'.</ref>) which is always three ''chǐ​'' (ie. 1 meter) in circumference. |- |又多薏苡,無農桑,收此充糧。 |In addition, there is a lot of Job's tear (薏苡<ref>''Coix lacryma'', erroneously called Chinese pearl barley.</ref>), there are no mulberry farms<ref>Significant to the Chinese observers with regards to sericulture (silk-making).</ref>, and [yet] this is adequate annual provisioning.<ref>There are alternate readings like 'for the grain tax' though unlikely in context.</ref> |- |三面皆占大雪山,其高處造天。 |From three sides great snowy mountains may be observed — that high place is heavenly. |- |往往有吐蕃至賧貨易,雲此山有路,去贊普牙帳不遠。 |Frequently, Tibetans<ref>The text uses the term Tubo or Tufan, which is an old name for Tibet or the Tibetan Tubo dynasty, which reigned from the 7th—11th centuries AD (ie. at the time of our text).</ref> come to trade in fine goods by a road across the mountains,<ref>This much is clear.</ref> acquiring all types of ivory and screens<ref>By which internal, Chinese style carved or (less likely) painted screens with wooden or (less likely) metal frames are probably referred to.</ref> for little.<ref>"For little" is acquired by dubious interpretation: 不遠 — "not [much]", perhaps.</ref> |} ===north of kunming (xichang area)=== {| class="wikitable" style="text-align:center; width:80%;" |+ Chapter 2: ''Geography''; or ''Mountains and rivers''; or ''Mountains, River-plains, Rivers, and Headwaters'' (山川江源; ''shānchuān jiāng yuán'') — north of kunming (xichang area) |- ! scope="col" | Original ! scope="col" | Translation |- |又有水,源出臺登山,南流過巂州,西南至會州諾賧與東瀘,<span style="color:#aaa">(此處似有脫漏)</span>古諾水也。 |There is another river, originating high in the mountains, flowing south toward '''Guīzhōu''' (巂州; ie. modern Xichang<ref>Modern 四川省西昌市 — - a region in far-southern Sichuan, approximately directly north of modern Kunming, across the Jinshajiang or upper Yangtze. For background see the corresponding [https://zh.wikipedia.org/wiki/%E5%B7%82%E5%B7%9E Chinese Wikipedia] or [http://baike.baidu.com/link?url=Y9E6Mvwr7UqiBiumiv40wiT_CQicxbj3PfRZt38W2v48wb6Aj3KZHxFD2CxfNad87BhQclIq3BnfSKi7mwo4pa Baidu Baike] entries.</ref>). Further southwest is '''Huì​zhōu​''' (會州), '''Nuòdǎn​​''' (諾賧)<ref>This particular part is a little unclear. It seems there may be a grammatical intepretation issue, however I cannot see an alternate interpretation. Treat with caution.</ref> and the '''East River''' (東瀘), which is the same as the ancient '''Nuòshuǐ​ [River]''' (諾水; lit. Jinshajiang / Upper Yangtse?). |- |源出蕃中節度北,謂之諾矣江,南郎部落,又東折流至尋傳部落,與磨些江合。 |Originating<ref>源出</ref> roughly<ref>度 — apparently this is a valid reading.</ref> in Tibet's<ref>蕃中</ref> north, known as the '''Nuò​yǐ​jiāng​ [River]''' (諾矣江), it moves south to the '''Yang tribe''' (郎部落),<ref>This portion seems questionable to me, but I cannot find a more logical reading.</ref> then turns to flow east to find the '''Zhuàn tribe''' (傳部落), and combine with several tributaries. |- |源出吐蕃中節度西其籠川犛牛石下,故謂之犛牛河。 |Originating under the '''Lí​niúshí Mountain​​''' (犛牛石; lit. 'Black Ox Cliff') of western Tibet's '''Lǒng​chuān''' (籠川; lit. 'Dragon [Watered-]Plain'), it was formerly known as '''Lí​niú River''' (犛牛河; lit. 'Black Ox River'). |- |環繞弄視川,南流過<鳥戔>橋上下磨些部落,即謂之磨些江。 |It skirts the Sichuan basin, running south over and beyond the '''Small Bird Bridge''' (<鳥戔><ref>This notation refers to a character that is comprised of 鳥 on the left and 戔 on the right, but is not easily reproducible electronically.</ref>橋) to the '''Mó​xiē​ Tribe''' (磨些部落), and is known as the '''Mó​xiē​ River''' (磨些江).<ref>Actually I had interpreted this as 'several tribes' but the repetition in the river name accords for a different interpretation, as presented.</ref> |- |至尋傳與東瀘水合,東北過會同川,總名瀘水。 |'''Xúnzhuàn''' (尋傳; lit. 'Searching Station') is found within the eastern portion of '''Lúshuǐ''' (瀘水)<ref>In modern times this refers to Lushui county, Nujiang Lisu Autonomous Prefecture (怒江傈僳族自治州), in northwest Yunnan, near Tibet and Burma's northernmost Kachin state. However, in context this identification is possibly doubtful.</ref> from where a northeasterly passage is possible<ref>This grammatical interpretation is not confident.</ref> to '''Tóngchuān''' (同川; lit. 'The river-plain of copper'). All these places are part of '''Lúshuǐ''' (瀘水).<ref>The text actually says they all fall under the name, but the adaptation seems to add clarity.</ref> |- |蜀忠武侯諸葛亮伐南蠻,五月渡瀘水處,在弄棟城北,今謂之南瀘。 |'''Zhūgě Liàng''' (諸葛亮<ref>Zhuge Liang (181-234), military leader and prime minister of Shu Han 蜀漢/蜀汉 during the Three Kingdoms period.</ref>) attacked the southern barbarians, and in the fifth month of the lunar year (ie. approximately May of the year 225<ref>For more information on this campaign, see [https://en.wikipedia.org/wiki/Zhuge_Liang%27s_Southern_Campaign Zhuge Liang's Southern Campaign] at English Wikipedia.</ref>) crossed the '''Lúshuǐ''' (瀘水)<ref>The formerly questionable potential identification with Nujiang now becomes highly doubtful, in fact almost certainly incorrect.</ref> river at a place to the north of '''Lòngdòngchéng''' (弄棟城; lit. 'The town with a lane or alley of buildings'<ref>The single lane notion may be read to suggest a torturous or steep geography, yet was probably a town of some decent size in order to achieve the 城 designation.</ref>), which is known in the present-day<ref>ie. At the time of writing, which is now 1000 years ago.</ref> as '''Nánlú''' (南瀘; lit. 'The place south of the Lu [River]'). |- |兩岸葭,大如臂脛。 |Both banks of the river were huge, like limbs.<ref>Presumably referring to cliffs, rocks, outcrops, some other topographic anomaly.</ref> |- |川中氣候常熱,雖至冬,行過者皆袒衣流汗。 |The local microclimate in the river-valley<ref>An alternate translation would be '... in the Sichuan basin' though this appears to be too broad/out of context.</ref> is always warm right through to the winter, and those traversing sweat and are compelled to dress loosely. |- |又東北入戎州界為馬湖,至關邊縣門,與朱提江合,流戎門南城入外江。 |To the northeast one may enter the border of '''Róngzhōu''' (戎州; lit. 'Military Prefecture'<ref>Note that this may not be an actual place name .. further research will be required to determine how specific this reference is.</ref>) and its '''Wèimǎhú''' (為馬湖; lit. 'Horse-watering Lake'<ref>Presumably.</ref>), thence '''Guānbiānxiànmén''' (關邊縣門; lit. 'Border-Pass-County Gate'<ref>Presumably a locally significant natural pass with military benefit for defence purposes.</ref>), which together with the '''Zhūtíjiāng [River]''' (朱提江; lit. 'River of the Vermillion Stroke'<ref>Really a rather literal translation &mdash; looser and more natural for modern English may be 'Vermillion River'.</ref>) flows to a confluence<ref>入外江 &mdash; literally to 'enter an external or foreign stream'.</ref> at '''Róngménnánchéng'''' (戎門南城; lit. '[a or the] city to the south of the military gate').<ref>All rather indistinct, but carefully translated nonetheless to hopefully provide clarity of reference where present in the original.</ref> |} ===around kunming=== {| class="wikitable" style="text-align:center; width:80%;" |+ Chapter 2: ''Geography''; or ''Mountains and rivers''; or ''Mountains, River-plains, Rivers, and Headwaters'' (山川江源; ''shānchuān jiāng yuán'') — around kunming |- ! scope="col" | Original ! scope="col" | Translation |- |昆池在柘東城西,南百余裏,四十五裏<span style="color:#aaa">(案:此四字疑衍文)</span>。 |'''Kunchi''' (昆池; lit. 'The Pond of Kun'; ie. modern Dianchi<ref>滇池</ref>) is to the west<ref>In fact, geographically the lake very likely (as estimated with modern waterline) extended both to the southwest through south-southeast of the city. The city at this point was more compact and roughly centered around what is modern Kunming's Green Lake (翠湖) area. A compounding reason the writer refers to the west as the direction in which to find the lake, excluding the south, is that this is the northernmost point of the lake from which the subsequent measurement (to the south) enumerating the lake's scale is extended.</ref> of '''Tuodongcheng''' (柘東城; ie. modern Kunming), and extends some 100 or so ''li'' southward, [and] 45 ''li'' [east to west].<ref>The original literally says "[Dianchi] is west of [Kunming], 100 or so ''li'' south, 45 ''li''.". Presumably this means "... from which it is 100 li [north-to-]south, and 45 li [east-to-west].". No other interpretation presents itself as meaningful in context.</ref><span style="color:#aaa">(Untranslated comment from later attempt at interpretation.)</span> |- |水源從金馬山東北來。 |The water's source is the northeast of '''Jinmashan [Mountain]''' (金馬山; lit. 'Golden Horse Mountain'; ie. apparently an ancient toponym referring to the north-south range at the east of the Kunming plateau, but presumably particularly the higher peaks between modern Chengjiang (澄江) and southern Kunming's Dounan (斗南).<ref>The initial component of 金马碧鸡 (lit. "Golden Horse [Mountain] [and] Jade Chicken [Mountain]") referring to the west and east mountains on either side of Kunming, said to be facing one another, and named according to legend explained in the previous chapter of this translation.</ref>).<ref>The specification of this (north-eastern side of the eastern range) as the water source is interesting, though probably not entirely accurate as the watershed obviously includes all sides of the lake-valley plateau. In former times, however, it is known that numerous surface streams (now dammed or sealed) flowed toward to the lake from the northern portion of the plateau, and the city of Kunming itself was connected to the lake by river-canal in the area that is now Daguanlou Park (大观楼公园). Numerous Qing-dynasty images are available of boats here, which made overnight trips south down the lake to Kunyang (昆阳). Given that these streams were possibly higher in volume and closer to Kunming, it is understandable that ancient geographical reckoning may have considered these northern streams the primary or sole source of the lake water. Interestingly also, in recent years a historical hydrographic study has been made of Fuxian Lake (抚仙湖) &mdash; the neighbouring lake to the southeast and on the other side of the Jimashan Mountain &mdash; in conjunction with the University of New South Wales in Sydney, Australia, finding that its depth began to steadily increase a few hundred years BCE (I can't recall the reason, though perhaps this was due to the collapse or sedimentation of an underground cavern previously draining water elsewhere or pure climate change?) however I am not aware of any similar study of the historical water levels of Kunming's lake &mdash; here known as Kunchi (昆池) and now known as Dianchi (滇池), which could affect interpretation.</ref> |- |柘東城北十數余裏,官路有橋渡此。 |Over 10 ''li'' north '''Tuodong [City]''' (ie. 柘東城; modern Kunming) city, there is a river-spanning bridge<ref>橋渡 &mdash; literally '[bridge] + [cross a river]'</ref> on the military road.<ref>官路 &mdash; this may be incorrect but seems the most likely. Alternate translations would include abbreviated place names beginning with the character 官 but no such places come to mind, are referenced nearby in this text.</ref> |- |水闊二丈余,清深迅急,至碧雞山下,為昆州,因水為名也,土蠻亦呼名滇池<span style="color:#aaa">(案:今晉寧川中,自有大池,在東南,當是滇池。水不可呼池,乃蠻不能別)</span>。 |The water is over two ''zhang'' in width (ie. 10 or 20 meters or so<ref>I should look this up specifically!</ref>), clear, deep and flows rapidly to the base of '''Bijishan [Mountain]''' (碧雞山; lit. 'Jade[-Coloured] Chicken Mountain'). It is part of the '''Kunzhou''' (昆州; lit. 'Kun [river valley or flatland]') [political/administrative region], which is named after the [lake] water, which the local barbarians know as '''Dianchi''' (滇池<ref>Amusingly, with reference to modern toponyms, it seems that the barbarian name rather than the Han Chinese name was the one that stuck!</ref>). <span style="color:#aaa">(Later intepreter's note states that this refers to the modern Jinning estuary zone, a point from which the lake (modern Dianchi, or the Kunchi/[Barbarian tongue] Dianchi of this text) is located to the southeast, and draws questionable<ref>By self-admission.</ref> inferences about the local water flow.<ref>Common to certain geographical references in this text, this interpretation does not appear to make perfect sense given the directions specified in the text anyway. Given that we were focused on the north a mere few characters ago, jumping to the southernmost point of the lake seems extremely obtuse. This interpretation may have occurred via modern comprehension of the fact that there is apparently an outflow beginning in this area, taking water to the northwest through a tributary to the upper Yangtse. Personally I would class this whole section of text as evidencing little but alleged etymology, general river flow volume and a baseline contemporary engineering capacity in the general Kunming lake-plateau region with reference to bridge spans.</ref>)</span> |- |滇池水亦名東昆池,西南繞山,又西北池流為河,過安寧城下。 |'''Dianchi [Lake]''''s water is also known as '''Eastern Kunchi [Lake]''' (東昆池), it is ringed by mountains to the southwest, flows in to a river to the northwest through the '''Northwestern Lake''' (西北池)<ref>As per the previous interpretive note, this remains unclear. It could be a reference to the outflow northwest of Jinning/Kunyang, or it could be a reference to the northernmost portion of the lake's modern shores between modern Kunming and Xishan. Either way, it is referring to the western edge of the lake or some very nearby area.</ref> and flows beneath '''Anning [City]''' (安寧城). |- |亙水東西,有橋三十,一闊長三百余步。 |From east to west the waters have thirty bridges, as broad as one zhang and three hundred or so steps. |- |徒行七日程與瀘水合。 |It is a seven day journey to '''Lushui''' (瀘水). |- |又量水川在滇池南兩日程,漢舊黎州也。 |'''Liangshuichuan''' (量水川; lit. 'Measured-Water Riverplain'<ref>Possibly the measure character refers to the same grammatical/semantic shift as 又, in which case the place is called Shuichuan (水川) and not Liangshuichuan, in which case the literal meaning is merely 'Water Delta' or 'River-plain of water'.</ref>) is two days travel to the south of '''Dianchi [Lake]''' (滇池) and belonged to the '''Lizhou Region''' (黎州) during the '''Shu Kingdom of the Han Dynasty''' (漢舊).<ref>ie. Zhugeliang's time.</ref> |- |川中有大池,其水東泄。 |Within the river-plain<ref>川中</ref> lies a large water-body<ref>大池 &mdash; conventionally variously translated with overspecificity as a lake, pond or pool.</ref>, from which water flows rapidly to the east.<ref>It may be useful to identify general candidates for this probably still identifiable geographic feature and to verify any potential identification with research in to established identifications of Lizhou.</ref> |- |流處出一石竇中,流水甚廣,石竇甚狹。 |The water comes out of a stone spring, flowing remarkably broadly though the space from which it emerges from the stone is tiny. |- |土蠻雲,忽竇空,百姓憂溺。 |According to the local barbarians, the space opened suddenly, and the population were threatened with drowning.<ref>Or perhaps a more ''potential'' take: "... can open suddenly and threaten to drown the population."</ref> |- |新豐川亦有大池甚廣。 |'''Xinfengchuan''' (新豐川; lit. 'New Bountiful River-plain') also has a great and very broad lake. |} ===The ''Láncāngjiāng'' (瀾滄江; ie. Mekong) River and ''Yǒngchāng'' (永昌; ie. ''Bǎoshān'')=== {| class="wikitable" style="text-align:center; width:80%;" |+ Chapter 2: ''Geography''; or ''Mountains and rivers''; or ''Mountains, River-plains, Rivers, and Headwaters'' (山川江源; ''shānchuān jiāng yuán'') — The ''Láncāngjiāng'' (瀾滄江; ie. Mekong) River and ''Yǒngchāng'' (永昌; ie. ''Bǎoshān'') |- ! scope="col" | Original ! scope="col" | Translation |- |瀾滄江,源出吐蕃中大雪山下莎川。 |The '''Láncāngjiāng [River]''' (瀾滄江; ie. Mekong river), originates from great snowy mountains in '''Tubo [Region]''' (吐蕃; ie. the Kham Tibetan region<ref>The far southeastern portion of the Tibetan cultural zone, incorporating portions of modern Sichuan, Tibet and Yunnan provinces.</ref>, descending via '''Shāchuān''' (莎川; roughly 'Verdant Sands River-valley'<ref>By admittedly obtuse but fair reading of the component radicals of ''shā'' (莎) — ie. vegetation and sand.</ref>). |- |東南過聿賫城西,謂之瀨水河,又過順蠻部落。 |It flows southeast &mdash; to the west of '''聿賫城 [City]''' (聿賫城<ref>I must remember to look this up...</ref>) at a place known as '''Laishuihe''' (瀨水河), continuing onward past the '''Shunman [Barbarian Tribe]''' (順蠻部落; lit. 'Shun Barbarian Tribe'<ref>The ''man'' (蠻) part in the inline translation means barbarian.</ref>). |- |南流過劍川大山之西。 |It flows southward to the great mountains west of '''Jianchuan''' (劍川<ref>This area is currently the subject of a very important archaeological dig revealing the earliest significant population showing evidence of intensive rice agriculture (it also has very early, possibly the earliest stilt houses in the entire region). Its location on a small, fertile, elevated lake plateau between much of Yunnan and the Tibetan empire made it an ancient center of trade and presumably cultural and technological exchange.</ref>), |- |瀾滄江南流入海。 |The '''Lancangjiang''' (瀾滄江; ie. Mekong) [then/thereafter] flows south to the ocean.<ref>This is a huge generalization. While roughly true it neglects thousands of kilometers of malarial jungle, three prominent eastward turns (one nearby, one in Laos and one in Cambodia) and the huge Tonle Sap Lake. It is unlikely therefore that this statement reflects actual travel experience but rather a combination of assumption and literary reference. Some four hundred odd years later, literary records evidence an established trade route from Thailand's then kingdom of Ayutthaya to Yunnan overland along this very arduous route.</ref> |- |龍尾城西第七驛有橋,即永昌也。 |The seventh traveller's rest stop to the west of '''Longweicheng''' (龍尾城; ie. modern Xiaguan) has a bridge and is known as '''Yǒngchāng''' (永昌; lit. 'perpetual [goodness as embodied by sunlight]'; modern 保山/Bǎoshān<ref>Presumably this may mean seven days' journey.</ref>). |- |兩岸高險,水迅激。 |The two cliffs [at Yongchang] are extremely high and the water flows rapidly. |- |橫亙大竹索為梁,上布簀,簀上實板,仍通以竹屋蓋橋。 |All the way across span great bamboo beams<ref>大竹; lit. 'Great Bamboo'. Apparently literal use, and not referring to modern Dazhu county in Dazhou (达州達州), Sichuan (四川).</ref> covered with reed mats,<ref>上布簀 - literally 'above' [is] 'cloth' [of the type] 'reed mat'</ref> atop which are layered good and strong wooden planks,<ref>'Good and strong wooden planks' seems the best translation for 實 ('good'/'solid'/'true') in the 實板 sense used.</ref> and by means of a bamboo structure effect a covered bridge.<ref>This last part is a little interpretive, as the precise sense of 仍通以 is unclear to me. In any event, the content is essentially correct.</ref> |- |其穿索石孔,孔明所鑿也。 |It passes through the stone hole bored by '''Zhuge Liang''' (孔明). |- |昔諸葛征永昌,於此築城。 |Previously, he journeyed to<ref>Probably meaning went on an aggressive military campaign to...</ref> '''Yongchang''' (ie. modern Baoshan) from these fortifications. |- |今江西山上有廢城遺跡及古碑猶存,亦有神祠廟存焉。 |Today, within the mountains to the west of the river remnants of a ruined town<ref>廢城 — could be a 'ruined city wall' but town seems more in keeping with the prior sense of the translation in explaining the place as one that was inhabited for periods of time and used as an ancient fortification.</ref> and an ancient stelae<ref>古碑</ref> are still extant,<ref>猶存 — literally 'still survive'.</ref> as is a temple to the ancestors.<ref>神祠廟 — One could take 神 to mean gods, and 祠 to mean Confucian-style ancestor worship. That may be a little liberal, but at a minimum the sense of a temple is apparently accurate, as is the Confucian component. It is interesting to note, given the early period in history discussed, that Confucius (551–479 BCE) was from Qufu in Shandong (山东曲阜), which is virtually the opposite side of China, and that Zhugeliang hailed from the same region, a mere 50km to the east of Qufu in modern Yinan county (沂南县).</ref> |- |又麗水,一名祿{曰鬥}江<span style="color:#aaa">(案:「{曰鬥}」字,字書不載)</span>。 |Another magnificent river is the '''Lucky [Raging Gorge] River''' (祿{曰鬥}江<ref>The character {曰鬥} is of unknown pronunciation but presumably refers in its initial radical 「曰」to 'speech' or rather the idea of the creation of noise, and in its latter 「鬥」 ("gate" or "pass") radical to the a river passing betwixt a deep or tight gorge. Thus, a combined meaning has here been assumed from component radicals.</ref>).<span style="color:#aaa">(Previous transliterator's note: The character to which {曰鬥} refers is unknown.)</span> |- |源自邏些城三危山下。 |It originates from beneath '''Sanwei Mountain''' (三危山; lit. 'Three Dangers Mountain') at '''Luoxie [City]''' (邏些城; lit. '[Walled]<ref>Probably.</ref> Settlement of the Few [Patrols or Routes]'). |- |南流過麗水城西,又南至蒼望。 |To the south it flows beyond the west of '''Lishui [City]''' (麗水城; lit. '[City of] Beautiful Waters'), and proceeds further southward toward the Cang Mountain [range].<ref>蒼 is used here to refer to the range and could potentially be interpreted in a generic fashion but is here from context clearly the local toponym.</ref> |- |又東南過道雙王道勿川。 |Continuing southeast [southwest] it passes the '''Dàoshuāng,'''<ref>A rough reconstruction of 道雙 into Dawswraeng supports the geography and corruption into Datwin town north of Tigyaing.</ref> king's '''Dàowù'''<ref>道無 reconstructed is Dawmu and this appear geographically consistent and phonetically corrupted as Tawma west of Myataung and north of Tagaung.</ref> valley.<ref>In the '''New Book of Tang ('''新唐书), there are 35 tribes listed in the Pyu Kingdom's adminstration. Among these are the 道双,道勿 and 道瓮''.'' It is likely that '''道''' is a tribal prefix for a frontier group. The '''Míchén''' king in 802AD went to the Tang and had a member of the 道勿 tribe enoffed as the heir according to the Imperial Archives Volume 965.</ref> |- |西過彌諾道立柵,又西與彌諾江合流。 |To the west it passes '''Mínuòdàolì''' <ref>Minuo is associated with the Chindwin while 道 is a tribal prefix. This means that the Pyu administered the Minuo and the Dao Li tribe around present day Mandaly. </ref> and further west joins its waters with the '''Minuo River''' (彌諾江; ie. Chindwin River). |- |過驃國南入於海。 |It crosses through the '''Country of the Piao''' (驃國<ref>Probably easily resolvable, possibly related to Pyu as in Mon-Khmer language family predecessor kingdoms in Burma.</ref>) and thence in to the ocean.<ref>This probably refers to second hand or tertiary information about the distant delta of the river, which would have been a significant and dangerous journey for the highland Yunnanese (eg. Nanzhao) or other Chinese peoples owing to the ease of death from then relatively untreatable and misunderstood malaria.</ref> |- |水中有蛟龍、鱷魚、烏鲗魚。 |Among its waters swim large<ref>Literally 'dragon sized' (蛟龍).</ref> shrimp, crocodiles,<ref>鱷魚</ref> and black cuttlefish.<ref>Loose translation of 烏鲗魚 which may have no modern equivalent.</ref> |- |又有水獸似牛,遊泳則波濤沸湧,狀如海潮。 |There are also water-beasts that are like buffalo,<ref>Here possibly referring to now extinct rhinoceros or hippopotamus endemic to the area?</ref> which when they swim create waves in the water<ref>This part is rather vague and may require further attention.</ref> like the tide. |- |《禹貢》:導黑水至於三危,蓋此是也。 |[A quote from] ''Yugong'' (禹貢<ref>Not sure if this is a book or a person!</ref>): Guide<ref>導</ref> the black waters<ref>黑水</ref> to enter<ref>至於</ref> '''The Three Dangers''' (三危; ''sanwei''), this is as it should be. |- |或雲源當是大月河,恐非也。 |Otherwise the source in Yunnan is thought to be the '''Great Moon River''' (大月河), which is afraid of nothing.<ref>恐非也 — [afraid] [not] [is/indeed]</ref> |- |又彌諾江在麗水西,源出西北小婆羅門國。 |The '''Minuojiang''' (彌諾江) lies to the west of '''Lishui''' (麗水), appearing from the northwest in the '''Little Brahmin Country''' (小婆羅門國<ref>In the Hukawng Valley where the Chindwin originates and which is north of Anxi as mentioned elsewhere in the text. </ref>) |- |南流過湧腋苴川,又東南至兜彌伽木柵,分流繞柵,居沙灘南北一百裏,東西六十裏。 |Southward it flows through [past] the '''Yongyeju Valley''' (湧腋苴川; <ref>This is the Kabaw Valley. To be consistent with geography I amended it to imply it flows past the valley rather than through it. Fan Chuo later in the document mentions that he recorded various words of the barbarians. The Ju (苴) means beautiful in the Bai language at the time. The current characters for this toponym are not reliable to reconstruct it as the Bai language back then cannot be reconsntructed as of yet. The Chindwin does pass the Kabaw Valley.</ref>), then onward to the southeast to the border<ref>柵 — more literally fence.</ref> of '''Doumijia''' (兜彌伽木; MC: Tuwmjiegja <ref>This series of characters looks suspiciously like a transliteration from a non Chinese (possibly Tibeto-Burman) language but more likely a Indianized name. Such as Dhumika (Smoky)</ref>) wooden stockade, then splits to wind around the border and stop within a sandy water body that is 100 ''li'' in north-to-south by 60 ''li'' east-west.<ref>This is the Mingin sandbank where the Chindwin River splits around it before connecting back together and flowing into the Irrawaddy. </ref> |- |合流正東,過彌臣國,南入於海。 |Due east it converges together and passes the '''State of Míchén''' (臣國<ref>An identification for this should be possible. In following the Khmer identification of the prior portion of the text, this would very likely be the fellow Indianized kingdom of Chenla/Zhenla or the Chams, who were only conquered by the invading Vietnamese/Chinese armies in central Vietnam later on around the dawn of the Ming Dynasty.</ref>). South it enters at the sea. |} ==References and notes== {{reflist}} 8bt5drefx3r55n3k2z46dpo60m2hudb Themes in Literature/Isolation and Community/Preface 0 468723 4675456 4424523 2026-10-10T15:47:58Z SMAMBA 3628049 Remove inaccurate refugee description at the request of the person described. 4675456 wikitext text/x-wiki This volume of ''Themes in Literature'' explores the complex relationship between isolation and community through the lens of literature. The individual lessons collected here were written by college students. With a few exceptions, these lessons examine single literary texts that are readily available on the web. The texts presented explore how societal forces and individual choices intersect to shape our understanding of belonging, displacement, and the search for meaning in a world characterized by both profound connection and stark isolation. The selected works include a diverse collection of short stories examining the complexities of human connection and isolation. Anton Chekhov's "The Bet" delves into the psychological effects of solitude on a man imprisoned for fifteen years. This theme of isolation continues in Ray Bradbury's "Night Call, Collect," a science fiction story about an aging astronaut haunted by phone calls from Earth, and Julio Cortázar’s "The Southern Thruway," which chronicles a group of travelers trapped in a massive traffic jam. Ken Liu's "The Paper Menagerie" explores how cultural differences can lead to isolation between a Chinese immigrant mother and her American-born son. Oscar Wilde's parables, "The Happy Prince" and "The Selfish Giant," use allegorical figures to consider the consequences of selfishness and the transformative power of compassion. Finally, the collection examines "Dream House as Choose Your Own Adventure," a chapter from Carmen Maria Machado's memoir ''In The Dream House'', recounting her experiences in an abusive relationship. Two novels by Octavia Butler, ''Kindred'' and ''Dawn'', explore the power dynamics in relationships shaped by historical trauma and the potential for connection and transformation despite seemingly insurmountable obstacles. ''Kindred'' follows Dana, a young African American woman who travels back in time to a pre-Civil War plantation, forcing her to confront the horrors of slavery and her own family history. ''Dawn'', the first book in the ''Xenogenesis'' series, imagines a future where humanity has been rescued from the brink of extinction by the Oankali, an alien species with a unique approach to genetic engineering and community building. The volume also analyzes a selection of poems that use vivid imagery and unconventional syntax to examine feelings of loneliness and the search for connection. Three poems by Emily Dickinson—"Much Madness is divinest Sense," "They shut me up in Prose," and "The Soul selects her own Society"—use the metaphor of confinement to explore themes of social conformity, self-expression, and the search for genuine connection. Two poems by Langston Hughes, "Let America Be America Again" and "Mother to Son," consider the challenges faced by marginalized communities in their pursuit of the American dream, using the extended metaphor of a difficult journey to convey resilience and hope. Two short films, ''Belonging'' by Pierre Ieong and ''Beautiful Dreamer'' by David Gaddie, offer meditations on the search for connection across cultures and time. ''Belonging'' tells the story of George, a young man who finds solace and community in a diverse international school in Paris. ''Beautiful Dreamer'', a science fiction film adapted from Ken Liu's short story "Memories of My Mother," explores the complexities of a mother-daughter relationship impacted by an experimental treatment that allows the mother to live for decades but only visit her daughter at certain points in her life. Last but not least, the lesson "The Deluded Self" examines the complexities of self-delusion and its impact on perception and relationships by contrasting two texts, “''Dream House'' as Choose Your Own Adventure” by Carmen Maria Machado and the play ''No Exit'' by Jean-Paul Sartre. Machado story uses a choose-your-own-adventure format to recount experiences in an abusive relationship, emphasizing the difficulty of escaping self-deception as choices ultimately lead to the same outcome. Sartre's play explores the concept of bad faith and the façades people construct to avoid facing their true selves. {{BookCat}} c4q8u1ciivvxvjdhmqm1d2s6ziyhtbz User:Dom walden/Multivariate Analytic Combinatorics/Homology of Critical Points 2 480750 4675504 4673993 2026-10-11T08:52:41Z Dom walden 3209423 /* Step 2 */ 4675504 wikitext text/x-wiki == Introduction == Morse theory tells us that the topology of M only changes at its critical points. The "Morse data" tells us the topology at each critical point. Attaching this Morse data together gives us a space which is homopotically eqivalent to M. This space is a "cell complex", which has an easy to calculate homology. Theorem: Our domain of convergence is homotopic to a cell complex of dimension at most <math display="inline">2n - d - 1</math>.<ref>This is theorem D.23 in Pemantle, Wilson and Melczer 2024, pp. 546. Also theorem in section 1.2*/5.2* in SMT pp. 200.</ref> Proof: # <math display="inline">X</math> is our entire domain, <math display="inline">\mathcal{V}</math> our variety # Project our entire domain to complex projective space <math display="inline">Z = \pi(X) \subset \C\mathbb{P}^n - H</math> [define H] # Define a linear subspace <math display="inline">G \subset \C\mathbb{P}^n</math> of dimension <math display="inline">d - 1</math> # Define a Morse function on <math display="inline">f: \C\mathbb{P}^n \to \R</math> which approximates the distance from <math display="inline">G</math> and such that <math display="inline">f^{-1}(0) = G</math> and <math display="inline">f^{-1}(1) = H</math> # We "build" <math display="inline">X - \mathcal{V}</math> from <math display="inline">\pi^{-1}(G \cap Z) \cap (X - \mathcal{V})</math> by attaching CW complexes at critical points which are of at most dimension <math display="inline">2n - d - 1</math> # At a critical point, the normal Morse data is <math display="inline">(J, K) = \coprod_x (J_x, K_x)</math> and the relative complex link is <math display="inline">\mathcal{L}^\pi = \coprod_x \mathcal{L}_x</math> # We show that the quotient <math display="inline">J_x/K_x</math> is homotopic to a CW complex of dimension <math display="inline">\leq 2n - d - 1</math> # The neighbourhood of <math display="inline">x</math> in <math display="inline">J_x</math> is homeomorphic to the cone in <math display="inline">L_x(X - \mathcal{V})</math>, and removing the point <math display="inline">x</math> increases the homotopy dimension to at most the homotopy dimension of <math display="inline">L_x</math> # <math display="inline">(J_x \cup \{x\}, K_x)</math> is homotopic to <math display="inline">(\text{cone}(\mathcal{L}_x), \mathcal{L}_x)</math> # <math display="inline">\mathcal{L}_x</math> is homotopic to a CW complex of dimension at most <math display="inline">2n - d - 1</math> # The tangential Morse data at the critical point is homotopic to the pair <math display="inline">(D^\lambda, \partial D^\lambda)</math> # Therefore, at each critical point a space has been added homotopic to a CW complex of dimension at most <math display="inline">2n - d - 1</math>. Theorem: If <math display="inline">X</math> is the complement in <math display="inline">\C^n</math> of a complex variety <math display="inline">\mathcal{V}</math> of dimension <math display="inline">d</math> then <math display="inline">X</math> is homotopic to a CW complex of dimension at most <math display="inline">2n - d - 1</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 546.</ref> Proof: # We build <math display="inline">X</math> by attaching cells of dimension at most <math display="inline">2n - d - 1</math> at each critical point. ## Prove that we can do this without changing the homotopy(?) ## We use Thom's Isotopy Lemma to prove that there is a strong deformation retraction, stopping only at critical points. # Prove these cells are a product of the normal and tangential Morse data. ## Normal data: <math display="inline">(\mathcal{L}(S), \partial \mathcal{L}(S)) \times (D^1, \partial D^1)</math> [GM pp. 18] ## Tangential data: <math display="inline">(B_\delta \cap f^{-1}[v - \epsilon, v + \epsilon], B_\delta \cap f^{-1}(v - \epsilon))</math> for <math display="inline">f</math> restricted to <math display="inline">X</math> (or <math display="inline">\mathcal{V}</math>?) [GM pp. 63-64] # If <math display="inline">k</math> is the dimension of the strata, then ## If <math display="inline">k = d</math> then it is a smooth point and the cell is the product of <math display="inline">S^{2(n-d)-1}</math> and the tangential data is dimension at most <math display="inline">d</math>. ## If <math display="inline">k < d</math>, ... <ref>Pemantle, Wilson and Melczer 2024, pp. 547.</ref> == Example in one dimension == Domain with singularities v_1, v_2, ..., v_i Define our height function f... Start with our entire domain X Reduce from X to X_i+ by using Thom's Isotopy lemma to do a strong deformation retract == Thom's isotopy lemma == We present a modified version of Thom's (first) isotopy lemma, less general than the original but more obviously relevant to our situation. Theorem: Suppose <math display="inline">Z</math> is a closed subset of a smooth manifold <math display="inline">M</math> which admits a Whitney stratification and <math display="inline">h : M \to \R</math> is a proper Morse function which has no critical values on <math display="inline">Z</math>. Then, the level sets of <math display="inline">Z</math> are homeomorphic by a homeomorphism that preserves the strata of <math display="inline">Z</math>.<ref>For various versions of the full statement of the theorem, see Mather 2012, pp. 499, Goresky and MacPherson 1988, pp. 41, or Pemantle, Wilson and Melczer 2024, pp. 541.</ref> Proof: # Construct control data for <math display="inline">Z</math> compatible with <math display="inline">h</math>. ## [Prop 7.1] If <math display="inline">h</math> is smooth on <math display="inline">Z</math> and is a submersion for each strata then there exists a family of control data for <math display="inline">Z</math> compatible with <math display="inline">h</math>.<ref>Mather 2012, pp. 488.</ref> # This makes <math display="inline">Z</math> an abstract stratified set and <math display="inline">f</math> a controlled submersion. # A controlled submersion has, for any smooth vector field on <math display="inline">\R</math>, a controlled vector field on <math display="inline">Z</math> (a "lift"?)<ref>Mather 2012, pp. 493.</ref> # A controlled vector field has a unique one-parameter family of homeomorphisms of <math display="inline">Z</math> which commute with <math display="inline">h</math>.<ref>Mather 2012, pp. 496.</ref> # This makes <math display="inline">h</math> a locally trivial fibration. [Prop 10.2]<ref>Mather 2012, pp. 499.</ref> Control data: A system of '''control data''' for <math display="inline">Z</math> consists of, for each stratum <math display="inline">X</math> of <math display="inline">Z</math>, * a '''tubular neighbourhood''' <math display="inline">T_X</math> of <math display="inline">X</math> * a '''tubular projection function''' <math display="inline">\pi_X: T_X \to X</math>, and * a '''tubular distance function''' <math display="inline">\rho_X: T_X \to \R</math> such that <math display="inline">\rho_X^{-1}(0) = X</math><ref>Goresky and MacPherson 1988, pp. 42.</ref> [illustration] such that if <math display="inline">X < Y</math> are strata in <math display="inline">Z</math>, then <math display="block">\pi_X \pi_Y(m) = \pi_X(m),</math> <math display="block">\rho_X \pi_Y(m) = \rho_X(m)</math> for all <math display="inline">m \in |T_X| \cap |T_Y|</math> such that <math display="inline">\pi_Y(m) \in |T_X|</math>. If, for all strata <math display="inline">X</math> and all <math display="inline">m \in |T_X|</math>, we have <math display="inline">h \pi_X(m) = h(m)</math>, then this control data will be said to be compatible with <math display="inline">h</math>.<ref>Mather 2012, pp. 488.</ref> We prove that if <math display="inline">h</math> is smooth on <math display="inline">Z</math> and is a submersion for each strata then there exists a family of control data for <math display="inline">Z</math> compatible with <math display="inline">h</math>.<ref>Mather 2012, pp. 488, prop 7.1.</ref> Let <math display="inline">Z_k</math> be the union of strata of <math display="inline">Z</math> of dimension less than <math display="inline">k</math>. We prove by induction on <math display="inline">k</math>. To construct the tubular neighbourhood <math display="inline">T_X</math> of a stratum <math display="inline">X</math> of dimension less than <math display="inline">k</math>. For <math display="inline">l \leq k</math>, let <math display="inline">U_l</math> denote the union of all <math display="inline">|T_Y|</math> for <math display="inline">Y < X</math> and <math display="inline">\dim Y \geq l</math>. Let <math display="inline">X_l = U_l \cap X</math>.<ref>Mather 2012, pp. 489.</ref> For <math display="inline">l = k</math>, <math display="inline">X_k = \empty</math>. Assume by induction that <math display="inline">T_{l+1}</math> has been constructed and that if <math display="inline">Y < X</math>, <math display="inline">\dim Y \geq l + 1</math>, <math display="inline">m \in |T_{l+1}| \cap |T_Y|</math> and <math display="inline">\pi_{l+1}(m) \in |T_Y|</math> (<math display="inline">\pi_{l+1} = \pi_{T_{l+1}}</math>) then<ref>Mather 2012, pp. 489-490.</ref> <math display="block">\rho_Y \pi_{l+1}(m) = \rho_Y(m),</math> <math display="block">\pi_Y \pi_{l+1}(m) = \pi_Y(m).</math> We wish to construct a tubular neighbourhood <math display="inline">T_{X,Y}</math> of <math display="inline">|T_Y| \cap X</math> whose restriction to <math display="inline">|T_Y| \cap X_{l+1}</math> is isomorphic to the restriction of <math display="inline">T_{l+1}</math> such that if <math display="inline">m \in |T_{X,Y}| \cap |T_Y|</math> and <math display="inline">\pi_{X,Y}(m) \in |T_Y|</math> (<math display="inline">\pi_{X,Y} = \pi_{T_{X,Y}}</math>) then <math display="block">\rho_Y \pi_{X,Y}(m) = \rho_Y(m),</math> <math display="block">\pi_Y \pi_{X,Y}(m) = \pi_Y(m).</math> By shrinking <math display="inline">|T_Y|</math> if necessary, this relation is already satisfied if <math display="inline">m \in |T_{l+1}| \cap |T_Y|</math> and <math display="inline">\pi_{l+1}(m) \in |T_Y|</math> with <math display="inline">T_{l+1}</math> in place of <math display="inline">T_{X,Y}</math> and <math display="inline">\pi_{l+1}</math> in place of <math display="inline">\pi_{X,Y}</math>. By the definition, if <math display="inline">m \in |T_{l+1}|</math> then there exists <math display="inline">Z < X</math> with <math display="inline">\dim Z > l</math>, <math display="inline">m \in |T_Z|</math> and <math display="inline">\pi_{l+1}(m) \in |T_Z|</math>. We have that <math display="inline">\pi_{l+1}(m) \in |T_Y| \cap |T_Z|</math> and therefore <math display="inline">Y < Z</math>. Therefore<ref>Mather 2012, pp. 490.</ref> <math display="block">\rho_Y \pi_{l+1}(m) = \rho_Y \pi_Z \pi_{l+1}(m) = \rho_Y \pi_Z(m) = \rho_Y(m),</math> <math display="block">\pi_Y \pi_{l+1}(m) = \pi_Y \pi_Z \pi_{l+1}(m) = \pi_Y \pi_Z(m) = \pi_Y(m).</math> We can prove that, by shrinking <math display="inline">|T_Y|</math>, <math display="inline">(\rho_Y, \pi_Y): |T_Y| \cap X \to \R \times Y</math> is a submersion [prop 7.3?] and that <math display="inline">T_{X,Y}</math> is compatible with <math display="inline">(\rho_Y, \pi_Y): |T_Y| \cap X_{l+1} \to \R \times Y</math>, i.e. <math display="inline">(\rho_Y, \pi_Y) \pi_{X,Y}(m) = (\rho_Y, \pi_Y)(m)</math>(?). To prove it is a submersion, for the tubular neighbourhood <math display="inline">T = (E, \epsilon, \psi)</math> there exists a smooth positive function <math display="inline">\epsilon'</math> such that <math display="block">(\rho_T, \pi_T): Y \cap |T|_{\epsilon'}^0 \to \R \times X,</math> where <math display="inline">|T|_{\epsilon'}^0 = \psi(B_\epsilon \cap B_{\epsilon'})</math>, is a submersion. If <math display="inline">\Sigma</math> is the set <math display="inline">y \in |T|</math> such that the rank of <math display="block">(\rho_T, \pi_T): T \cap |T| \to \R \times X</math> at <math display="inline">y</math> is less than <math display="inline">\dim(\R \times X)</math>. We need to prove that for any <math display="inline">x \in X</math> there exists a neighbourhood of <math display="inline">x</math> which does not intersect with <math display="inline">\Sigma</math>, i.e. the map is not a submersion in this neighbourhood. It follows from [lemma 7.2] that it is enough to prove for <math display="inline">M = \R^m</math>, <math display="inline">X = \R^{m-c} \times 0_c</math> and <math display="inline">T</math> is the '''standard tubular neighbourhood'''.<ref>Mather 2012, pp. 489.</ref> By standard tubular neighbourhood, we mean the trivial bundle with base <math display="inline">\R^{m-c}</math> and fibre <math display="inline">\R^c</math> where <math display="inline">\pi: \R^m \to \R^{m-c}</math>...<ref>Mather 2012, pp. 488.</ref> For <math display="inline">y \in |T| - \R^{m-c}</math>, the kernal of the differential of <math display="inline">(\pi_T, \rho_T)</math> at <math display="inline">y</math> is the orthogonal complement of <math display="inline">(\R^{m-c} \times 0_c) \oplus \stackrel{\frown}{y \pi_T(y)}</math> in <math display="inline">\R^m</math>. By the Whitney conditions, we have that for <math display="inline">y</math> near <math display="inline">\R^{m-c}</math>, <math display="inline">(\R^{m-c} \times 0_c) \oplus \stackrel{\frown}{y \pi_T(y)}</math> is close to the set of <math display="inline">m - c + 1</math> planes in <math display="inline">m-</math>space to an <math display="inline">m - c + 1</math> plane in <math display="inline">TY_y</math>. Therefore, for <math display="inline">y</math> near enough to <math display="inline">\R^{m-c}</math>, <math display="inline">TY_y</math> is transverse to the kernal of the differential of <math display="inline">(\pi_T, \rho_T)</math> and, therefore, is a submersion when restricted to <math display="inline">Y</math>.<ref>Mather 2012, pp. 489.</ref> To prove that <math display="inline">T_{X,Y}</math> is compatible with <math display="inline">(\rho_Y, \pi_Y): |T_Y| \cap X_{l+1} \to \R \times Y</math>...<ref>Mather 2012, pp. 490.</ref> Therefore, there exists a tubular neighbourhood <math display="inline">T_0</math> of <math display="inline">X_0</math> satisfying <math display="block">\rho_Y \pi_0(m) = \rho_Y(m),</math> <math display="block">\pi_Y \pi_0(m) = \pi_Y(m).</math> From this we can prove that <math display="inline">T_0</math> is compatible with <math display="inline">h</math>. Replacing <math display="inline">T_0</math> with a smaller tubular neighbourhood if necessary we can assume <math display="inline">m \in |T_0|</math> such that for some <math display="inline">Y < X</math>, <math display="inline">m \in |T_Y|</math> and <math display="inline">\pi_0(m) \in |T_Y|</math>, then<ref>Mather 2012, pp. 490.</ref> <math display="block">h \pi_0(m) = h \pi_Y \pi_0(m) = h \pi_Y(m) = h(m).</math> By the generalised tubular neighourhood theorem [prop 7.2?], we can replace <math display="inline">T_0</math> with a tubular neighbourhood <math display="inline">T</math> of <math display="inline">X</math> compatible with <math display="inline">h</math>. This completes the construction of <math display="inline">T_X</math>.<ref>Mather 2012, pp. 491.</ref> This makes <math display="inline">Z</math> an '''abstract stratified set''' with axioms...<ref>Mather 2012, pp. 491-492.</ref> This also makes <math display="inline">h</math> a '''controlled submersion''' because # <math display="inline">h|X: X \to \R</math> is a smooth submersion on each strata <math display="inline">X</math> of <math display="inline">Z</math>, and # for each stratum <math display="inline">X</math> there is a tubular neighbourhood <math display="inline">T'_X</math> such that <math display="inline">h(v) = h \pi_X(v)</math> for all <math display="inline">v \in T'_X</math>.<ref>Mather 2012, pp. 493.</ref> The core of this is the concept of a '''vector field'''. A vector field is a function which assigns, for each point <math display="inline">p</math> in a space, a '''vector''', which can be represented by an arrow whose tail starts at <math display="inline">p</math>.<ref>Henle 1979, pp. 33.</ref> [picture] Imagine we have a vector field <math display="inline">v(x)</math> defined in a space and draw a line through our space. At each point along this line the vector field assigns a vector. If we move each point in this line along the arrow defined by this vector in the direction of the arrow head. This "flows" the entire line along the vectors. [picture] We define a '''stratified vector field''' <math display="inline">\eta</math> on <math display="inline">Z</math> to be a family of smooth vector fields <math display="inline">\eta_X</math>, one for each strata <math display="inline">X</math> of <math display="inline">Z</math>.<ref>Mather 2012, pp. 493.</ref> We define a '''controlled vector field''' <math display="inline">\eta</math> on <math display="inline">Z</math> to be a stratified vector field such that for any strata <math display="inline">Y</math> there exists a tubular neighbourhood <math display="inline">T'_Y</math> such that for any <math display="inline">X > Y</math> and any <math display="inline">v \in T'_X \cap X</math><ref>Mather 2012, pp. 493.</ref> <math display="block">\eta_X \rho_{Y,X}(v) = 0,</math> <math display="block">(\pi_{Y,X})_* \eta_X(v) = \eta_Y (\pi_{Y,X}(v)).</math> We prove that if <math display="inline">h</math> is a controlled submersion then, for any smooth vector field <math display="inline">\zeta</math> on <math display="inline">\R</math> there is a controlled vector field <math display="inline">\eta</math> on <math display="inline">Z</math> such that <math display="inline">h_* \eta(v) = \zeta(h(v))</math> for all <math display="inline">v \in Z</math>.<ref>Mather 2012, pp. 493.</ref> Proceeding by induction on the maximum dimension of the strata of <math display="inline">Z</math>, we define <math display="inline">Z_k</math> to be the union of strata of <math display="inline">Z</math> of dimension at most <math display="inline">k</math>. The tubular neighbourhood of <math display="inline">Z_k</math> is the intersection of the tubular neighbourhoods of each strata in <math display="inline">Z_k</math> with <math display="inline">Z</math>. The projection and distance functions are the restrictions of the respective functions of <math display="inline">Z</math>. It is trivially true when the maximum dimension of strata in <math display="inline">Z</math> is zero. Assume it is true for <math display="inline">k</math> and construct each <math display="inline">\eta_X</math> separately for each stratum <math display="inline">X</math> of dimension <math display="inline">k + 1</math>. By the assumption that we have controlled vector fields for all strata <math display="inline">Y</math> of dimension at most <math display="inline">k</math>, we have the two control conditions defined above for any <math display="inline">X > Y</math> and that there is a neighbourhood <math display="inline">T^1_Y</math> such that <math display="inline">h(v) = h \pi_Y(v)</math> for <math display="inline">v \in T^1_Y</math>. We want to prove that for all <math display="inline">Y < X</math>, the control conditions are satisfied for all <math display="inline">v \in T^2_Y</math> and that <math display="inline">h_*\eta_X(v) = \zeta(v)</math> for all <math display="inline">v \in X</math>. Take a point <math display="inline">x \in X</math> and define the set <math display="inline">S_v</math> of strata <math display="inline">Y < X</math> such that <math display="inline">v \in T^2_Y</math>. <math display="inline">S_v</math> is totally ordered since if <math display="inline">Y_1</math> and <math display="inline">Y_2</math> are not comparable then <math display="inline">T^2_{Y_1} \cap T^2_{Y_2} = \empty</math>. Therefore, there is a largest member <math display="inline">Y = Y_v</math>. Assume the control conditions hold for <math display="inline">Y = Y_v</math>. Then they hold for all <math display="inline">Y_i \in S_v</math>. For, either <math display="inline">Y_i = Y</math> or <math display="inline">Y_i < Y</math>. In the latter case, <math display="inline">\pi_Y(v) \in T^1_{Y_i}</math> (by the choice of <math display="inline">T^2_Y</math>'s [is this why?]. Then <math display="block">\begin{align} \eta_X(v) \rho_{Y_i,X}(v) &= \eta_X \rho_{Y_i,Y} \pi_{Y,X}(v) \\ &= (\pi_{Y,X})_* \eta_X(v) \rho_{Y_i,Y} \\ &= \eta_Y(\pi_{Y,X}(v)) \rho_{Y_i,Y} \\ &= 0 \end{align}</math> and <math display="block">\begin{align} (\pi_{Y_i,X})_* \eta_X(v) &= (\pi_{Y_i,Y})_* (\pi_{Y,X})_* \eta_X(v) \\ &= (\pi_{Y_i,Y})_* \eta_Y(v) (\pi_{Y,X}) \\ &= \eta_{Y_i}(\pi_{Y_i,Y} \pi_{Y,X}(v)) \\ &= \eta_{Y_i}(\pi_{Y_i,X}(v)) \end{align}</math> and, therefore, condition holds for all <math display="inline">Y_i \in S_v</math>. Also, <math display="block">\begin{align} h_* \eta_X(v) &= (h \circ \pi_{Y,X})_* \eta_X(v) \\ &= h_* \eta_Y (\pi_{Y,X}(v)) \\ &= \zeta(f(v)) \end{align}</math> and, therefore, the conclusion of the theorem holds at <math display="inline">v</math>. This shows we can construct <math display="inline">\eta_X</math> satisfying the control conditions when <math display="inline">S_v</math> is non-empty and satisfying the theorem when <math display="inline">S_v</math> is empty. The set of vectors satisfying these conditions is convex in <math display="inline">TX_v</math>, and so we construct <math display="inline">\eta_X</math> globally via a partition of unity.<ref>Mather 2012, pp. 493-495.</ref> Finally, we prove that a controlled vector field has a unique one-parameter family of homeomorphisms of <math display="inline">Z</math> which commute with <math display="inline">h</math>.<ref>Mather 2012, this combines Proposition 10.1 and Corollary 10.2 on pp. 496 and 497, respectively.</ref> For each stratum <math display="inline">X</math> of <math display="inline">Z</math>, <math display="inline">\eta_X</math> generates a unique smooth local one-parameter group <math display="inline">(J_X, \alpha_X)</math> of diffeomorphisms of <math display="inline">X</math> (by standard results of differential geometry), such that <math display="inline">\frac{d}{dt} \alpha(t, v)|_{t=0} = \eta_X(v)</math>, <math display="inline">J_X</math> is an open subset of <math display="inline">\R \times Z</math>, ... If we define <math display="inline">(J, \alpha)</math> by <math display="block">J = \bigcup_{X \in S} J_X</math> <math display="block">\alpha = \bigcup_{X \in S} \alpha_X</math> we can prove that this is a local one-parameter family of homeomorphisms.<ref>Mather 2012, pp. 496.</ref> Firstly, it is clear that # <math display="inline">0 \times Z \subseteq J</math> and <math display="inline">\alpha(0, v) = v</math> for all <math display="inline">v \in Z</math>. # If <math display="inline">v \in Z</math> then <math display="inline">J_v = J \cap (\R \times v) \subseteq \R</math> is an open interval <math display="inline">(a_v, b_v)</math>, possibly infinite at one or both ends. # If <math display="inline">v \in Z</math> and <math display="inline">t, s, t + s</math> are in <math display="inline">(a_v, b_v)</math> then <math display="inline">\alpha(t + s, v) = \alpha(t, \alpha(s, v))</math>.<ref>Mather 2012, pp. 495.</ref> Secondly, it is clear that <math display="inline">\eta</math> generates <math display="inline">\alpha</math> because # Each stratum <math display="inline">X</math> of <math display="inline">Z</math> is invariant under <math display="inline">\alpha</math>, i.e. <math display="inline">\alpha[J \cap (\R \times X)] \subseteq X</math>. # For each <math display="inline">v \in Z</math>, the map <math display="inline">t \to \alpha(t, v)</math> of <math display="inline">(a_v, b_v)</math> into the stratum which contains <math display="inline">v</math> is <math display="inline">C^1</math>. # For any <math display="inline">(t, v) \in Z</math>(?) we have <math display="inline">d/dt \alpha(t, v) = \eta(\alpha(t, v))</math>.<ref>Mather 2012, pp. 495.</ref> It is unique because each <math display="inline">(J_X, \alpha_X)</math> is unique. We just need to prove that <math display="inline">J</math> is open, <math display="inline">\alpha</math> is continuous, and for any <math display="inline">v \in Z</math> and any compact set <math display="inline">K \subseteq Z</math> there exists <math display="inline">\epsilon > 0</math> such that <math display="inline">\alpha(t, v) \notin K</math> if <math display="inline">t \in (a_v, a_v + \epsilon) \cup (b_v - \epsilon, b_v)</math>.<ref>Mather 2012, pp. 495.</ref> For the latter-most condition, if it did not hold then there exists...<ref>Mather 2012, pp. 496-497.</ref> We prove there is a homeomorphism <math display="inline">f: Z \to h^{-1}(0) \times \R</math> such that <math display="inline">\pi \circ f = h</math>, where <math display="inline">\pi: h^{-1}(0) \times \R \to \R</math> is projection to the second factor. For the coordinate vector field <math display="inline">\partial</math> on <math display="inline">\R</math>, by [prop 9.1] there is a controlled vector field <math display="inline">\tilde\partial</math> such that <math display="inline">f_* \tilde\partial(v) = \partial(h(v))</math> for <math display="inline">v \in Z</math>. By [prop 10.1], <math display="inline">\tilde\partial</math> generates a local one-parameter group <math display="inline">(J, \alpha)</math> such that <math display="block">h(\alpha(t,v)) = h(v) + t</math> <math display="inline">h</math> is proper and [d] holds, so <math display="inline">J = \R \times Z</math>. If we define <math display="inline">f</math> as <math display="block">f(v) = (\alpha(-t, v), h(v))</math> then <math display="inline">f</math> maps <math display="inline">Z</math> into <math display="inline">h^{-1}(0) \times \R</math> and <math display="inline">\pi \circ f = h</math>. If we define <math display="inline">\bar f: h^{-1}(0) \times \R \to Z</math> as <math display="block">\bar f(v, t) = \alpha(t, v)</math> then <math display="inline">f \bar f = \bar f f = Id</math> and <math display="inline">f</math> is a homeomorphism.<ref>Mather 2012, pp. 497.</ref> == Topology at critical points == Theorem: If there is a critical point <math display="inline">p</math> in the singular variety <math display="inline">\mathcal{V}</math> with critical value <math display="inline">v \in (a, b)</math> then the space <math display="inline">X_{\leq b}</math> is homotopic to<ref>Goresky and MacPherson 1988, pp. 174.</ref> <math display="block">X_{\leq a} \cup [(D^{\lambda+1}, \partial D^{\lambda+1}) \times (\mathcal{L}_X, \partial \mathcal{L}_X)].</math> Proof:<ref>Proof outline comes from Goresky and MacPherson 1988, pp. 174.</ref> # <math display="inline">(X_{\leq b}, X_{\leq a})</math> is homeomorphic to <math display="inline">(X_{\leq v + \epsilon}, X_{\leq v -\epsilon})</math>. We can prove this by "moving wall" or Thom's Isotopy Lemma.<ref>Goresky and MacPherson 1988, pp. 90-91, 120.</ref> # <math display="inline">X_{\leq v + \epsilon}</math> is homeomorphic to <math display="inline">X_{\leq v - \epsilon} \cup (J, K)</math>, where the latter is the local Morse data for <math display="inline">h</math> at <math display="inline">p</math>. We do this by moving the wall...<ref>Goresky and MacPherson 1988, pp. 95-96, 120-121.</ref> # <math display="inline">(J, K)</math> is homeomorphic to <math display="inline">(D^{\lambda+1}, \partial D^{\lambda+1}) \times (\mathcal{L}_X, \partial \mathcal{L}_X)</math> (tangential data, normal data). Again, moving the wall...<ref>Goresky and MacPherson 1988, pp. 65-66, chapter 8, 121.</ref> # The normal Morse data depends only on the differential <math display="inline">df(p)</math>.<ref>Goresky and MacPherson 1988, pp. 93.</ref> # The normal Morse data has the homotopy type of <math display="inline">(\mathcal{L}_X, \partial \mathcal{L}_X)</math>.<ref>Goresky and MacPherson 1988, pp. 169.</ref> === Step 1 === We get this immediately(?) by Thom's Isotopy Lemma. === Step 2 === <ref>Goresky and MacPherson 1988, complex case on pp. 120-121 is extension of real case on pp. 95-96.</ref> Step 1 works because <math display="inline">h</math> is a submersion at each point of the regions we are homeomorphing. This is not the case at critical points. We need some way by which a homeomorphism can pass through a critical point. To prove a homeomorphism between two subsets <math display="inline">A</math> and <math display="inline">B</math> of <math display="inline">Z</math>, we project <math display="inline">Z</math> to some other space <math display="inline">N</math> (in our case <math display="inline">\R^n</math>) using some function <math display="inline">F</math>. We take subsets <math display="inline">Y_0</math> and <math display="inline">Y_1</math> of <math display="inline">N</math> such that <math display="inline">A = Z \cap F^{-1}(Y_0)</math> and <math display="inline">B = Z \cap F^{-1}(Y_1)</math>. We need to prove <math display="inline">Y_0</math> and <math display="inline">Y_1</math> are connected by a one-parameter family of regions <math display="inline">Y_t</math> [explain one-parameter family]. The criterion for such a family to exist is that the '''characteristic covectors''' of <math display="inline">F</math> are all nonzero on each stratum of <math display="inline">Y_t</math>.<ref>Goresky and MacPherson 1988, pp. 70.</ref> At each point <math display="inline">x \in M</math> and <math display="inline">y \in N</math> there are '''tangent spaces''' <math display="inline">T_xM</math> and <math display="inline">T_yN</math>, a vector space whose zero is at the point <math display="inline">x</math> or <math display="inline">y</math> (resp.) [picture of various tangent spaces] In the case the <math display="inline">N = \R</math>, the tangent space <math display="inline">T_x\R</math> is just <math display="inline">\R</math> but whose origin is at <math display="inline">x</math>. [picture of T_x\R] Say <math display="inline">F(x) = y</math>, then the differential of the map <math display="inline">F</math> can be seen as a function whose input is a vector in the tangent space <math display="inline">T_xM</math> and whose output is a vector in the tangent space <math display="inline">T_yM</math>. [If I move this far on the tangent space of M how do I move in the tangent space of N?] [picture] [example for M = \R and N = \R?] A function which takes as input a vector in the tangent space <math display="inline">T_xM</math> (say) and outputs a scalar (usually <math display="inline">\R</math>) is called a '''covector'''. The set of all covectors on <math display="inline">T_xM</math> is called the dual space of <math display="inline">T_xM</math> and is denoted <math display="inline">T^*_xM</math>. There are only a limited number of ways to express a covectors. For example, if our tangent space is two-dimensional then all covectors are of the form <math display="inline">ax + by</math> where <math display="inline">(x, y) \in T_xM</math>. We take our space <math display="inline">M</math> and map it onto <math display="inline">\R^2</math> with the map <math display="inline">F(z) = (r(z), h(z))</math>, where <math display="inline">z \in M</math> and <math display="inline">r</math> is the square of the distance of <math display="inline">z</math> to the critical point <math display="inline">p</math>. [graph of mapping] In this case, the covectors on the tangent space <math display="inline">T_xM</math> are of the form <math display="inline">adf(x) + bdr(x)</math> (in this case <math display="inline">df</math> and <math display="inline">dr</math> are maps to <math display="inline">\R</math>) and on <math display="inline">T_y\R^2</math> are of the form <math display="inline">cu + dv</math> (for <math display="inline">(u, v) \in \R^2</math>). A covector <math display="inline">cu + dv \in T^*_{(u, v)}\R^2</math> is called a '''characteristic covector''' of <math display="inline">F</math> if <math display="inline">F(x) = (u, v)</math> and <math display="inline">cdf(x) + ddr(x) = 0</math> for all vectors in the tangent space of the stratum containing <math display="inline">p</math>.<ref>Goresky and MacPherson 1988, pp. 82.</ref> [explain adf(x) + bdr(x) in terms of this being a function which takes a vector input] [example of where covectors do and do not vanish on a stratified space, pp. 71?] What we want is a homeomorphism in <math display="inline">M</math> between the space <math display="inline">Z_{\leq \epsilon}</math> and <math display="inline">Z_{\leq \epsilon} \cup B</math>, where <math display="inline">B</math> is a small region of the critical point <math display="inline">p</math>. The '''local Morse data''' is <math display="block">((B_\delta \cap Z) \cap f^{-1}[v-\epsilon, v+\epsilon], (B_\delta \cap Z) \cap f^{-1}(v-\epsilon))</math> where <math display="inline">B_\delta</math> is a closed disc in <math display="inline">M</math> of radius <math display="inline">\delta</math>.<ref>Goresky and MacPherson 1988, pp. 63-64.</ref> Observe that this is the pair <math display="inline">(F^{-1}(\text{Box}(\delta, \epsilon)), F^{-1}(\text{Bottom}(\delta, \epsilon)))</math><ref>Goresky and MacPherson 1988, pp. 91.</ref> [explain Box, Bottom, etc.] [picture of the two subspaces of Z in M] We use our map <math display="inline">F</math> to convert these two subspaces to subspaces of <math display="inline">\R^2</math> which are of the form <math display="inline">Y_1 = \{(x,y) \in \R^2 | y \leq \epsilon\}</math> and <math display="inline">Y_0 = \{(x,y) \in \R^2 | y \leq -\epsilon\} \cup \{(x,y) \in \R^2 | x \leq \delta, y \leq \epsilon\}</math>, such that <math display="inline">Z_{\leq \epsilon} = F^{-1}(Y_1)</math> and <math display="inline">Z_{\leq \epsilon} \cup B = F^{-1}(Y_0)</math>.<ref>Goresky and MacPherson 1988, pp. 95-96.</ref> We use a homeomorphism between <math display="inline">Y_1</math> and <math display="inline">Y_0</math> using the technique of "moving the wall" and Thom's Isotopy Lemma. Such a homeomorphism exists when the characteristic covectors of <math display="inline">F</math> are all nonzero on each stratum of <math display="inline">Y_t</math>.<ref>Goresky and MacPherson 1988, chapter 4, particularly pp. 71-72.</ref> Given a smooth mapping between manifolds <math display="inline">F: M \to N</math> (for example, in our case we could have <math display="inline">N = \R^2</math>) and that <math display="inline">F|Z: Z \to N</math> is proper. Let <math display="inline">Y \subset N \times \R</math> be a closed Whitney stratified subset such that the projection to the second factor <math display="inline">\pi: Y \to \R</math> is a proper stratified submersion.<ref>Goresky and MacPherson 1988, pp. 71.</ref> Suppose for each <math display="inline">t \in \R</math>, for each <math display="inline">p \in F(Z) \cap Y_t</math>, and for each nonzero characteristic covector <math display="inline">\lambda \in T^*_pN</math> of <math display="inline">F|Z</math>, the restriction of <math display="inline">\lambda</math> to the subspace <math display="inline">T_pS_t = \ker(d\pi(p)) \cap T_pS</math> is nonzero, where <math display="inline">S</math> is a stratum of <math display="inline">Y</math> which contains <math display="inline">(p, t)</math> and <math display="inline">S_t = \pi^{-1}(t) \cap S</math> is the stratum of <math display="inline">Y_t = \pi^{-1}(t) \cap Y</math> which contains <math display="inline">p</math>. This is equivalent to the statement that, for each <math display="inline">t \in \R</math>, the restriction <math display="inline">F|Z</math> is transverse to <math display="inline">Y_t</math>.<ref>Goresky and MacPherson 1988, pp. 71-72.</ref> This means that, for each <math display="inline">t \in \R</math>, <math display="inline">Z \cap F^{-1}(Y_t)</math> is stratified by its intersection with the strata of <math display="inline">Z</math>... We finally prove there is a homeomorphism between <math display="inline">Z \cap F^{-1}(Y_0) \cong Z \cap F^{-1}(Y_1)</math> which preserves the Whitney stratification of both sides and is smooth on each stratum. For the composition <math display="block">Z \times \R \subset M \times \R \to_{F \times I} Y \subset \R^2 \times \R \to_{\pi} \R</math> where <math display="inline">Y(t, z) = Y_t(z)</math>, <math display="inline">I</math> is the identity and <math display="inline">\pi</math> is projection to the second factor. <math display="inline">Z \times \R</math> is transverse to <math display="inline">(F \times I)^{-1}(Y)</math>... The composition <math display="inline">\pi \circ (F \times I): Z \times \R \cap (F \times I)^{-1}(Y) \to \R</math> is a stratified submersion because * The input domain is stratified as above..., * We have defined <math display="inline">F|Z</math> to be transverse to <math display="inline">Y</math>, and therefore it preserves the stratification (unless <math display="inline">F(Z) \cap Y = \empty</math>), and * We defined above the projection on <math display="inline">Y</math> to be a stratified submersion, meaning it is a submersion on each stratum of <math display="inline">F(Z) \cap Y</math>.<ref>Goresky and MacPherson 1988, pp. 43.</ref> Therefore, we can apply Thom's Isotopy Lemma which says there is a homeomorphism between the level sets of <math display="inline">Z \times \R</math>...<ref>Goresky and MacPherson 1988, pp. 72.</ref> === Step 3 === We prove there is a stratum preserving homeomorphism between<ref>Goresky and MacPherson 1988, pp. 65.</ref> <math display="block">\text{Local Morse Data} \cong (\text{Tangential Morse Data}) \times (\text{Normal Morse Data})</math> We first prove that there is a homeomorphism between the product of the normal and tangential Morse data and the '''realisation''' of the following diagram [diagram from pp. 102] where realisation means <math display="block">Z \cap (g_1, h_1)^{-1}(P_a) \cap (g_2, h_2)^{-1}(P_b)</math> where all the intersections of strata (of <math display="inline">Z</math>?) are transverse.<ref>Goresky and MacPherson 1988, pp. 100-102.</ref> The realisation of the above diagram is equal to <math display="block">(V_1, V_2) \cap (W_1, W_2) = (V_1 \cap W_1, V_1 \cap W_2 \cup V_2 \cap W_1)</math> where <math display="block">V_1 = \{ z \in Z : |f(z) - f\pi(z)| \leq \epsilon/4, r\pi(z) \leq \delta, \rho(z) \leq \delta \}</math> <math display="block">V_2 = \{ z \in Z : f(z) - f\pi(z) = -\epsilon/4, r\pi(z) \leq \delta, \rho(z) \leq \delta \}</math> <math display="block">W_1 = \{ z \in Z : |f\pi(z)| \leq 3\epsilon/4, r\pi(z) \leq \delta \}</math> <math display="block">W_1 = \{ z \in Z : f\pi(z) = -3\epsilon/4, r\pi(z) \leq \delta \}</math> where <math display="inline">\pi</math> is the projection from the tubular neighbourhood to <math display="inline">Z</math>, <math display="inline">r(z)</math> is the square of the distance between <math display="inline">z</math> and the critical point <math display="inline">p</math> and <math display="inline">\rho(z)</math> is the square of the distance between <math display="inline">z</math> and <math display="inline">\pi(z)</math>.<ref>Goresky and MacPherson 1988, pp. 100-101.</ref> <math display="inline">\epsilon \ll \delta</math> are chosen so that <math display="inline">(\delta, \epsilon)</math> is in the set <math display="inline">A^\flat_6</math> which consists of <math display="inline">A_6 \subset \R^+ \times \R^+</math> with the properties that for <math display="inline">(\epsilon, \delta) \in A_6</math> and <math display="inline">z</math> such that <math display="inline">\rho(z) = \delta</math>, <math display="inline">r\pi(z) = \delta</math>, <math display="inline">|f(z)| \leq \epsilon</math> and <math display="inline">|f\pi(z)| \leq \epsilon</math> then the covectors <math display="inline">d\rho(z)</math>, <math display="inline">dr\pi(z)</math>, <math display="inline">df(z)</math> and <math display="inline">df\pi(z)</math> are linearly independent when restricted to <math display="inline">T_zY</math> (where <math display="inline">Y</math> is the stratum containing <math display="inline">z</math>). We can prove such a set exists.<ref>Goresky and MacPherson 1988, pp. 89.</ref> <math display="inline">A^\flat_6</math> is this plus its reflection about the <math display="inline">x</math> axis.<ref>Goresky and MacPherson 1988, pp. 82.</ref> Let <math display="inline">D = \{ x \in X | r(x) \leq \delta \}</math> for stratum <math display="inline">X</math>. We will show there is a local trivial fibration of the configuration: <math display="inline">(V_1, V_2)</math> fibres over <math display="inline">D</math> and is homeomorphic to <math display="inline">D \times (\text{normal Morse data})</math> (V_1, V_2) -> D \times (normal Morse data) | / --> D <--- and that <math display="inline">(W_1, W_2)</math> fibres over the tangential Morse data and is homeomorphic to <math display="inline">(\text{tangential Morse data}) \times (\text{normal slice})</math>. For <math display="inline">Z_1 = \{ z \in Z : r\pi(z) \leq \delta \}</math>, the map <math display="inline">F(z): Z_1 \to \R^2 = (\rho(z), f(z) - f\pi(z))</math> is transverse to each stratum of <math display="inline">\text{Box}(\delta, \epsilon/4)</math>, [list], [by lemma 6.5]. <math display="inline">(V_1, V_2) = F^{-1}(\text{Box}(\delta, \epsilon/4), \text{Bottom}(\delta, \epsilon/4))</math>. For each stratum <math display="inline">S</math> of Box and each <math display="inline">x \in D</math>, we have transverse intersection <math display="inline">F^{-1}(S) \pitchfork \pi^{-1}(x)</math>. Therefore, <math display="inline">\pi|F^{-1}(S)</math> is a submersion and by Thom's isotopy lemma the projection <math display="inline">\pi|F^{-1}(\text{Box}(\delta, \epsilon/4): F^{-1}(\text{Box}(\delta, \epsilon/4)) \to X</math> is a stratified fibre bundle over <math display="inline">D</math>. The fibre over the critical point <math display="inline">p</math> is <math display="inline">\pi^{-1}(p) \cap (F^{-1}(\text{Box}(\delta, \epsilon/4), F^{-1}(\text{Bottom}(\delta, \epsilon/4))</math> and is equal to the normal Morse data...<ref>Goresky and MacPherson 1988, pp. 101.</ref> Take <math display="inline">G: X \to \R^2 = (r(x), f(x))</math>. <math display="inline">\delta</math> and <math display="inline">\epsilon</math> have been chosen so that <math display="inline">(G^{-1}(\text{Box}(\delta, \epsilon/4), G^{-1}(\text{Bottom}(\delta, \epsilon/4))</math> is the tangential Morse data for <math display="inline">f</math> and is contained in the region <math display="inline">D</math> over which <math display="inline">\pi|(V_1, V_2)</math> is a stratified fibre bundle. Therefore, <math display="inline">(W_1, W_2) = \pi^{-1} G^{-1}(\text{Box}(\delta, \epsilon/4), \text{Bottom}(\delta, \epsilon/4))</math> is transverse to <math display="inline">(V_1, V_2)</math>.<ref>Goresky and MacPherson 1988, pp. 101-102.</ref> Finally, this means that <math display="inline">(V_1, V_2) \cap (W_1, W_2)</math> is homeomorphic (by stratum preserving homeomorphism) to <math display="inline">(\pi^{-1}(p), \cap (V_1, V_2)) \times \pi(W_1, W_2)</math>, the product of normal and tangential Morse data.<ref>Goresky and MacPherson 1988, pp. 102.</ref> We use a succession of such diagrams to interpolate between the box diagram which defines local Morse data [explain] and the above diagram whose realisation we have just proven is <math display="inline">(\text{normal Morse data}) \times (\text{tangential Morse data})</math>. [diagram_d0.py] The realisation is the local Morse data. This is equal to the realisation of the diagram below.<ref>Goresky and MacPherson 1988, pp. 103, 106.</ref> [diagram_d11.py] == Morse theory == Steps(?) * Explain topology * Every point of a stratum is locally like a product structure (proved by Thom's Isotopy Lemma) [GM pp. 41-42] ** Including those around critical points, which are the product of normal and tangential Morse data (these are our quasi-local cycles?) * Thom's Isotopy Lemma proves a strong deformation retraction (which only stops at critical points) [PWM pp. 541-542] === Homotopy === We want to replace our domain of convergence <math display="inline">M</math>, which is the complement of our singular variety <math display="inline">\mathcal{V}</math>, with an "equivalent" space <math display="inline">M'</math> which has better understood properties. We say "equivalent" because there are several different things we could mean by "equivalent" in this context. The equivalence we are referring to in this section is called '''homotopy'''. Imagine two subspaces <math display="inline">\gamma_0</math> and <math display="inline">\gamma_1</math> of a space <math display="inline">Y</math> which are defined respectively by smooth functions <math display="inline">f, g: X \to Y</math>. If there exists a smooth function <math display="inline">h_s: X \times [0, 1] \to Y</math>, called a homotopy, such that <math display="inline">h_0 = f</math>, <math display="inline">h_1 = g</math> and for any <math display="inline">\epsilon > 0</math> there exists a <math display="inline">\delta_a</math> and <math display="inline">\delta_b</math> such that when <math display="inline">|s - s_0| < \delta_a</math> and <math display="inline">|x - x_0| < \delta_b</math> we have <math display="inline">|h_s(x) - h_{s_0}(x_0)| < \epsilon</math>, then we say <math display="inline">\gamma_0</math> and <math display="inline">\gamma_1</math> are '''homotopic'''.<ref>Henle 1979, pp. 251-252.</ref> Below is an example where <math display="inline">\gamma_0</math> and <math display="inline">\gamma_1</math> are one-dimensional curves and <math display="inline">H(t, s) = h_s(t)</math>. [[File:Homotopy_curves.png|300px]] In [[#Homotopy_equivalence|Appendix A]], we formally prove that we can construct an equivalent space <math display="inline">M'</math>. We provide only an example to give some intuition before describing how to construct the space <math display="inline">M'</math> in terms of local cycles around critical points. === Motivating example === Imagine a torus and a height function which is just the z value of the point. [[File:3D-Leveltorus.png|200px]] It has four critical points: two at the top and bottom of the outer circle (<math display="inline">p_1, p_4</math>) and two at the top and bottom of the inner circle (<math display="inline">p_2, p_3</math>). [picture] When the height is between the <math display="inline">p_1</math> and <math display="inline">p_2</math>, the space is a two-cell, which can be retracted to a point. [picture] When the height is between <math display="inline">p_2</math> and <math display="inline">p_3</math>, the space is a cylinder, which can be retracted to a two-cell with a one-cell attached. [[File:3D-Cylinder_and_disk_with_handle.png|200px]] When the height is between <math display="inline">p_3</math> and <math display="inline">p_4</math>, the space is a torus with a disc removed, which can be retracted to a cylinder with a one-cell attached. [[File:3D-Cylinder_with_handle_and_torus_with_hole.png|200px]] When the height is greater than <math display="inline">p_4</math>, then the full torus is constructed by attaching a two-cell. [Explain in terms of Morse data and Morse index?] === Morse data and quasi-local cycles === As in the above example, we start at the "bottom" of <math display="inline">M</math> and build upwards until just before we reach our first critical point <math display="inline">p</math>. ;Smooth points :This is a tube around a <math display="inline">(d-1)</math>-chain <math display="inline">\gamma</math> where the height function <math display="inline">h</math> is maximised at <math display="inline">p</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 223.</ref> :For example, if <math display="inline">F(x, y) = \frac{1}{1 - x - y}</math> then <math display="inline">\lambda = 1</math> and <math display="inline">B^\lambda</math> is an arc reaching its highest point at <math display="inline">p</math>. :The normal plane <math display="inline">N</math> at <math display="inline">p</math> is a plane orthogonal to <math display="inline">B^1</math>(?). :Its normal link <math display="inline">L(S)</math> is a circle with two points missing where it intersects <math display="inline">\mathcal{V}</math>. :We make our quasi-local cycle out of the product of the arc and circle joined to <math display="inline">M_-</math> at points below <math display="inline">M_-</math>. :With the exception of degenerate points, such as monkey saddles...<ref>e.g. Pemantle, Wilson and Melczer 2024, pp. 211.</ref> ;Transverse multiple points :This is the product of a <math display="inline">k</math>-torus and a <math display="inline">(d-k)</math>-chain <math display="inline">\gamma</math>. The torus is the product of circles about <math display="inline">p</math> in the complex normal space to each strata which intersects <math display="inline">p</math>. The chain <math display="inline">\gamma</math> is supported in the stratum which is the common intersection of the varieties defined by the factors vanishing at <math display="inline">p</math>, and achieves its maximum height at <math display="inline">p</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 223-224.</ref> ;Arrangement multiple point :This is the product of a <math display="inline">(d-k)</math>-chain <math display="inline">\gamma</math> and several <math display="inline">k</math>-tori, one for each pair of sheets which intersect transversely, where the torus is the product of circles about <math display="inline">p</math> in each sheet.<ref>Pemantle, Wilson and Melczer 2024, pp. 226.</ref> ;Cone point :A cone point is zero-dimensional so there is no <math display="inline">\gamma</math>, just a <math display="inline">d</math>-torus about <math display="inline">p</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 227.</ref> == Notes == {{Reflist}} == References == * {{cite book | last1=Goresky | first1=Mark | last2=MacPherson | first2=Robert | title=Stratified Morse Theory | publisher=Springer-Verlag | year=1988 | url=https://www.math.ias.edu/~goresky/pdf/SMT.djvu }} * {{cite book | last=Henle | first1=Michael | title=A Combinatorial Introduction to Topology | publisher=Dover Publications Inc. New York | year=1979 }} * {{citation | last=Mather | first=John | title=Notes on Topological Stability | year=2012 | journal=Bulletin of the American Mathematical Society | volume=49 | number=4 | pages=475-506 | url=https://www.ams.org/journals/bull/2012-49-04/S0273-0979-2012-01383-6/S0273-0979-2012-01383-6.pdf }}. * {{cite book | last1=Pemantle | first1=Robin | last2=Wilson | first2=Mark C. | last3=Melczer | first3=Stephen | title=Analytic Combinatorics in Several Variables | publisher=Cambridge University Press | year=2024 | edition=2nd | url=https://acsvproject.com/PemantleWilsonMelczer23.pdf }} 4tdql6a079v3kgabpe74qh732dj3663 4675509 4675504 2026-10-11T11:07:14Z Dom walden 3209423 /* Step 3 */ 4675509 wikitext text/x-wiki == Introduction == Morse theory tells us that the topology of M only changes at its critical points. The "Morse data" tells us the topology at each critical point. Attaching this Morse data together gives us a space which is homopotically eqivalent to M. This space is a "cell complex", which has an easy to calculate homology. Theorem: Our domain of convergence is homotopic to a cell complex of dimension at most <math display="inline">2n - d - 1</math>.<ref>This is theorem D.23 in Pemantle, Wilson and Melczer 2024, pp. 546. Also theorem in section 1.2*/5.2* in SMT pp. 200.</ref> Proof: # <math display="inline">X</math> is our entire domain, <math display="inline">\mathcal{V}</math> our variety # Project our entire domain to complex projective space <math display="inline">Z = \pi(X) \subset \C\mathbb{P}^n - H</math> [define H] # Define a linear subspace <math display="inline">G \subset \C\mathbb{P}^n</math> of dimension <math display="inline">d - 1</math> # Define a Morse function on <math display="inline">f: \C\mathbb{P}^n \to \R</math> which approximates the distance from <math display="inline">G</math> and such that <math display="inline">f^{-1}(0) = G</math> and <math display="inline">f^{-1}(1) = H</math> # We "build" <math display="inline">X - \mathcal{V}</math> from <math display="inline">\pi^{-1}(G \cap Z) \cap (X - \mathcal{V})</math> by attaching CW complexes at critical points which are of at most dimension <math display="inline">2n - d - 1</math> # At a critical point, the normal Morse data is <math display="inline">(J, K) = \coprod_x (J_x, K_x)</math> and the relative complex link is <math display="inline">\mathcal{L}^\pi = \coprod_x \mathcal{L}_x</math> # We show that the quotient <math display="inline">J_x/K_x</math> is homotopic to a CW complex of dimension <math display="inline">\leq 2n - d - 1</math> # The neighbourhood of <math display="inline">x</math> in <math display="inline">J_x</math> is homeomorphic to the cone in <math display="inline">L_x(X - \mathcal{V})</math>, and removing the point <math display="inline">x</math> increases the homotopy dimension to at most the homotopy dimension of <math display="inline">L_x</math> # <math display="inline">(J_x \cup \{x\}, K_x)</math> is homotopic to <math display="inline">(\text{cone}(\mathcal{L}_x), \mathcal{L}_x)</math> # <math display="inline">\mathcal{L}_x</math> is homotopic to a CW complex of dimension at most <math display="inline">2n - d - 1</math> # The tangential Morse data at the critical point is homotopic to the pair <math display="inline">(D^\lambda, \partial D^\lambda)</math> # Therefore, at each critical point a space has been added homotopic to a CW complex of dimension at most <math display="inline">2n - d - 1</math>. Theorem: If <math display="inline">X</math> is the complement in <math display="inline">\C^n</math> of a complex variety <math display="inline">\mathcal{V}</math> of dimension <math display="inline">d</math> then <math display="inline">X</math> is homotopic to a CW complex of dimension at most <math display="inline">2n - d - 1</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 546.</ref> Proof: # We build <math display="inline">X</math> by attaching cells of dimension at most <math display="inline">2n - d - 1</math> at each critical point. ## Prove that we can do this without changing the homotopy(?) ## We use Thom's Isotopy Lemma to prove that there is a strong deformation retraction, stopping only at critical points. # Prove these cells are a product of the normal and tangential Morse data. ## Normal data: <math display="inline">(\mathcal{L}(S), \partial \mathcal{L}(S)) \times (D^1, \partial D^1)</math> [GM pp. 18] ## Tangential data: <math display="inline">(B_\delta \cap f^{-1}[v - \epsilon, v + \epsilon], B_\delta \cap f^{-1}(v - \epsilon))</math> for <math display="inline">f</math> restricted to <math display="inline">X</math> (or <math display="inline">\mathcal{V}</math>?) [GM pp. 63-64] # If <math display="inline">k</math> is the dimension of the strata, then ## If <math display="inline">k = d</math> then it is a smooth point and the cell is the product of <math display="inline">S^{2(n-d)-1}</math> and the tangential data is dimension at most <math display="inline">d</math>. ## If <math display="inline">k < d</math>, ... <ref>Pemantle, Wilson and Melczer 2024, pp. 547.</ref> == Example in one dimension == Domain with singularities v_1, v_2, ..., v_i Define our height function f... Start with our entire domain X Reduce from X to X_i+ by using Thom's Isotopy lemma to do a strong deformation retract == Thom's isotopy lemma == We present a modified version of Thom's (first) isotopy lemma, less general than the original but more obviously relevant to our situation. Theorem: Suppose <math display="inline">Z</math> is a closed subset of a smooth manifold <math display="inline">M</math> which admits a Whitney stratification and <math display="inline">h : M \to \R</math> is a proper Morse function which has no critical values on <math display="inline">Z</math>. Then, the level sets of <math display="inline">Z</math> are homeomorphic by a homeomorphism that preserves the strata of <math display="inline">Z</math>.<ref>For various versions of the full statement of the theorem, see Mather 2012, pp. 499, Goresky and MacPherson 1988, pp. 41, or Pemantle, Wilson and Melczer 2024, pp. 541.</ref> Proof: # Construct control data for <math display="inline">Z</math> compatible with <math display="inline">h</math>. ## [Prop 7.1] If <math display="inline">h</math> is smooth on <math display="inline">Z</math> and is a submersion for each strata then there exists a family of control data for <math display="inline">Z</math> compatible with <math display="inline">h</math>.<ref>Mather 2012, pp. 488.</ref> # This makes <math display="inline">Z</math> an abstract stratified set and <math display="inline">f</math> a controlled submersion. # A controlled submersion has, for any smooth vector field on <math display="inline">\R</math>, a controlled vector field on <math display="inline">Z</math> (a "lift"?)<ref>Mather 2012, pp. 493.</ref> # A controlled vector field has a unique one-parameter family of homeomorphisms of <math display="inline">Z</math> which commute with <math display="inline">h</math>.<ref>Mather 2012, pp. 496.</ref> # This makes <math display="inline">h</math> a locally trivial fibration. [Prop 10.2]<ref>Mather 2012, pp. 499.</ref> Control data: A system of '''control data''' for <math display="inline">Z</math> consists of, for each stratum <math display="inline">X</math> of <math display="inline">Z</math>, * a '''tubular neighbourhood''' <math display="inline">T_X</math> of <math display="inline">X</math> * a '''tubular projection function''' <math display="inline">\pi_X: T_X \to X</math>, and * a '''tubular distance function''' <math display="inline">\rho_X: T_X \to \R</math> such that <math display="inline">\rho_X^{-1}(0) = X</math><ref>Goresky and MacPherson 1988, pp. 42.</ref> [illustration] such that if <math display="inline">X < Y</math> are strata in <math display="inline">Z</math>, then <math display="block">\pi_X \pi_Y(m) = \pi_X(m),</math> <math display="block">\rho_X \pi_Y(m) = \rho_X(m)</math> for all <math display="inline">m \in |T_X| \cap |T_Y|</math> such that <math display="inline">\pi_Y(m) \in |T_X|</math>. If, for all strata <math display="inline">X</math> and all <math display="inline">m \in |T_X|</math>, we have <math display="inline">h \pi_X(m) = h(m)</math>, then this control data will be said to be compatible with <math display="inline">h</math>.<ref>Mather 2012, pp. 488.</ref> We prove that if <math display="inline">h</math> is smooth on <math display="inline">Z</math> and is a submersion for each strata then there exists a family of control data for <math display="inline">Z</math> compatible with <math display="inline">h</math>.<ref>Mather 2012, pp. 488, prop 7.1.</ref> Let <math display="inline">Z_k</math> be the union of strata of <math display="inline">Z</math> of dimension less than <math display="inline">k</math>. We prove by induction on <math display="inline">k</math>. To construct the tubular neighbourhood <math display="inline">T_X</math> of a stratum <math display="inline">X</math> of dimension less than <math display="inline">k</math>. For <math display="inline">l \leq k</math>, let <math display="inline">U_l</math> denote the union of all <math display="inline">|T_Y|</math> for <math display="inline">Y < X</math> and <math display="inline">\dim Y \geq l</math>. Let <math display="inline">X_l = U_l \cap X</math>.<ref>Mather 2012, pp. 489.</ref> For <math display="inline">l = k</math>, <math display="inline">X_k = \empty</math>. Assume by induction that <math display="inline">T_{l+1}</math> has been constructed and that if <math display="inline">Y < X</math>, <math display="inline">\dim Y \geq l + 1</math>, <math display="inline">m \in |T_{l+1}| \cap |T_Y|</math> and <math display="inline">\pi_{l+1}(m) \in |T_Y|</math> (<math display="inline">\pi_{l+1} = \pi_{T_{l+1}}</math>) then<ref>Mather 2012, pp. 489-490.</ref> <math display="block">\rho_Y \pi_{l+1}(m) = \rho_Y(m),</math> <math display="block">\pi_Y \pi_{l+1}(m) = \pi_Y(m).</math> We wish to construct a tubular neighbourhood <math display="inline">T_{X,Y}</math> of <math display="inline">|T_Y| \cap X</math> whose restriction to <math display="inline">|T_Y| \cap X_{l+1}</math> is isomorphic to the restriction of <math display="inline">T_{l+1}</math> such that if <math display="inline">m \in |T_{X,Y}| \cap |T_Y|</math> and <math display="inline">\pi_{X,Y}(m) \in |T_Y|</math> (<math display="inline">\pi_{X,Y} = \pi_{T_{X,Y}}</math>) then <math display="block">\rho_Y \pi_{X,Y}(m) = \rho_Y(m),</math> <math display="block">\pi_Y \pi_{X,Y}(m) = \pi_Y(m).</math> By shrinking <math display="inline">|T_Y|</math> if necessary, this relation is already satisfied if <math display="inline">m \in |T_{l+1}| \cap |T_Y|</math> and <math display="inline">\pi_{l+1}(m) \in |T_Y|</math> with <math display="inline">T_{l+1}</math> in place of <math display="inline">T_{X,Y}</math> and <math display="inline">\pi_{l+1}</math> in place of <math display="inline">\pi_{X,Y}</math>. By the definition, if <math display="inline">m \in |T_{l+1}|</math> then there exists <math display="inline">Z < X</math> with <math display="inline">\dim Z > l</math>, <math display="inline">m \in |T_Z|</math> and <math display="inline">\pi_{l+1}(m) \in |T_Z|</math>. We have that <math display="inline">\pi_{l+1}(m) \in |T_Y| \cap |T_Z|</math> and therefore <math display="inline">Y < Z</math>. Therefore<ref>Mather 2012, pp. 490.</ref> <math display="block">\rho_Y \pi_{l+1}(m) = \rho_Y \pi_Z \pi_{l+1}(m) = \rho_Y \pi_Z(m) = \rho_Y(m),</math> <math display="block">\pi_Y \pi_{l+1}(m) = \pi_Y \pi_Z \pi_{l+1}(m) = \pi_Y \pi_Z(m) = \pi_Y(m).</math> We can prove that, by shrinking <math display="inline">|T_Y|</math>, <math display="inline">(\rho_Y, \pi_Y): |T_Y| \cap X \to \R \times Y</math> is a submersion [prop 7.3?] and that <math display="inline">T_{X,Y}</math> is compatible with <math display="inline">(\rho_Y, \pi_Y): |T_Y| \cap X_{l+1} \to \R \times Y</math>, i.e. <math display="inline">(\rho_Y, \pi_Y) \pi_{X,Y}(m) = (\rho_Y, \pi_Y)(m)</math>(?). To prove it is a submersion, for the tubular neighbourhood <math display="inline">T = (E, \epsilon, \psi)</math> there exists a smooth positive function <math display="inline">\epsilon'</math> such that <math display="block">(\rho_T, \pi_T): Y \cap |T|_{\epsilon'}^0 \to \R \times X,</math> where <math display="inline">|T|_{\epsilon'}^0 = \psi(B_\epsilon \cap B_{\epsilon'})</math>, is a submersion. If <math display="inline">\Sigma</math> is the set <math display="inline">y \in |T|</math> such that the rank of <math display="block">(\rho_T, \pi_T): T \cap |T| \to \R \times X</math> at <math display="inline">y</math> is less than <math display="inline">\dim(\R \times X)</math>. We need to prove that for any <math display="inline">x \in X</math> there exists a neighbourhood of <math display="inline">x</math> which does not intersect with <math display="inline">\Sigma</math>, i.e. the map is not a submersion in this neighbourhood. It follows from [lemma 7.2] that it is enough to prove for <math display="inline">M = \R^m</math>, <math display="inline">X = \R^{m-c} \times 0_c</math> and <math display="inline">T</math> is the '''standard tubular neighbourhood'''.<ref>Mather 2012, pp. 489.</ref> By standard tubular neighbourhood, we mean the trivial bundle with base <math display="inline">\R^{m-c}</math> and fibre <math display="inline">\R^c</math> where <math display="inline">\pi: \R^m \to \R^{m-c}</math>...<ref>Mather 2012, pp. 488.</ref> For <math display="inline">y \in |T| - \R^{m-c}</math>, the kernal of the differential of <math display="inline">(\pi_T, \rho_T)</math> at <math display="inline">y</math> is the orthogonal complement of <math display="inline">(\R^{m-c} \times 0_c) \oplus \stackrel{\frown}{y \pi_T(y)}</math> in <math display="inline">\R^m</math>. By the Whitney conditions, we have that for <math display="inline">y</math> near <math display="inline">\R^{m-c}</math>, <math display="inline">(\R^{m-c} \times 0_c) \oplus \stackrel{\frown}{y \pi_T(y)}</math> is close to the set of <math display="inline">m - c + 1</math> planes in <math display="inline">m-</math>space to an <math display="inline">m - c + 1</math> plane in <math display="inline">TY_y</math>. Therefore, for <math display="inline">y</math> near enough to <math display="inline">\R^{m-c}</math>, <math display="inline">TY_y</math> is transverse to the kernal of the differential of <math display="inline">(\pi_T, \rho_T)</math> and, therefore, is a submersion when restricted to <math display="inline">Y</math>.<ref>Mather 2012, pp. 489.</ref> To prove that <math display="inline">T_{X,Y}</math> is compatible with <math display="inline">(\rho_Y, \pi_Y): |T_Y| \cap X_{l+1} \to \R \times Y</math>...<ref>Mather 2012, pp. 490.</ref> Therefore, there exists a tubular neighbourhood <math display="inline">T_0</math> of <math display="inline">X_0</math> satisfying <math display="block">\rho_Y \pi_0(m) = \rho_Y(m),</math> <math display="block">\pi_Y \pi_0(m) = \pi_Y(m).</math> From this we can prove that <math display="inline">T_0</math> is compatible with <math display="inline">h</math>. Replacing <math display="inline">T_0</math> with a smaller tubular neighbourhood if necessary we can assume <math display="inline">m \in |T_0|</math> such that for some <math display="inline">Y < X</math>, <math display="inline">m \in |T_Y|</math> and <math display="inline">\pi_0(m) \in |T_Y|</math>, then<ref>Mather 2012, pp. 490.</ref> <math display="block">h \pi_0(m) = h \pi_Y \pi_0(m) = h \pi_Y(m) = h(m).</math> By the generalised tubular neighourhood theorem [prop 7.2?], we can replace <math display="inline">T_0</math> with a tubular neighbourhood <math display="inline">T</math> of <math display="inline">X</math> compatible with <math display="inline">h</math>. This completes the construction of <math display="inline">T_X</math>.<ref>Mather 2012, pp. 491.</ref> This makes <math display="inline">Z</math> an '''abstract stratified set''' with axioms...<ref>Mather 2012, pp. 491-492.</ref> This also makes <math display="inline">h</math> a '''controlled submersion''' because # <math display="inline">h|X: X \to \R</math> is a smooth submersion on each strata <math display="inline">X</math> of <math display="inline">Z</math>, and # for each stratum <math display="inline">X</math> there is a tubular neighbourhood <math display="inline">T'_X</math> such that <math display="inline">h(v) = h \pi_X(v)</math> for all <math display="inline">v \in T'_X</math>.<ref>Mather 2012, pp. 493.</ref> The core of this is the concept of a '''vector field'''. A vector field is a function which assigns, for each point <math display="inline">p</math> in a space, a '''vector''', which can be represented by an arrow whose tail starts at <math display="inline">p</math>.<ref>Henle 1979, pp. 33.</ref> [picture] Imagine we have a vector field <math display="inline">v(x)</math> defined in a space and draw a line through our space. At each point along this line the vector field assigns a vector. If we move each point in this line along the arrow defined by this vector in the direction of the arrow head. This "flows" the entire line along the vectors. [picture] We define a '''stratified vector field''' <math display="inline">\eta</math> on <math display="inline">Z</math> to be a family of smooth vector fields <math display="inline">\eta_X</math>, one for each strata <math display="inline">X</math> of <math display="inline">Z</math>.<ref>Mather 2012, pp. 493.</ref> We define a '''controlled vector field''' <math display="inline">\eta</math> on <math display="inline">Z</math> to be a stratified vector field such that for any strata <math display="inline">Y</math> there exists a tubular neighbourhood <math display="inline">T'_Y</math> such that for any <math display="inline">X > Y</math> and any <math display="inline">v \in T'_X \cap X</math><ref>Mather 2012, pp. 493.</ref> <math display="block">\eta_X \rho_{Y,X}(v) = 0,</math> <math display="block">(\pi_{Y,X})_* \eta_X(v) = \eta_Y (\pi_{Y,X}(v)).</math> We prove that if <math display="inline">h</math> is a controlled submersion then, for any smooth vector field <math display="inline">\zeta</math> on <math display="inline">\R</math> there is a controlled vector field <math display="inline">\eta</math> on <math display="inline">Z</math> such that <math display="inline">h_* \eta(v) = \zeta(h(v))</math> for all <math display="inline">v \in Z</math>.<ref>Mather 2012, pp. 493.</ref> Proceeding by induction on the maximum dimension of the strata of <math display="inline">Z</math>, we define <math display="inline">Z_k</math> to be the union of strata of <math display="inline">Z</math> of dimension at most <math display="inline">k</math>. The tubular neighbourhood of <math display="inline">Z_k</math> is the intersection of the tubular neighbourhoods of each strata in <math display="inline">Z_k</math> with <math display="inline">Z</math>. The projection and distance functions are the restrictions of the respective functions of <math display="inline">Z</math>. It is trivially true when the maximum dimension of strata in <math display="inline">Z</math> is zero. Assume it is true for <math display="inline">k</math> and construct each <math display="inline">\eta_X</math> separately for each stratum <math display="inline">X</math> of dimension <math display="inline">k + 1</math>. By the assumption that we have controlled vector fields for all strata <math display="inline">Y</math> of dimension at most <math display="inline">k</math>, we have the two control conditions defined above for any <math display="inline">X > Y</math> and that there is a neighbourhood <math display="inline">T^1_Y</math> such that <math display="inline">h(v) = h \pi_Y(v)</math> for <math display="inline">v \in T^1_Y</math>. We want to prove that for all <math display="inline">Y < X</math>, the control conditions are satisfied for all <math display="inline">v \in T^2_Y</math> and that <math display="inline">h_*\eta_X(v) = \zeta(v)</math> for all <math display="inline">v \in X</math>. Take a point <math display="inline">x \in X</math> and define the set <math display="inline">S_v</math> of strata <math display="inline">Y < X</math> such that <math display="inline">v \in T^2_Y</math>. <math display="inline">S_v</math> is totally ordered since if <math display="inline">Y_1</math> and <math display="inline">Y_2</math> are not comparable then <math display="inline">T^2_{Y_1} \cap T^2_{Y_2} = \empty</math>. Therefore, there is a largest member <math display="inline">Y = Y_v</math>. Assume the control conditions hold for <math display="inline">Y = Y_v</math>. Then they hold for all <math display="inline">Y_i \in S_v</math>. For, either <math display="inline">Y_i = Y</math> or <math display="inline">Y_i < Y</math>. In the latter case, <math display="inline">\pi_Y(v) \in T^1_{Y_i}</math> (by the choice of <math display="inline">T^2_Y</math>'s [is this why?]. Then <math display="block">\begin{align} \eta_X(v) \rho_{Y_i,X}(v) &= \eta_X \rho_{Y_i,Y} \pi_{Y,X}(v) \\ &= (\pi_{Y,X})_* \eta_X(v) \rho_{Y_i,Y} \\ &= \eta_Y(\pi_{Y,X}(v)) \rho_{Y_i,Y} \\ &= 0 \end{align}</math> and <math display="block">\begin{align} (\pi_{Y_i,X})_* \eta_X(v) &= (\pi_{Y_i,Y})_* (\pi_{Y,X})_* \eta_X(v) \\ &= (\pi_{Y_i,Y})_* \eta_Y(v) (\pi_{Y,X}) \\ &= \eta_{Y_i}(\pi_{Y_i,Y} \pi_{Y,X}(v)) \\ &= \eta_{Y_i}(\pi_{Y_i,X}(v)) \end{align}</math> and, therefore, condition holds for all <math display="inline">Y_i \in S_v</math>. Also, <math display="block">\begin{align} h_* \eta_X(v) &= (h \circ \pi_{Y,X})_* \eta_X(v) \\ &= h_* \eta_Y (\pi_{Y,X}(v)) \\ &= \zeta(f(v)) \end{align}</math> and, therefore, the conclusion of the theorem holds at <math display="inline">v</math>. This shows we can construct <math display="inline">\eta_X</math> satisfying the control conditions when <math display="inline">S_v</math> is non-empty and satisfying the theorem when <math display="inline">S_v</math> is empty. The set of vectors satisfying these conditions is convex in <math display="inline">TX_v</math>, and so we construct <math display="inline">\eta_X</math> globally via a partition of unity.<ref>Mather 2012, pp. 493-495.</ref> Finally, we prove that a controlled vector field has a unique one-parameter family of homeomorphisms of <math display="inline">Z</math> which commute with <math display="inline">h</math>.<ref>Mather 2012, this combines Proposition 10.1 and Corollary 10.2 on pp. 496 and 497, respectively.</ref> For each stratum <math display="inline">X</math> of <math display="inline">Z</math>, <math display="inline">\eta_X</math> generates a unique smooth local one-parameter group <math display="inline">(J_X, \alpha_X)</math> of diffeomorphisms of <math display="inline">X</math> (by standard results of differential geometry), such that <math display="inline">\frac{d}{dt} \alpha(t, v)|_{t=0} = \eta_X(v)</math>, <math display="inline">J_X</math> is an open subset of <math display="inline">\R \times Z</math>, ... If we define <math display="inline">(J, \alpha)</math> by <math display="block">J = \bigcup_{X \in S} J_X</math> <math display="block">\alpha = \bigcup_{X \in S} \alpha_X</math> we can prove that this is a local one-parameter family of homeomorphisms.<ref>Mather 2012, pp. 496.</ref> Firstly, it is clear that # <math display="inline">0 \times Z \subseteq J</math> and <math display="inline">\alpha(0, v) = v</math> for all <math display="inline">v \in Z</math>. # If <math display="inline">v \in Z</math> then <math display="inline">J_v = J \cap (\R \times v) \subseteq \R</math> is an open interval <math display="inline">(a_v, b_v)</math>, possibly infinite at one or both ends. # If <math display="inline">v \in Z</math> and <math display="inline">t, s, t + s</math> are in <math display="inline">(a_v, b_v)</math> then <math display="inline">\alpha(t + s, v) = \alpha(t, \alpha(s, v))</math>.<ref>Mather 2012, pp. 495.</ref> Secondly, it is clear that <math display="inline">\eta</math> generates <math display="inline">\alpha</math> because # Each stratum <math display="inline">X</math> of <math display="inline">Z</math> is invariant under <math display="inline">\alpha</math>, i.e. <math display="inline">\alpha[J \cap (\R \times X)] \subseteq X</math>. # For each <math display="inline">v \in Z</math>, the map <math display="inline">t \to \alpha(t, v)</math> of <math display="inline">(a_v, b_v)</math> into the stratum which contains <math display="inline">v</math> is <math display="inline">C^1</math>. # For any <math display="inline">(t, v) \in Z</math>(?) we have <math display="inline">d/dt \alpha(t, v) = \eta(\alpha(t, v))</math>.<ref>Mather 2012, pp. 495.</ref> It is unique because each <math display="inline">(J_X, \alpha_X)</math> is unique. We just need to prove that <math display="inline">J</math> is open, <math display="inline">\alpha</math> is continuous, and for any <math display="inline">v \in Z</math> and any compact set <math display="inline">K \subseteq Z</math> there exists <math display="inline">\epsilon > 0</math> such that <math display="inline">\alpha(t, v) \notin K</math> if <math display="inline">t \in (a_v, a_v + \epsilon) \cup (b_v - \epsilon, b_v)</math>.<ref>Mather 2012, pp. 495.</ref> For the latter-most condition, if it did not hold then there exists...<ref>Mather 2012, pp. 496-497.</ref> We prove there is a homeomorphism <math display="inline">f: Z \to h^{-1}(0) \times \R</math> such that <math display="inline">\pi \circ f = h</math>, where <math display="inline">\pi: h^{-1}(0) \times \R \to \R</math> is projection to the second factor. For the coordinate vector field <math display="inline">\partial</math> on <math display="inline">\R</math>, by [prop 9.1] there is a controlled vector field <math display="inline">\tilde\partial</math> such that <math display="inline">f_* \tilde\partial(v) = \partial(h(v))</math> for <math display="inline">v \in Z</math>. By [prop 10.1], <math display="inline">\tilde\partial</math> generates a local one-parameter group <math display="inline">(J, \alpha)</math> such that <math display="block">h(\alpha(t,v)) = h(v) + t</math> <math display="inline">h</math> is proper and [d] holds, so <math display="inline">J = \R \times Z</math>. If we define <math display="inline">f</math> as <math display="block">f(v) = (\alpha(-t, v), h(v))</math> then <math display="inline">f</math> maps <math display="inline">Z</math> into <math display="inline">h^{-1}(0) \times \R</math> and <math display="inline">\pi \circ f = h</math>. If we define <math display="inline">\bar f: h^{-1}(0) \times \R \to Z</math> as <math display="block">\bar f(v, t) = \alpha(t, v)</math> then <math display="inline">f \bar f = \bar f f = Id</math> and <math display="inline">f</math> is a homeomorphism.<ref>Mather 2012, pp. 497.</ref> == Topology at critical points == Theorem: If there is a critical point <math display="inline">p</math> in the singular variety <math display="inline">\mathcal{V}</math> with critical value <math display="inline">v \in (a, b)</math> then the space <math display="inline">X_{\leq b}</math> is homotopic to<ref>Goresky and MacPherson 1988, pp. 174.</ref> <math display="block">X_{\leq a} \cup [(D^{\lambda+1}, \partial D^{\lambda+1}) \times (\mathcal{L}_X, \partial \mathcal{L}_X)].</math> Proof:<ref>Proof outline comes from Goresky and MacPherson 1988, pp. 174.</ref> # <math display="inline">(X_{\leq b}, X_{\leq a})</math> is homeomorphic to <math display="inline">(X_{\leq v + \epsilon}, X_{\leq v -\epsilon})</math>. We can prove this by "moving wall" or Thom's Isotopy Lemma.<ref>Goresky and MacPherson 1988, pp. 90-91, 120.</ref> # <math display="inline">X_{\leq v + \epsilon}</math> is homeomorphic to <math display="inline">X_{\leq v - \epsilon} \cup (J, K)</math>, where the latter is the local Morse data for <math display="inline">h</math> at <math display="inline">p</math>. We do this by moving the wall...<ref>Goresky and MacPherson 1988, pp. 95-96, 120-121.</ref> # <math display="inline">(J, K)</math> is homeomorphic to <math display="inline">(D^{\lambda+1}, \partial D^{\lambda+1}) \times (\mathcal{L}_X, \partial \mathcal{L}_X)</math> (tangential data, normal data). Again, moving the wall...<ref>Goresky and MacPherson 1988, pp. 65-66, chapter 8, 121.</ref> # The normal Morse data depends only on the differential <math display="inline">df(p)</math>.<ref>Goresky and MacPherson 1988, pp. 93.</ref> # The normal Morse data has the homotopy type of <math display="inline">(\mathcal{L}_X, \partial \mathcal{L}_X)</math>.<ref>Goresky and MacPherson 1988, pp. 169.</ref> === Step 1 === We get this immediately(?) by Thom's Isotopy Lemma. === Step 2 === <ref>Goresky and MacPherson 1988, complex case on pp. 120-121 is extension of real case on pp. 95-96.</ref> Step 1 works because <math display="inline">h</math> is a submersion at each point of the regions we are homeomorphing. This is not the case at critical points. We need some way by which a homeomorphism can pass through a critical point. To prove a homeomorphism between two subsets <math display="inline">A</math> and <math display="inline">B</math> of <math display="inline">Z</math>, we project <math display="inline">Z</math> to some other space <math display="inline">N</math> (in our case <math display="inline">\R^n</math>) using some function <math display="inline">F</math>. We take subsets <math display="inline">Y_0</math> and <math display="inline">Y_1</math> of <math display="inline">N</math> such that <math display="inline">A = Z \cap F^{-1}(Y_0)</math> and <math display="inline">B = Z \cap F^{-1}(Y_1)</math>. We need to prove <math display="inline">Y_0</math> and <math display="inline">Y_1</math> are connected by a one-parameter family of regions <math display="inline">Y_t</math> [explain one-parameter family]. The criterion for such a family to exist is that the '''characteristic covectors''' of <math display="inline">F</math> are all nonzero on each stratum of <math display="inline">Y_t</math>.<ref>Goresky and MacPherson 1988, pp. 70.</ref> At each point <math display="inline">x \in M</math> and <math display="inline">y \in N</math> there are '''tangent spaces''' <math display="inline">T_xM</math> and <math display="inline">T_yN</math>, a vector space whose zero is at the point <math display="inline">x</math> or <math display="inline">y</math> (resp.) [picture of various tangent spaces] In the case the <math display="inline">N = \R</math>, the tangent space <math display="inline">T_x\R</math> is just <math display="inline">\R</math> but whose origin is at <math display="inline">x</math>. [picture of T_x\R] Say <math display="inline">F(x) = y</math>, then the differential of the map <math display="inline">F</math> can be seen as a function whose input is a vector in the tangent space <math display="inline">T_xM</math> and whose output is a vector in the tangent space <math display="inline">T_yM</math>. [If I move this far on the tangent space of M how do I move in the tangent space of N?] [picture] [example for M = \R and N = \R?] A function which takes as input a vector in the tangent space <math display="inline">T_xM</math> (say) and outputs a scalar (usually <math display="inline">\R</math>) is called a '''covector'''. The set of all covectors on <math display="inline">T_xM</math> is called the dual space of <math display="inline">T_xM</math> and is denoted <math display="inline">T^*_xM</math>. There are only a limited number of ways to express a covectors. For example, if our tangent space is two-dimensional then all covectors are of the form <math display="inline">ax + by</math> where <math display="inline">(x, y) \in T_xM</math>. We take our space <math display="inline">M</math> and map it onto <math display="inline">\R^2</math> with the map <math display="inline">F(z) = (r(z), h(z))</math>, where <math display="inline">z \in M</math> and <math display="inline">r</math> is the square of the distance of <math display="inline">z</math> to the critical point <math display="inline">p</math>. [graph of mapping] In this case, the covectors on the tangent space <math display="inline">T_xM</math> are of the form <math display="inline">adf(x) + bdr(x)</math> (in this case <math display="inline">df</math> and <math display="inline">dr</math> are maps to <math display="inline">\R</math>) and on <math display="inline">T_y\R^2</math> are of the form <math display="inline">cu + dv</math> (for <math display="inline">(u, v) \in \R^2</math>). A covector <math display="inline">cu + dv \in T^*_{(u, v)}\R^2</math> is called a '''characteristic covector''' of <math display="inline">F</math> if <math display="inline">F(x) = (u, v)</math> and <math display="inline">cdf(x) + ddr(x) = 0</math> for all vectors in the tangent space of the stratum containing <math display="inline">p</math>.<ref>Goresky and MacPherson 1988, pp. 82.</ref> [explain adf(x) + bdr(x) in terms of this being a function which takes a vector input] [example of where covectors do and do not vanish on a stratified space, pp. 71?] What we want is a homeomorphism in <math display="inline">M</math> between the space <math display="inline">Z_{\leq \epsilon}</math> and <math display="inline">Z_{\leq \epsilon} \cup B</math>, where <math display="inline">B</math> is a small region of the critical point <math display="inline">p</math>. The '''local Morse data''' is <math display="block">((B_\delta \cap Z) \cap f^{-1}[v-\epsilon, v+\epsilon], (B_\delta \cap Z) \cap f^{-1}(v-\epsilon))</math> where <math display="inline">B_\delta</math> is a closed disc in <math display="inline">M</math> of radius <math display="inline">\delta</math>.<ref>Goresky and MacPherson 1988, pp. 63-64.</ref> Observe that this is the pair <math display="inline">(F^{-1}(\text{Box}(\delta, \epsilon)), F^{-1}(\text{Bottom}(\delta, \epsilon)))</math><ref>Goresky and MacPherson 1988, pp. 91.</ref> [explain Box, Bottom, etc.] [picture of the two subspaces of Z in M] We use our map <math display="inline">F</math> to convert these two subspaces to subspaces of <math display="inline">\R^2</math> which are of the form <math display="inline">Y_1 = \{(x,y) \in \R^2 | y \leq \epsilon\}</math> and <math display="inline">Y_0 = \{(x,y) \in \R^2 | y \leq -\epsilon\} \cup \{(x,y) \in \R^2 | x \leq \delta, y \leq \epsilon\}</math>, such that <math display="inline">Z_{\leq \epsilon} = F^{-1}(Y_1)</math> and <math display="inline">Z_{\leq \epsilon} \cup B = F^{-1}(Y_0)</math>.<ref>Goresky and MacPherson 1988, pp. 95-96.</ref> We use a homeomorphism between <math display="inline">Y_1</math> and <math display="inline">Y_0</math> using the technique of "moving the wall" and Thom's Isotopy Lemma. Such a homeomorphism exists when the characteristic covectors of <math display="inline">F</math> are all nonzero on each stratum of <math display="inline">Y_t</math>.<ref>Goresky and MacPherson 1988, chapter 4, particularly pp. 71-72.</ref> Given a smooth mapping between manifolds <math display="inline">F: M \to N</math> (for example, in our case we could have <math display="inline">N = \R^2</math>) and that <math display="inline">F|Z: Z \to N</math> is proper. Let <math display="inline">Y \subset N \times \R</math> be a closed Whitney stratified subset such that the projection to the second factor <math display="inline">\pi: Y \to \R</math> is a proper stratified submersion.<ref>Goresky and MacPherson 1988, pp. 71.</ref> Suppose for each <math display="inline">t \in \R</math>, for each <math display="inline">p \in F(Z) \cap Y_t</math>, and for each nonzero characteristic covector <math display="inline">\lambda \in T^*_pN</math> of <math display="inline">F|Z</math>, the restriction of <math display="inline">\lambda</math> to the subspace <math display="inline">T_pS_t = \ker(d\pi(p)) \cap T_pS</math> is nonzero, where <math display="inline">S</math> is a stratum of <math display="inline">Y</math> which contains <math display="inline">(p, t)</math> and <math display="inline">S_t = \pi^{-1}(t) \cap S</math> is the stratum of <math display="inline">Y_t = \pi^{-1}(t) \cap Y</math> which contains <math display="inline">p</math>. This is equivalent to the statement that, for each <math display="inline">t \in \R</math>, the restriction <math display="inline">F|Z</math> is transverse to <math display="inline">Y_t</math>.<ref>Goresky and MacPherson 1988, pp. 71-72.</ref> This means that, for each <math display="inline">t \in \R</math>, <math display="inline">Z \cap F^{-1}(Y_t)</math> is stratified by its intersection with the strata of <math display="inline">Z</math>... We finally prove there is a homeomorphism between <math display="inline">Z \cap F^{-1}(Y_0) \cong Z \cap F^{-1}(Y_1)</math> which preserves the Whitney stratification of both sides and is smooth on each stratum. For the composition <math display="block">Z \times \R \subset M \times \R \to_{F \times I} Y \subset \R^2 \times \R \to_{\pi} \R</math> where <math display="inline">Y(t, z) = Y_t(z)</math>, <math display="inline">I</math> is the identity and <math display="inline">\pi</math> is projection to the second factor. <math display="inline">Z \times \R</math> is transverse to <math display="inline">(F \times I)^{-1}(Y)</math>... The composition <math display="inline">\pi \circ (F \times I): Z \times \R \cap (F \times I)^{-1}(Y) \to \R</math> is a stratified submersion because * The input domain is stratified as above..., * We have defined <math display="inline">F|Z</math> to be transverse to <math display="inline">Y</math>, and therefore it preserves the stratification (unless <math display="inline">F(Z) \cap Y = \empty</math>), and * We defined above the projection on <math display="inline">Y</math> to be a stratified submersion, meaning it is a submersion on each stratum of <math display="inline">F(Z) \cap Y</math>.<ref>Goresky and MacPherson 1988, pp. 43.</ref> Therefore, we can apply Thom's Isotopy Lemma which says there is a homeomorphism between the level sets of <math display="inline">Z \times \R</math>...<ref>Goresky and MacPherson 1988, pp. 72.</ref> === Step 3 === We prove there is a stratum preserving homeomorphism between<ref>Goresky and MacPherson 1988, pp. 65.</ref> <math display="block">\text{Local Morse Data} \cong (\text{Tangential Morse Data}) \times (\text{Normal Morse Data})</math> We first prove that there is a homeomorphism between the product of the normal and tangential Morse data and the '''realisation''' of the following diagram [diagram from pp. 102] where realisation means <math display="block">Z \cap (g_1, h_1)^{-1}(P_a) \cap (g_2, h_2)^{-1}(P_b)</math> where all the intersections of strata (of <math display="inline">Z</math>?) are transverse.<ref>Goresky and MacPherson 1988, pp. 100-102.</ref> The realisation of the above diagram is equal to <math display="block">(V_1, V_2) \cap (W_1, W_2) = (V_1 \cap W_1, V_1 \cap W_2 \cup V_2 \cap W_1)</math> where <math display="block">V_1 = \{ z \in Z : |f(z) - f\pi(z)| \leq \epsilon/4, r\pi(z) \leq \delta, \rho(z) \leq \delta \}</math> <math display="block">V_2 = \{ z \in Z : f(z) - f\pi(z) = -\epsilon/4, r\pi(z) \leq \delta, \rho(z) \leq \delta \}</math> <math display="block">W_1 = \{ z \in Z : |f\pi(z)| \leq 3\epsilon/4, r\pi(z) \leq \delta \}</math> <math display="block">W_1 = \{ z \in Z : f\pi(z) = -3\epsilon/4, r\pi(z) \leq \delta \}</math> where <math display="inline">\pi</math> is the projection from the tubular neighbourhood to <math display="inline">Z</math>, <math display="inline">r(z)</math> is the square of the distance between <math display="inline">z</math> and the critical point <math display="inline">p</math> and <math display="inline">\rho(z)</math> is the square of the distance between <math display="inline">z</math> and <math display="inline">\pi(z)</math>.<ref>Goresky and MacPherson 1988, pp. 100-101.</ref> <math display="inline">\epsilon \ll \delta</math> are chosen so that <math display="inline">(\delta, \epsilon)</math> is in the set <math display="inline">A^\flat_6</math> which consists of <math display="inline">A_6 \subset \R^+ \times \R^+</math> with the properties that for <math display="inline">(\epsilon, \delta) \in A_6</math> and <math display="inline">z</math> such that <math display="inline">\rho(z) = \delta</math>, <math display="inline">r\pi(z) = \delta</math>, <math display="inline">|f(z)| \leq \epsilon</math> and <math display="inline">|f\pi(z)| \leq \epsilon</math> then the covectors <math display="inline">d\rho(z)</math>, <math display="inline">dr\pi(z)</math>, <math display="inline">df(z)</math> and <math display="inline">df\pi(z)</math> are linearly independent when restricted to <math display="inline">T_zY</math> (where <math display="inline">Y</math> is the stratum containing <math display="inline">z</math>). We can prove such a set exists.<ref>Goresky and MacPherson 1988, pp. 89.</ref> <math display="inline">A^\flat_6</math> is this plus its reflection about the <math display="inline">x</math> axis.<ref>Goresky and MacPherson 1988, pp. 82.</ref> Let <math display="inline">D = \{ x \in X | r(x) \leq \delta \}</math> for stratum <math display="inline">X</math>. We will show there is a local trivial fibration of the configuration: <math display="inline">(V_1, V_2)</math> fibres over <math display="inline">D</math> and is homeomorphic to <math display="inline">D \times (\text{normal Morse data})</math> (V_1, V_2) -> D \times (normal Morse data) | / --> D <--- and that <math display="inline">(W_1, W_2)</math> fibres over the tangential Morse data and is homeomorphic to <math display="inline">(\text{tangential Morse data}) \times (\text{normal slice})</math>. For <math display="inline">Z_1 = \{ z \in Z : r\pi(z) \leq \delta \}</math>, the map <math display="inline">F(z): Z_1 \to \R^2 = (\rho(z), f(z) - f\pi(z))</math> is transverse to each stratum of <math display="inline">\text{Box}(\delta, \epsilon/4)</math>, [list], [by lemma 6.5]. <math display="inline">(V_1, V_2) = F^{-1}(\text{Box}(\delta, \epsilon/4), \text{Bottom}(\delta, \epsilon/4))</math>. For each stratum <math display="inline">S</math> of Box and each <math display="inline">x \in D</math>, we have transverse intersection <math display="inline">F^{-1}(S) \pitchfork \pi^{-1}(x)</math>. Therefore, <math display="inline">\pi|F^{-1}(S)</math> is a submersion and by Thom's isotopy lemma the projection <math display="inline">\pi|F^{-1}(\text{Box}(\delta, \epsilon/4): F^{-1}(\text{Box}(\delta, \epsilon/4)) \to X</math> is a stratified fibre bundle over <math display="inline">D</math>. The fibre over the critical point <math display="inline">p</math> is <math display="inline">\pi^{-1}(p) \cap (F^{-1}(\text{Box}(\delta, \epsilon/4), F^{-1}(\text{Bottom}(\delta, \epsilon/4))</math> and is equal to the normal Morse data...<ref>Goresky and MacPherson 1988, pp. 101.</ref> Take <math display="inline">G: X \to \R^2 = (r(x), f(x))</math>. <math display="inline">\delta</math> and <math display="inline">\epsilon</math> have been chosen so that <math display="inline">(G^{-1}(\text{Box}(\delta, \epsilon/4), G^{-1}(\text{Bottom}(\delta, \epsilon/4))</math> is the tangential Morse data for <math display="inline">f</math> and is contained in the region <math display="inline">D</math> over which <math display="inline">\pi|(V_1, V_2)</math> is a stratified fibre bundle. Therefore, <math display="inline">(W_1, W_2) = \pi^{-1} G^{-1}(\text{Box}(\delta, \epsilon/4), \text{Bottom}(\delta, \epsilon/4))</math> is transverse to <math display="inline">(V_1, V_2)</math>.<ref>Goresky and MacPherson 1988, pp. 101-102.</ref> Finally, this means that <math display="inline">(V_1, V_2) \cap (W_1, W_2)</math> is homeomorphic (by stratum preserving homeomorphism) to <math display="inline">(\pi^{-1}(p), \cap (V_1, V_2)) \times \pi(W_1, W_2)</math>, the product of normal and tangential Morse data.<ref>Goresky and MacPherson 1988, pp. 102.</ref> We use a succession of such diagrams to interpolate between the box diagram which defines local Morse data [explain] and the above diagram whose realisation we have just proven is <math display="inline">(\text{normal Morse data}) \times (\text{tangential Morse data})</math>. [diagram_d0.py] The realisation is the local Morse data. This is equal to the realisation of the diagram below.<ref>Goresky and MacPherson 1988, pp. 103, 106.</ref> [diagram_d11.py] The realisation of the first diagram [d0] is equivalent to the realisation of the below diagram. [diagram_d1.py] In the right-hand picture of the above diagram, we have put a dotted outline around the region <math display="inline">A^{\flat}_1</math>. We prove that there are no characteristic covectors for <math display="inline">(r, f): Z \to \R^2</math> in this region and can, therefore, move the wall in this region...<ref>Goresky and MacPherson 1988, pp. 82-83.</ref> == Morse theory == Steps(?) * Explain topology * Every point of a stratum is locally like a product structure (proved by Thom's Isotopy Lemma) [GM pp. 41-42] ** Including those around critical points, which are the product of normal and tangential Morse data (these are our quasi-local cycles?) * Thom's Isotopy Lemma proves a strong deformation retraction (which only stops at critical points) [PWM pp. 541-542] === Homotopy === We want to replace our domain of convergence <math display="inline">M</math>, which is the complement of our singular variety <math display="inline">\mathcal{V}</math>, with an "equivalent" space <math display="inline">M'</math> which has better understood properties. We say "equivalent" because there are several different things we could mean by "equivalent" in this context. The equivalence we are referring to in this section is called '''homotopy'''. Imagine two subspaces <math display="inline">\gamma_0</math> and <math display="inline">\gamma_1</math> of a space <math display="inline">Y</math> which are defined respectively by smooth functions <math display="inline">f, g: X \to Y</math>. If there exists a smooth function <math display="inline">h_s: X \times [0, 1] \to Y</math>, called a homotopy, such that <math display="inline">h_0 = f</math>, <math display="inline">h_1 = g</math> and for any <math display="inline">\epsilon > 0</math> there exists a <math display="inline">\delta_a</math> and <math display="inline">\delta_b</math> such that when <math display="inline">|s - s_0| < \delta_a</math> and <math display="inline">|x - x_0| < \delta_b</math> we have <math display="inline">|h_s(x) - h_{s_0}(x_0)| < \epsilon</math>, then we say <math display="inline">\gamma_0</math> and <math display="inline">\gamma_1</math> are '''homotopic'''.<ref>Henle 1979, pp. 251-252.</ref> Below is an example where <math display="inline">\gamma_0</math> and <math display="inline">\gamma_1</math> are one-dimensional curves and <math display="inline">H(t, s) = h_s(t)</math>. [[File:Homotopy_curves.png|300px]] In [[#Homotopy_equivalence|Appendix A]], we formally prove that we can construct an equivalent space <math display="inline">M'</math>. We provide only an example to give some intuition before describing how to construct the space <math display="inline">M'</math> in terms of local cycles around critical points. === Motivating example === Imagine a torus and a height function which is just the z value of the point. [[File:3D-Leveltorus.png|200px]] It has four critical points: two at the top and bottom of the outer circle (<math display="inline">p_1, p_4</math>) and two at the top and bottom of the inner circle (<math display="inline">p_2, p_3</math>). [picture] When the height is between the <math display="inline">p_1</math> and <math display="inline">p_2</math>, the space is a two-cell, which can be retracted to a point. [picture] When the height is between <math display="inline">p_2</math> and <math display="inline">p_3</math>, the space is a cylinder, which can be retracted to a two-cell with a one-cell attached. [[File:3D-Cylinder_and_disk_with_handle.png|200px]] When the height is between <math display="inline">p_3</math> and <math display="inline">p_4</math>, the space is a torus with a disc removed, which can be retracted to a cylinder with a one-cell attached. [[File:3D-Cylinder_with_handle_and_torus_with_hole.png|200px]] When the height is greater than <math display="inline">p_4</math>, then the full torus is constructed by attaching a two-cell. [Explain in terms of Morse data and Morse index?] === Morse data and quasi-local cycles === As in the above example, we start at the "bottom" of <math display="inline">M</math> and build upwards until just before we reach our first critical point <math display="inline">p</math>. ;Smooth points :This is a tube around a <math display="inline">(d-1)</math>-chain <math display="inline">\gamma</math> where the height function <math display="inline">h</math> is maximised at <math display="inline">p</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 223.</ref> :For example, if <math display="inline">F(x, y) = \frac{1}{1 - x - y}</math> then <math display="inline">\lambda = 1</math> and <math display="inline">B^\lambda</math> is an arc reaching its highest point at <math display="inline">p</math>. :The normal plane <math display="inline">N</math> at <math display="inline">p</math> is a plane orthogonal to <math display="inline">B^1</math>(?). :Its normal link <math display="inline">L(S)</math> is a circle with two points missing where it intersects <math display="inline">\mathcal{V}</math>. :We make our quasi-local cycle out of the product of the arc and circle joined to <math display="inline">M_-</math> at points below <math display="inline">M_-</math>. :With the exception of degenerate points, such as monkey saddles...<ref>e.g. Pemantle, Wilson and Melczer 2024, pp. 211.</ref> ;Transverse multiple points :This is the product of a <math display="inline">k</math>-torus and a <math display="inline">(d-k)</math>-chain <math display="inline">\gamma</math>. The torus is the product of circles about <math display="inline">p</math> in the complex normal space to each strata which intersects <math display="inline">p</math>. The chain <math display="inline">\gamma</math> is supported in the stratum which is the common intersection of the varieties defined by the factors vanishing at <math display="inline">p</math>, and achieves its maximum height at <math display="inline">p</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 223-224.</ref> ;Arrangement multiple point :This is the product of a <math display="inline">(d-k)</math>-chain <math display="inline">\gamma</math> and several <math display="inline">k</math>-tori, one for each pair of sheets which intersect transversely, where the torus is the product of circles about <math display="inline">p</math> in each sheet.<ref>Pemantle, Wilson and Melczer 2024, pp. 226.</ref> ;Cone point :A cone point is zero-dimensional so there is no <math display="inline">\gamma</math>, just a <math display="inline">d</math>-torus about <math display="inline">p</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 227.</ref> == Notes == {{Reflist}} == References == * {{cite book | last1=Goresky | first1=Mark | last2=MacPherson | first2=Robert | title=Stratified Morse Theory | publisher=Springer-Verlag | year=1988 | url=https://www.math.ias.edu/~goresky/pdf/SMT.djvu }} * {{cite book | last=Henle | first1=Michael | title=A Combinatorial Introduction to Topology | publisher=Dover Publications Inc. New York | year=1979 }} * {{citation | last=Mather | first=John | title=Notes on Topological Stability | year=2012 | journal=Bulletin of the American Mathematical Society | volume=49 | number=4 | pages=475-506 | url=https://www.ams.org/journals/bull/2012-49-04/S0273-0979-2012-01383-6/S0273-0979-2012-01383-6.pdf }}. * {{cite book | last1=Pemantle | first1=Robin | last2=Wilson | first2=Mark C. | last3=Melczer | first3=Stephen | title=Analytic Combinatorics in Several Variables | publisher=Cambridge University Press | year=2024 | edition=2nd | url=https://acsvproject.com/PemantleWilsonMelczer23.pdf }} 4b5u9d6ro6ukpvr7fmqostg3rb7qpsp General Literary Chinese from Scratch 0 481710 4675479 4670715 2026-10-11T00:27:26Z Shira the Mogul 3560559 /* Useful resources */ Genius 4675479 wikitext text/x-wiki __notoc__ Welcome to the Wikibook for Literary Chinese (Known as 漢文 "Han Language" in East Asia or 文言 "Literary Language" in China), aimed at individuals hoping to gain a general knowledge of it before progressing into genres they wish to be acquainted with. This is not the [[Classical Chinese]] textbook, which is aimed at Chinese Zhou-Qin era texts. This text aims to shed light on post-Zhou-Qin texts across East Asia, which mimic those texts. However, as Zhou-Qin era texts served as the main body from which individuals learned, they are employed here as and when they are considered necessary or otherwise useful. It does so through a "buffet" approach, showering you, the reader, with an ocean of texts of myriad genre. ==Table of Contents== === Front matter === * [[/Introduction/]] * [[/Appendices/]] === Useful resources === These are quick grab-bags that can be useful for vocabulary-building. * [[/Antonym List/]] <!--- 文/武,大/小,厚/薄,橫/縱...---> * [[/Collocation Groups/]] <!--- e.g. 四象,三靈…… ---> * [[/Colour Correspondence Table/]] <!--- Colour characters with hex colorations in cells ---> * [[/Pronoun Table/]] * [https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/嚴譯及部定詞等 Yan Fu's Qing-era translations for modern terms] <!--- Wikiversity has this (https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/嚴譯及部定詞等) and the below, I will effectively be translating a lot of it! ---> * [https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/上古語考輯 Communicative Terms] <!--- this will be translated eventually, but right now it's bad to just leave this here. ---> === Useful primers === Across history, many primers have been made for teaching Literary Chinese to children. These are a few that are recommended for use alongside this work, ideally in flashcards. * [https://www.fdgwz.org.cn/Web/Show/11308 倉頡篇] - Cangjie's Chapters, the earliest one. It is extant, but incomplete. It contains several rare characters, and so if used, I would personally recommend doing so later, or out of interest. * 三字經 - The Three Character Classic, an excellent piece for Confucian education. Pair with 弟子规 for best results. ** 三字經(太平天國版)- For Christians, there is a version made by Hong Xiuquan from the Taiping Rebellion. Despite the context, it is a legitimately useful primer and can be used to self-teach for the Delegate's Edition of the Christian Bible. * 千字文 - The Thousand Character Classic, a remarkable piece of constrained writing that only uses each character once. Amazing for building vocabulary whilst seeing historical allusions and the like. * 五字鑑 - The Five-Character Mirror, essentially the 24 Histories of China compressed into a primer. Uses 5-character couplets, the longest in this list. * 龍文鞭影 - The Shadow of Longwen's Whip, a historical allusion trainer. Best paired with a context piece. ===Unit 0: The Han script=== This unit is intended for those with no familiarity of the Han script. It will prepare you for the units ahead, teaching largely pictographic characters. By the end of this unit, students will: * Recognise around 50 characters. * Understand how characters are composed and how this gives them meaning. * Have a basic idea of how to handwrite and/or type characters using the Cangjie Input Method. * Know some bare basics of Literary Chinese grammar (e.g. Basic word order, where adjectives go, lack of "is", 有...) Lessons: # [[/An Introduction to the Han Script/]] # [[/People, Big and Small/]] # [[/How do we write Chinese?/]] # [[/What are Chinese characters, anyway?/]] # [[/The Sun, the Moon, and the Five Elements/]] # [[/Getting Familiar with Body Parts/]] # [[/Using Numbers and Using Weapons/]] <!--- 竹戈十大中一弓廿卜---> # [[/Tilling the Fields with 有/]] <!--- 山田 ---> # [[/How Characters are Made/|How Characters are Made with Kiyohara no Sanemoto]] # [[/Cangjie Created Characters/]] <!--- Get people to use Cangjie ---> # [[/The Kangxi Radical System/]] <!--- Introduce some monoradical texts to train recognition. ---> ===Unit 1: Basic Skills=== This unit is intended for those with minimal familiarity with the Han script and no familiarity with Literary Chinese. There is a focus on simple structures, skills for dissecting common textual structures, and short-form poetry in this unit. Before starting this unit, students should: * Recognise around ~30 characters. * Can use Cangjie input. * Have given Unit 0 a cursory glance. <br> By the end of this unit, students will: * Recognise around ~100 characters. * Comprehend numbers, the Heavenly Stems, and the Earthly Branches, and be able to use them to quantify time and date. * Intuit the basic topic -> comment idea behind Literary Chinese. "This, it is..." * Understand basic function words such as 也, 而, 有, and 謂. Lessons: # [[/The All-Purpose 也/]] # [[/An Introduction to Chinese Numbers/]] # [[/One, Two, Left, and Right with Gongsun Long/]] # [[/The Heavenly Stems/]] # [[/Tell the Time with Earthly Branches/]] # [[/How Much Time, Exactly?/]] # [[/Lunar Dates with the Spring and Autumn Annals/]] # [[/Scanning for Major Events in Historical Annals/]] # [[/Dinner with the Daimyo/]] # [[/In Discourse with Jibong/]] # [[/How do we Write Height and Weight?/]] # [[/Eating like a Zhou Aristocrat/]] <!--- Some cool stuff I saw someone studying from https://zh.wikisource.org/wiki/%E8%87%B3%E5%B0%8F%E4%B8%98%E8%A5%BF%E5%B0%8F%E7%9F%B3%E6%BD%AD%E8%A8%98# https://zh.wikisource.org/wiki/%E6%A0%B8%E8%88%9F%E8%A8%98 Could be used for period focus ---> ===Unit 2: Myths and Legends of East Asia=== In this unit, you will be studying some of the ancient myths and legends of East Asia, along with one of your first literary genres: Zhiguai 志怪. These texts happen to be quite easy to read and utilise skills you have already learned. By the end of this Unit, students will: * Recognise around 120 more characters. * Be able to use function words such as 在, 無, 不, 焉, and 于/於. * Understand 里 as a measure of distance. * Recognise the switch between 吾/我 in the subject-object positions and demonstrate it in usage. * (Chinese speakers) Be able to differentiate 于 and 於, and understand the "interest(ed) in" meaning of 好 in most circumstances. <!--- Shanhaijing, Zibuyu... Etc. Zhiguai literature. This aims to provide a counterpoint to what Confucius wouldn't discuss - thus Zibuyu. Going straight into Daoism isn't ideal. ---> # [[/Exploring the World of Mountains and Seas/]]<!-- Structure: 出焉 --> # [[/Oh, the Qilin!/]] # [[/The Poison of Zhen/]] <!--- referenced a lot in histories 《説文解字》鴆:毒鳥也。从鳥冘聲。一名運日。 《山海經·中山經》 又東六十里,曰瑤碧之山,其木多梓柟,其陰多青䨼,其陽多白金。有鳥焉,其狀如雉,恒食蜚,名曰鴆。 史記 魯 662 三十二莊公弟叔牙鴆死。慶父弒子般。季友奔陳,立湣公。 《後漢書·紀·孝順孝沖孝質帝紀》 閏月甲申,大將軍梁冀潛行鴆弒,帝崩于玉堂前殿,年九歲。 ---> # [[/Ultimate Justice with Xiezhi/]] <!--- the yellow emperor met one, gao yao also used one ---> # [[/The Virtue of the Fenghuang/]] <!--- The Shanhaijing has a great line which we can link with the Daimyo exercise and promote scanning with 《山海經·南山經》又東五百里,曰丹穴之山,其上多金玉。丹水出焉,而南流注于渤海。有鳥焉,其狀如雞,五采而文,名曰鳳皇,首文曰德,翼文曰義,背文曰禮,膺文曰仁,腹文曰信。是鳥也,飲食自然,自歌自舞,見則天下安寧。 ---> # [[/The Entrapment of Hua Po/]] # [[/Nüwa Created the World/]] ===Unit 3: Confucianism and the World=== This is a Confucian-themed unit with a smattering of other items. You will see the odd geography of the past, early linguistic philosophy, and terrifying breakaway states! Lessons: # [[/A Brief Overview of Confucianism/]] # [[/Teaching the Annals in Qi/]] <!-- Gongyang Gao's commentary --> # [[/Is a White Horse a Horse?/]]<!-- Teach negation with 非 in 公孙龍子 and compare with 不 --> # [[/The Three Character Classic/]] # [[/Expressing Filial Conduct with Confucius and Hara Saihin/]] <!-- 次韻杏坪先生 父執有君孤不孤 相依遍接搢紳徒 区区自抱地方寸 杳杳重遊天一隅 羇雁飛鳴迷汝國 家人思夢入江都 如教志業青年遂 世上寧無逐臭夫 --> # [[/Confucianism and the Environment with Sai On/]]<!-- 木假山記 --> # [[/In Debate with Mencius/]] ===Unit 4: Women's Writing=== In this unit, women's writing from various areas of China will be explored. This is chiefly targeted at poetry and the themes within; from the feminine voice of the Classic of Poetry to the remonstrance towards the Khitan Emperor Tianzuo of Jin by his Consort Dasese. The role of women in courtly society is to be elucidated here! # [[/An Unmarried Life with Heo Nansŏrhŏn/]] <!--- 貧女吟 豈是乏容色。工鍼復工織。 少小長寒門。良媒不相識。 夜久織未休。戛戛鳴寒機。 機中一匹練。終作阿誰衣。 手把金翦刀。夜寒十指直。 爲人作嫁衣。年年還獨宿。 ---> # [[/Responding to Lord Trần with Hồ Xuân Hương/]] <!--- Responding to 陳光靜 Trần Quang Tĩnh 《和陳侯》 愧無才調使人驚,十載風塵貫耳鈴。 已是臨枰知敵手,莫須敲月苦殫精。 為輪為彈隨遭遇,誰鳳誰鶯任賦生。 造物於人何苟惜,明珠休向暗中呈。 莫須 is an important structure to teach here. ---> # [[/Gaze into the Autumn Night with Taisei Shōan/]] <!--- 秋夜偶成·大成聖安 長天浮爽気,月色興無窮 群犬吠山径,百蟲啼野風 悲秋秋夜永,感古古今同 自是孤窓下,凄然万慮空 ---> # [[/Visiting a Temple with Yu Xuanji/]] <!--- 遊崇真觀南樓覩新及第題名處 雲峰滿目放春晴,歷歷銀鈎指下生。 自恨羅衣掩詩句,擧頭空羨榜中名。 ---> # [[/Remonstrance with Dasese/]] <!--- https://zh.wikisource.org/wiki/%E8%AB%B7%E8%AB%AB%E6%AD%8C 諷諫歌·大瑟瑟 勿嗟塞上兮暗紅塵。 勿傷多難兮畏夷人。 不如塞奸邪之路兮選取賢臣。 直須臥薪嚐膽兮激壯士之捐身。 可以朝清漠北兮夕枕燕雲。 Dasese (or 萧瑟瑟) was a Khitan consort to Emperor Tianzuo of Liao. She remonstrated him as the Jurchens were beginning to encroach upon the Khitan, and was forced to commit suicide for her remonstrance. Tianzuo would soon pay for his malfeasance. ---> # [[/The Love Songs of the Odes/]] <!--- 褰裳 子惠思我,褰裳涉溱。子不我思,豈無他人?狂童之狂也且! 子惠思我,褰裳涉洧。子不我思,豈無他士?狂童之狂也且! 柏舟 彼柏舟,在彼中河,髧彼兩髦,實維我儀,之死矢靡它,母也天只,不諒人只。 汎彼柏舟,在彼河側,髧彼兩髦,實維我特,之死矢靡慝,母也天只,不諒人只。 行露 厭浥行露,豈不夙夜,謂行多露。 誰謂雀無角?何以穿我屋?誰謂女無家?何以速我獄?雖速我獄,室家不足。 誰謂鼠無牙?何以穿我墉?誰謂女無家?何以速我訟?雖速我訟,亦不女從。 ---> # [[/Rules for Women with Ban Zhao/]] <!--- https://zh.wikisource.org/wiki/%E5%A5%B3%E8%AA%A1 ---> # [[/The Tragedy of Cai Wenji/]] <!--- 悲憤詩 〔兩漢〕蔡文姬 漢季失權柄,董卓亂天常。 志欲圖篡弒,先害諸賢良。 逼迫遷舊邦,擁主以自強。 海內興義師,欲共討不祥。 卓眾來東下,金甲耀日光。 平土人脆弱,來兵皆胡羌。 獵野圍城邑,所向悉破亡。 斬截無孑遺,屍骸相撐拒。 馬邊懸男頭,馬後載婦女。 長驅西入關,迥路險且阻。 還顧邈冥冥,肝脾為爛腐。 所略有萬計,不得令屯聚。 或有骨肉俱,欲言不敢語。 失意幾微間,輒言斃降虜。 要當以亭刃,我曹不活汝。 豈復惜性命,不堪其詈罵。 或便加棰杖,毒痛參並下。 旦則號泣行,夜則悲吟坐。 欲死不能得,欲生無一可。 彼蒼者何辜,乃遭此厄禍。 邊荒與華異,人俗少義理。 處所多霜雪,胡風春夏起。 翩翩吹我衣,肅肅入我耳。 感時念父母,哀嘆無窮已。 有客從外來,聞之常歡喜。 迎問其消息,輒復非鄉里。 邂逅徼時願,骨肉來迎己。 己得自解免,當復棄兒子。 天屬綴人心,念別無會期。 存亡永乖隔,不忍與之辭。 兒前抱我頸,問母欲何之。 人言母當去,豈復有還時。 阿母常仁惻,今何更不慈。 我尚未成人,奈何不顧思。 見此崩五內,恍惚生狂痴。 號泣手撫摩,當發復回疑。 兼有同時輩,相送告離別。 慕我獨得歸,哀叫聲摧裂。 馬為立踟躕,車為不轉轍。 觀者皆噓唏,行路亦嗚咽。 去去割情戀,遄征日遐邁。 悠悠三千里,何時復交會。 念我出腹子,匈臆為摧敗。 既至家人盡,又復無中外。 城廓為山林,庭宇生荊艾。 白骨不知誰,縱橫莫覆蓋。 出門無人聲,豺狼號且吠。 煢煢對孤景,怛吒糜肝肺。 登高遠眺望,魂神忽飛逝。 奄若壽命盡,旁人相寬大。 為復強視息,雖生何聊賴。 託命於新人,竭心自勖勵。 流離成鄙賤,常恐復捐廢。 人生幾何時,懷憂終年歲。 ---> ===Unit 5: Food from Across the Ages=== # [[/A Simple, Rich Fry/]] <!--- 《禮記 內則》淳熬:煎醢,加于陸稻上,沃之以膏曰淳熬。淳毋煎醢,加于黍食上,沃之以膏曰淳毋。---> # [[/Song Cuisine with Chen Dasou and Lin Hong/]] <!--- 陳達叟 本心齋疏食譜 https://zh.wikisource.org/zh-hant/%E6%9C%AC%E5%BF%83%E6%96%8B%E7%96%8F%E9%A3%9F%E8%B0%B1 ---> <!--- 山家清供 https://zh.wikisource.org/wiki/%E5%B1%B1%E5%AE%B6%E6%B8%85%E4%BE%9B ---> # [[/Yuan Cuisine with Ni Zan/]] <!--- https://ctext.org/wiki.pl?chapter=318337&if=en 《雲林堂飲食制度集》倪瓚 one of the Four Masters, also a painter ---> # [[/A Feast with Yuan Mei/]] <!--- 袁枚 隨園食單 https://ctext.org/wiki.pl?if=gb&res=344157 ---> # [[/Remembering the Food of Joseon with Hŏ Kyun/]] <!--- https://rmda.kulib.kyoto-u.ac.jp/item/rb00023424?page=3p 許筠 屠門大嚼 ---> ===Unit 6: An Overview of Sinitic Poetry=== This unit will teach you how Sinitic Poetry operates; - that is, the way individuals in the Sinosphere compose poetry in Literary Chinese. Despite this language's fall out of favour in the past century, this tradition is still remarkably alive and well, and their short length makes them more accessible than elaborate prose. In this unit, you will begin from the ''Classic of Poetry'' before travelling through poems from the Tang dynasty, Singapore, Japan, Vietnam, the Ryukyu Kingdom, and Korea. When introducing poetry, I will furthermore use the language from the nation it is from to show how it is recited by its people. After discussing the Classic of Poetry, we will also be a small detour into a discussion on Ping-Ze 平仄, the Tang dynasty system of alternating tones, so to produce rhyme on tonal and phonological levels. This had a major impact on Literary Chinese poetry as a whole! <!--- Summary of the above part about 于 and 於 for other editors: 于 and 於 were distinct words for an extremely long time and were still such to Literary Chinese writers. Their "merging" through Simplified-Traditional Chinese distinctions is a very modern thing. I will summarise their usages here, using Pulleyblank's Outline of Classical Chinese Grammar (2000); * 于 - This can mean "to go" or "to/at". 黃鳥于飛 "The yellow birds go flying". Must be post-verbal. It can also appear in 至于. * 於 - This is an all-purpose locative preposition - from "on/at/in" to "from" or even "than" (甲於乙). The implication of motion is not there at all. Must be pre-verbal. It can also appear in 之於 or be an archaic noun for a crow 於 (烏). ---> Lessons: # [[/Across the Rivers with Emperor Puliuru Guang/]] <!--- Illustrate ping-ze ---> # [[/To Study the Odes/]] # [[/A Detour into Orthodox Ping-Ze/]] <!--- 平 and 仄 are useful characters themselves. Show 仄 in the binomes 反仄,歉仄,逼仄 as it's often difficult to immediately use ---> # [[/The Restraint of Du Fu/]] # [[/The Longing of Li Bai/]] # [[/The Environment with Bukha Timur/]] # [[/Pillow Talk with Guan Yunshi/]] <!--- 紅繡鞋·貫雲石 挨著靠著雲窗同坐,偎著抱著月枕雙歌,聽著數著愁著怕著早四更過。四更過情未足,情未足夜如梭。天哪,更閏一更兒妨甚么! Uyghur author! ---> # [[/Buddhist Philosophy with Ngô Chân Lưu and Taisei Shōan/]] <!-- 元火·吳真流 木中元有火,元火復還生。 若為木無火,鉆燧何有萌。--> <!-- 杜鵑·大成聖安 夢覚孤床静 杜鵑帯雨飛 一声来近枕 何者不沾衣 --> # [[/Odes with Mō Taiei and Zheng Chengxun/]] <!-- 詠松·毛泰永 植體宜千仞,垂陰動百尋。 李膺真烈烈,和嶠自森森。 桃李何堪較,雪霜安得侵。 萬年身不老,種子又成林。 AKA Inoha Seiki 伊野波 盛紀 --> <!-- 詠班蘭·鄭成勛 南國多芳草,班蘭最有名。 深根將綠茁,長葉亦叢生。 取味迎賓合,入厨任水烹。 可憐經一用,擲棄不留情。 鄭成勛《樵隱詩集》 https://nus.edu.sg/nuslibraries/dsprojects/sg-jiutishi/poem/827 --> # [[/A Golden Cup and the Fall of a Dynasty with Yan Fu/]] # [[/On a Journey with Sadula/]] <!--- No lesson entry: 朝中措·襄陽古道灞陵橋 襄陽古道灞陵橋,詩興與秋高。 千古風流人物,一時多少雄豪。 霜清玉塞,雲飛隴首,風落江皋。 夢到鳳凰台上,山圍故國周遭。 北郊晚步 陂水荷凋晚,茅檐燕去涼。 遠林明落景,平麓淡秋光。 群牧歸村巷,孤禽立野航。 自諳閑散樂,園圃意尤長。 Jurchen poet and grandson of Emperor Shizong of Jin. He's a Zen Buddhist, so we'll go back to him later. ---> ===Unit 7: Nation Focus - Japan=== # [[/An Introduction to Kanbun Kundoku/]] # [[/The Inariyama Sword/]] <!--- short and sweet! ---> # [[/Entering Japan with Takeda Shingen/]] # [[/The Oldest Inscription in Japan/]] <!--- 宇治橋断碑 ---> # [[/The End of a Rebellion/]] # [[/The Diary of Fujiwara no Teika/]] <!--- 明月記 ---> # [[/Reading the History of Japan with Prince Toneri/]] <!--- 日本書記, etc. ---> # [[/A Biographical Painting of Toyotomi Hideyoshi/]] <!--- This is on Fanya Hanwen Corpus ---> <!--- # [[/Occupying Taiwan/]] ---> <!--- I have some colonial literature on me that can be used here. ---> ===Unit 8: Shinto, the Nature Religion=== # [[/Shinto, Questions and Answers/]] <!--- https://wikisource.org/wiki/%E7%9C%9E%E9%81%93%E5%95%8F%E5%B0%8D 眞道問對 本田親徳 really good way of operationalising 乎 and much of the early grammar. 問 天帝無始無終乎。 對 天帝無始無終也。 旣以無始無終之力 與無始無終之體 造無始無終之萬物。 其功亦無始無終也。 問 天地大原在道乎。 對 天地大原實在道。 鬼神依道而立。 人民依道而活。 萬物依道而息。 This is great! ---> # [[/The Way of Shinto with Honda Chikaatsu/]] <!--- https://wikisource.org/wiki/%E9%81%93%E4%B9%8B%E5%A4%A7%E5%8E%9F 本田親徳 道之大原 ---> <!--- 滄海窓問答 鎮魂帰神の極意 新論 by 会沢正志斎 https://dl.ndl.go.jp/pid/2610897 大和神学 神道大意 三社託宣 神道五部書 古語拾遺 日本書紀 ---> ===Unit 9: Nation Focus - Korea=== # [[/Feigned Surrender with Ŭlchi Mundŏk/]] <!--- 乙支文德漢詩 ---> # [[/A fu with Yi Kyubo/]] # [[/An Elegy to the Empress with Choe Ja/]] <!--- Choe Ja 元德大后輓詞·崔滋(최자) 乾極曾客配,坤儀正體元。 枕前朝聖主,帳底見曾孫。 陰慘俄沉月,屋悲便沒軒。 三韓千古淚,七十九年恩。 ---> # [[/Language Reform with Sejong the Great/]] <!--- 訓民正音 https://github.com/ShiraTheMogul/fanyahanwen-corpus/commit/1ef2b42cc50055affaa5ef39c61b87ed31c34a60 multiple poems and descriptive terms, possibly the best capstone ---> # [[/Fall Off Your Horse!/]] <!--- a famous record from 朝鮮王朝實錄 ---> # [[/The Diary of Yi Sun-Sin/]] <!--- 亂中日記 ---> # [[/Tales from Mount Kumo/]] <!--- 金鰲新話 ---> # [[/Pak Chiwŏn Tours the Qing/]] <!--- 熱河日記 ---> # [[/Korea's Three Kingdoms/]] <!--- 三國史記 for sure! ---> # [[/Hwang Yun-seok's Essays/]] <!--- https://zh.wikisource.org/wiki/%E9%A0%A4%E9%BD%8B%E9%81%BA%E7%A8%BF 頤齋遺稿 黃胤錫 Joseon scholar! ---> ===Unit 10: Christian Literature=== # [[/A Different Three Character Classic with Hong Xiuquan/]] # [[/Friar Juan Cobo's Veritable Record/]] <!--- One of few texts from the Philippines that I have ever found! https://bnedigital.bne.es/bd/en/viewer?id=0160187c-9d9b-4f34-84d6-bc03fd310c69 ---> # [[/The Delegate's Edition/]] # [[/Nestorian Steles during the Tang/]] <!--- 大秦景教宣元至本經經幢 and 景教碑 ---> # [[/Hong Xiuquan's Bible/]] <!--- https://bible.fhl.net/ob/nob.html?book=407 ---> <!--- I don't want to focus too much on Hong Xiuquan here, so look for more material, especially from missionaries. ---> ===Unit 11: An Introduction to Daoism=== <!--- And now back to your regularly scheduled Zhuangzi/Laozi/Liezi. But with more interesting stuff. Trust! ---> # [[/Laozi Explains the Dao/]] # [[/Qingtan with Xie Daoyun/]] # [[/The Doubting Neighbour/]] # [[/Kuafu Chases the Sun/]] # [[/The Frog in a Well/]] # [[/Wu wei with King Hui of Liang/]] # [[/The Old Man that Moves the Mountains/]] # [[/Master Zhuang Dreams of Butterflies/]] # [[/Master Incapable and the Poisonous Bird/]] # [[/Transmitting the Dao with Yelü Chucai/]] <!---耶律楚材 - Served 窝阔台, 玄風慶會錄 is short and respectable enough to work with. https://zh.wikisource.org/wiki/%E7%8E%84%E9%A2%A8%E6%85%B6%E6%9C%83%E9%8C%84 ---> # [[/The Indifferent Taoist/]] <!--- northern song https://zh.wikisource.org/wiki/%E7%8E%89%E6%AD%B7%E5%AF%B6%E9%88%94 ---> <!--- Currently very stereotypical, but there's stuff to work with at least. Need to include those weird Daoist characters among other things. ---> ===Unit 12: Nation Focus - Ryukyu Kingdom=== # [[/Historical Annals with Sai On/]] <!--- Kyuko is an easy cop ---> # [[/The Enthronement of Shō Tei/]] # [[/The Twilight of Ryukyu with Shō Ten/]] # [[/A Trip to Ryukyu with Luo Sen/]] <!--- Pre-Capstone ---> <!--- 遐邇貫珍 1854-11 - 日本日記 羅森 https://archive.org/details/HEKC185411/page/n5/mode/1up A solid description of Ryukyu cultural customs in Volume 11. Absolutely incredible. 日三日火船直向東北而駛出了臺灣之外幾日不見天涯是時北風大作波浪沖天火船亦甚飄蕩而不能立見有沙鷗隨風而逐浪心直駛七日漸見小山而到琉球琉球一國長闊一百七十五里其國城在地球圖緯線赤道之北二十六度十四分經線中華北京偏東十一度二十四分自明以來世封王爵叨列藩籬其處土產不過蔬菜番薯菜油黑糖等類人民束髻大補是穿草履男女粧飾頭上祇插一簪二簪為別故少年之男女瞥目則無異及其壯也皆留鬚髯故街上長鬚之人甚多甲寅正月初一予上岸遊玩見街上兒童甚多分以銅錢各極歡喜人民亦甚謙恭民居間亦貼新春聯于門外但不見有別等繁華之事那霸有寺寺內有園是名家世宦之墳所以石刊刻姓名年號于碑上每日道人打掃供奉生花樹葉于墓前另有人家祖墳與中國之明塚無異峰巒之上樹木多植民房則以蠻石圍墻內以茅草結屋而居佳物椅棹俱無惟以草蓆屈膝而坐對火盆而吹煙民間亦有識中國言語字墨者 不張舖店惟有墟塲男不貿易婦女為之以貨易貨而外方之金銀弗尚焉然而百姓亦甚畏官長飲食亦甚粗粕甘守樸儉不務奢華亦鮮欺詐板門紙窓夜間亦不防竊曾見途中撿物亦能以返原人公門之內冷冷落落並無案牘之煩淳樸之風畧有同于上古之世我等外國之欲買什物須言于官官為代辦正月初六提督被理衛廉士等一班將官布列威嚴與予乘轎至王宮總理大臣尚宏勳為主席布政大夫馬良才為知客享宴甚豐食物多與中國無異宴後各官皆饋有紙扇烟包布帛等項是物雖粗此亦世子之恭敬外國故亞國亦以禮物而返贈之世子王宮離岸三里在于山頂是名守禮將至其宮一路亦有樹木石牌坊宮室亦甚寬大幽雅垣局可觀其處多栽鳳尾草森樹等類以障陰山邊田土樹藝五穀近海沙田水漲之後人收其沙以煎鹽此時明月當圓予覽山川亦足見一方之風景 ---> <!--- 中山世鑑 and so on. Lots of poetry too. ---> ===Unit 13: Nation Focus - Singapore=== <!--- National Library of Singapore has a poetry series that's super good! ---> # [[/Three Nights in Penang with Gao Chao/]] ===Unit 14: Literary Chinese in Medicine=== <!--- do not endorse the medical practices discussed in these...make sure to link back to the heavenly stems here as they are associated with specific body parts. ---> # [[/The Books of the Yellow Emperor/]] <!-- 黃帝内徑 ---> # [[/Deviant Qi with Zhang Congzheng/]] <!--- https://zh.wikisource.org/wiki/%E5%84%92%E9%96%80%E4%BA%8B%E8%A6%AA ---> # [[/Anatomy with Sugita Genpaku/]] <!--- 解体新書 ---> # [[/A Lost Wu Medical Text analysed in Japan/]] <!--- 難經古義 ---> ===Unit 15: People Focus - Zhuang peoples=== <!--- https://mooc1.chaoxing.com/mooc-ans/ztnodedetailcontroller/visitnodedetail?courseId=84745403&knowledgeId=84745463&_from_=&_fromV2_=&rtag= 《峤西诗钞》 is also a really good shout. Found here: https://ctext.org/wiki.pl?if=gb&res=215640&remap=gb ---> <!--- Basically, there are Zhuang and Tangut peoples who wrote in Literary Chinese, and their inclusion here is to show that even those who made their own scripts would use this tongue. 张鸿翮 imported the character 朴 to describe a bug, for example. ---> # [[/Zhuang poetry with Li Bi/]] # [[/The Beauty of Wuyuan with Fang Ju/]] # [[/Disaster and Society with Wei Fenghua/]] # [[/Who Deserves a Biography?/]] <!--- https://wenyi.gmw.cn/2024-06/25/content_37398911.htm 一是忠实记录了汉诗创作与古壮字交融的文化现象。清代壮族诗人张鸿翮(hé)《大塘谣》(《峤西诗钞》卷二)云: 去了休。去到大塘红蓼洲。红蓼生花,不结子。绿朴生花,毬见毬。 诗中所说“绿朴”,是壮族对柚子的惯称。“柚子”,壮语发音为“bug”。根据《古壮字字典》,其对应的古壮字为“朴(㭪)”。诗人将古壮字运用到汉文诗歌创作中,刻下了明清壮汉文化交相辉映的注脚。 This sort of thing is why Zhuang and Tangut inclusion is important, as they show how flexible Literary Chinese can be. ---> ===Unit 16: People Focus - Tangut peoples=== <!--- 羅福萇 and 羅振玉 wrote studies on Western Xia / Tangut script. Look for poets and stuff. ---> ===Unit 17: Literary Chinese in the Military=== <!--- Real Sun Zi hours! 7 Military Classics are an obvious shout, but look for more stuff too. ---> # [[/Fū! Rin! Ka! Zan!/]] # [[/A Bilingual Stele of the Khitans/]] # [[/Going to war with Boyan/]] <!--- Boyan's Poem from the 元史   伯顏,蒙古巴林部人。至元十一年拜中書左丞相,總兵伐宋。官至開府儀同三司,薨贈太師,封淮安王,諡忠武。   《玉堂嘉話》:初,宋未下時,江南謠云:「江南若破,白雁來過。」當時莫喻其意。及宋亡,蓋知指丞相巴延也。   過梅嶺岡留題 馬首經從庾嶺回 【 庾嶺回 七修類稿(乾隆刊本)卷四十六作「嶺島歸」。】 ,王師到處悉平夷。擔頭不帶江南物,只插梅花一兩枝。   《七修類藳》:伯顏下江南,過金陵梅嶺岡詩云云。所以著名,亦有是善。 ---> # [[/An Edict from the Xianbei/]] # [[/The Suppression of the Kingdom of Dongning/]] <!--- 台灣鄭氏始末 https://ctext.org/wiki.pl?if=en&chapter=139938 Largely a record of wars in Dongning rather than anything about the trade etc, so it fits here. ---> # [[/The Shunzhi Emperor vs Li Zicheng/]] # [[/The Art of War/]] ===Unit 18: Nation Focus - Vietnam=== # [[/Đỗ Pháp Thuận and the Southern Skies/]] # [[/Ancestor Veneration with the Descendants of Zhu Xi/]] <!--- https://github.com/ShiraTheMogul/fanyahanwen-corpus/tree/main/corpus%2F%E8%B6%8A%E5%8D%97%E6%BC%A2%E6%96%87%2Fclean somewhere in here ---> # [[/Resolving a Succession Crisis with Emperor Trần Minh Tông/]] <!-- 南翁夢錄·黎澄 --> # [[/Spreading Revolutionary Consciousness with Phan Bội Châu and Liang Qichao/]] <!--- 越南亡國史 Possibly the most important text in Vietnamese history, not even gonna lie. https://zh.wikisource.org/wiki/%E8%B6%8A%E5%8D%97%E4%BA%A1%E5%9C%8B%E5%8F%B2 ---> # [[/Academia in Literary Chinese between East and West/]] <!--- 南風雜誌 is a massive shout here. Absolutely amazing series. ---> ===Unit 19: Historical Annals and Encyclopediae=== <!--- 永樂大典 will teach how to infer from gaps in texts! 《編類》 is an incredibly interesting essay from here that can bring up the odes and Confucius's「思無邪」quote. It can prepare students for the wrath of Qing academia later. ---> # [[/An Introduction to Biographical Paintings/]] <!-- Many older paintings include biographies at the top in Literary Chinese. Students need to learn these. https://commons.wikimedia.org/wiki/File:%E6%AD%B7%E4%BB%A3%E8%81%96%E8%B3%A2%E5%8D%8A%E8%BA%AB%E5%83%8F_%E5%86%8A_%E8%AB%B8%E8%91%9B%E4%BA%AE_(Zhuge_Liang).png - Famous figure, also part of a very notable series. https://commons.wikimedia.org/wiki/File:Otomo-Sorin-2.jpg - Contains the Japanese repetition character 々 https://commons.wikimedia.org/wiki/File:Toyotomi_hideyoshi4.jpg - simply has aura --> # [[/The History of Liao, Jin, and Song with Toqto'a/]] <!--- 脱脱 ---> # [[/Two Years in the Forbidden City with Yu Deling/]] <!--- 清宮禁二年記 https://zh.wikisource.org/wiki/%E6%B8%85%E5%AE%AE%E7%A6%81%E4%BA%8C%E5%B9%B4%E8%A8%98 ---> # [[/Selected Records of the History of the Da Shun/]] <!--- Fair Use of a 2010 book written in Literary Chinese about the Da Shun dynasty. Limit to 500 characters, if that. Use to encourage recognition of Simplified variants and modern Wenyanwen. ---> # [[/Documenting the World with Terajima/]] <!--- 和漢三才図会 寺島良安, built off 三才圖會 ---> ===Unit 20: Buddhist Literature=== <!--- You would be forgiven for wondering why this is so late, but if you look at many classical Buddhist texts you'll quickly see a ton of loanwords that make it significantly more difficult to read than the average text. Thus, it goes here for now. ---> <!--- Place focus on practical stuff first. Stuff you can and WILL see in Buddhist temples. Stuff Buddhists can take away immediately. Skills-based approach feels strongest here. ---> <!--- Look at Northern Liang and Later Qin literature, as there is a ton of work by translators from India during the 16 kingdoms period, particularly those two. ---> <!--- Stuff by Bodhidharma 達摩 could be fun too https://zh.wikisource.org/wiki/Author:%E9%81%94%E6%91%A9 ---> # [[/Dipping your feet in with Wenyan Shu/]] <!--- 華亭 世尊遺法本忘言,教外別傳意已圓。 只履攜將蔥嶺去,不妨來上月明船。 ---> # [[/Buddhism in Battle Standards/]] # [[/The Seven Tathagatas/]] <!--- 南無寶勝如來 南無多寶如來 南無妙色身如來 南無廣博身如來 南無離怖畏如來 南無甘露王如來 南無阿彌陀佛 Use to introduce some core vocabulary in repetitive manner. Useful phrases from my trip to Jing'an Temple 南無本師釋迦牟尼佛 - Pay homage to the root teacher 南無大悲觀世音菩薩 - Pay homage to the goddess of mercy 廣種福田 - widely plant a meritorious field ---> # [[/Two Buddhist Temples in Shanghai/]] <!--- 留雲禪寺 雲留雲翔領畧幾許禪機此地有雲散天開真如界。 塔內塔外普示無邊圓覺是故曰塔影雙照解脫門。 歲次壬午冬月吉旦。 覺醒敬撰。 楊胡生沐手恭書。 善信印利明敬獻。 ---> <!--- 福慧宝鼎 慧明大和尚 - introduce the Buddhist timekeeping system with 佛歷 around this point. 赤烏古剎 建寺一千七百六十周年紀念 古剎三國建 滬瀆有重玄 石佛音淨現 聖跡顯重元 唐時稱永泰 宋敕名靜安 聖祖留佛闡 仲師移伽藍 元收八景偈 明鑄鐘聲梵 清樹化羅漢 選賢十方讚 佛日普光明 福慧共修善 鼎運昌隆際 轉正法輪緣 歲次丁亥住持慧明監製 ---> # [[/Foreseeing Monkhood with Yi Xing/]] <!--- 看命一掌金 ---> # [[/A Trip to Western Xia with Zhi Guang and Hui Zhen/]] <!--- https://zh.wikisource.org/wiki/%E5%AF%86%E5%91%AA%E5%9C%93%E5%9B%A0%E5%BE%80%E7%94%9F%E9%9B%86 ---> <!--- https://zh.wikisource.org/wiki/%E5%AF%86%E5%92%92%E5%9C%93%E5%9B%A0%E5%BE%80%E7%94%9F%E9%9B%86 ---> # [[/Jizang's Three Discourses/]] <!--- https://zh.wikisource.org/wiki/%E4%B8%89%E8%AB%96%E7%8E%84%E7%BE%A9 ---> <!--- I saw these texts being quoted and thus should consider them in some capacity. 《般若波羅蜜多心經》 《金剛般若波羅蜜經》 《一切智光明仙人慈心因緣不食肉經》 《妙法蓮華經》 《大般涅槃經》 《大方等大集經》 《大毘盧舍那成佛神變加持經蓮華胎藏悲生曼荼羅廣大成就儀軌供養方便會》/ 胎藏曼荼羅 《佛說救拔焰口餓鬼陀羅尼經》 《雜阿含經》 Look at Japan's 五山文学 ---> ===Unit 21: People Focus - Manchu peoples=== # [[/Qing dynasty Poetry with Nara Singde/]] <!--- 飲水詞 納蘭性德 https://zh.wikisource.org/wiki/Author:%E7%B4%8D%E8%98%AD%E6%80%A7%E5%BE%B7 ---> # [[/Amassing Words with the Kangxi Emperor/]] # [[/Amassing Literature with the Qianlong Emperor/]] <!--- Siku Quanshu abstract https://zh.wikisource.org/wiki/%E5%9B%9B%E5%BA%AB%E5%85%A8%E6%9B%B8%E7%B8%BD%E7%9B%AE%E6%8F%90%E8%A6%81 ---> <!--- Yongzheng Emperor's Poetry https://zh.wikisource.org/wiki/Author:%E9%9B%8D%E6%AD%A3%E5%B8%9D 《和碩怡賢親王祭文》 Also include 滿洲國 stuff to show the fall of the Qing and attempts to preserve it through becoming a Japanese puppet state. It is important to show how Literary Chinese can be misused as well. 滿洲國建國宣言 is a good shout, as is 法制 to prepare students who may be interested in Taiwan legal stuff later down the road. https://zh.wikisource.org/wiki/Category:%E6%BB%BF%E6%B4%B2%E5%9C%8B ---> # [[/Paintings and Beauty with Puru Aisin-Gioro/]] <!--- Saw these in Shanghai Museum with some writing, seemed really cool. Teaches another skill. ---> ===Unit 22: Qing-RoC Literature=== <!--- many writers here, will be difficult to sift through. Include 四库全書 abstracts and stuff here. ---> # [[/Jewish Refugees in Shanghai/]] <!--- Show passports, certificates, etc, from the Jewish Refugee Museum, anonymised. ---> # [[/A Literary Chinese Abstract/]] <!--- Abstracts from siku quanshu, probably want others ---> # [[/Lament with Lu Ruoteng/]] <!--- 《疑猜》盧若騰,東寧國 盟誓變為交質子,春秋戰國風如此;末世上下相疑猜, 更質妻子防逃徙。 此法只可羈庸奴,若遇梟雄術窮矣;妻可再娶子再育, 安能長坐針氈裏。 我贈一法君記存;推心置腹人知恩;眾人畜之眾人報, 幾個國士在君門。 盧若騰撰,陳漢光編輯,《島噫詩》,臺灣文獻叢刊第二四五種(臺北:臺灣銀行經濟研究室,1968年)21頁。 ---> # [[/Common Linguistics Knowledge in the RoC/]] <!--- 音韻常識 ---> ==References used for this page== * Yang, B. (2016). 文言语法 [Literary Chinese Grammar] (1st ed). 中华书局 [Zhonghua Book Company]. ISBN: 978-7-101-11619-9 * Priestley, K. E., & Shou-jung, C. (1962). China’s Men of Letters, Yesterday and Today. Dragonfly Books. {{BookCat}} pk7hcojhflik20py3yzef6mznkwysz6 Vehicle Identification Numbers (VIN codes)/Jaguar/VIN Codes 0 485791 4675482 4675321 2026-10-11T02:20:32Z JustTheFacts33 3434282 /* Model Line (Position 6-7) */ 4675482 wikitext text/x-wiki {{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}} This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems. ==General Template for Jaguar's VIN format (2000 -)== ===Jaguar WMIs (2000-) (Position 1-3)=== * SAJ - Jaguar passenger car (UK) * SAD - Jaguar SUV (UK & Europe) * L2C - Chery Jaguar Land Rover (China) ===Regional Spec/Restraint System (Position 4):=== * J = Manual seat belts, Dual front airbags (US: XK8 '00) * B = Manual seat belts, Dual front airbags (Canada: XK8 '00) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04) * G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04,<br> S-Type '03-'04, XJ8/XJR Early '04) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (US: XK/XKR '07-'15, F-Type '14-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (Canada: XK/XKR '07-'15, F-Type '14-) ===Transmission & Steering Location (Position 5 - '00-'12):=== * A = Automatic / LHD * B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04) ===Transmission & Drive Wheels (Position 5 - '13-):=== * A = Automatic / Rwd (XF '13-'15, XJ '13-, XK '13-'15, F-Type '14-) * B = Manual / Rwd (F-Type '16-) * J = Automatic / Awd (XF Awd '13-'15, XJ Awd '13-, F-Type Awd '16-) ===Model Line (Position 6-7)=== {| class="wikitable" |+Position 6-7 !VIN code !Description |- |51 |[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08) |- |52 |[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04) |- |53 |[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03) |- |54 |[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08) |- |01 |[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08) |- |05 |[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09) |- |06 |[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09) |- |07 |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09) |- |0E |[[w:Jaguar XF (X250)|Jaguar XF]] ('13-'14) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 2.0T Premium]] [8th pos. of VIN is S] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Rwd]] [8th pos. of VIN is 7] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Awd]] [8th pos. of VIN is F] ('15) |- |0G |[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Rwd]] [8th pos. of VIN is 7] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Awd]] [8th pos. of VIN is F] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E: '10-'13 or P: '13-'15] |- |0J |[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'15) |- |0K |[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-'15) |- |8J |[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-'15) |- |12 |[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03) |- |14 |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03) |- |15 |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03) |- |23 |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01) |- |24 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03) |- |71 |[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09) |- |73 |[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09) |- |74 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04) |- |79 |[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09) |- |86 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06) |- |94 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'15) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ R-Sport]] [8th pos. of VIN is 7 or D] ('16-) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E] ('16-) |- |1E |[[w:Jaguar XJ (X351)|Jaguar XJR]] ('14-'16) |- |1G |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13-'15] |- |1J |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12) |- |2E |[[w:Jaguar XJ (X351)|Jaguar XJR LWB]] ('14-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13] |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is Z: '14-'15) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is 7: '16-) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13, '16- or T: '13-'15] |- |2J |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13) |- |2K |[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13) |- |3F |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13) |- |3G |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13) |- |3H |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'15) |- |3K |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'15) |- |41 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06) |- |42 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06) |- |43 |[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09) |- |44 |[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09) |- |45 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09) |- |46 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09) |- |4D |[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-'14) |- |4E |[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-'14) |- |4D |[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'15) |- |4E |[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition coupe ('15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition convertible ('15) |- |4H |[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'15), XKR-S GT coupe ('14) |- |4J |[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'15) |- |6A |[[w:Jaguar F-Type)|Jaguar F-Type coupe]] ('15-) |- |6B |[[w:Jaguar F-Type)|Jaguar F-Type S coupe]] ('15-) |- |6D |[[w:Jaguar F-Type)|Jaguar F-Type R coupe]] ('15-) |- |6E |[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-'15) |- |6F |[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-'15) |- |6G |[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-'15) |} ===Engine/Emissions Control System (Position 8)=== {| class="wikitable" |+Position 8 ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08). |- | A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10). |- | A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14), F-Type R coupe ('15). |- | B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02). |- | B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06). |- | B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09). |- | B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14). |- | C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05). |- | C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02). |- | C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06). |- | C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09). |- | C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15). |- | C || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('14-'15). |- | D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01). |- | D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-'15). |- | E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-'14). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('15). |- | H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-'15). |- | K || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XJR/XJR LWB ('14-'15). |- | L || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 495 PS/488 hp. Jaguar F-Type V8 S convertible ('14-'15). |- | N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02). |- | P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02). |- | P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-'15). |- | S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based).<br> Jaguar XF 2.0T ('13-'14), XF 2.0T Premium ('15). |- | T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05). |- | T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13-'15). |- | T || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar F-Type ('15-). |- | U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05). |- | U || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('15-). |- | V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05). |- | X || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('14). |- | Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-'15). |- | Z || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Rwd, XJL Portfolio Rwd ('14-'15). |- | 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13), XJ Rwd ('13-), F-Type ('14-'15). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('15). |} ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Code/Model Line/Engine (Position 11) 2000-2019=== * X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05) * W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08) * F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08) * G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02) * H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08) * 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08) * H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10) * 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09) * L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12) * M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15) * P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15) * 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15) * L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03) * M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03) * S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06) * T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06) * S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09) * T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13) * M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19) * 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19) * N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02) * P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02) * 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06) * 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06) * 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09) * 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15) * M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14) * 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17) * M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17) ===Plant Codes (Position 11) 2016-2026=== * A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26) * C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24) * S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19) * 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24) ===Model (Position 12)=== * C - X-Type ('02-'03) * D - X-Type ('03-'04) * E - X-Type ('04-'06) * J - X-Type ('06-'08) * L - S-Type ('00-'01) * M - S-Type ('01-'04) * N - S-Type ('04-'08) * R - XF ('09-'11) * S - XF ('11-'13) * U - XF ('13-'15) * Y - XF ('16-) * F - XJ ('00-'03) * G - XJ ('04-'06) [Browns Lane plant] * H - XJ ('06-'09) [Castle Bromwich plant] * V - XJ ('10-'16) * W - XJ ('16-'19) * A - XK ('00-'06) * B - XK ('07-'15) * K - F-Type ('14-'24) '''Positions 13–17, Serial Number''' ==General Template for Jaguar's VIN format (1981 - 1999)== ===Jaguar WMIs (1981-1999) (Position 1-3)=== * SAJ - Jaguar passenger car ===Model Line (Position 4)=== {| class="wikitable" |+Position 4 !VIN code !Description |- |A |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87) |- |B |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88) |- |D |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94) |- |F |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92) |- |K |[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94) |- |M |[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92) |- |M |[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96) |- |P |[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99) |- |K |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99) |- |P |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99) |- |N |[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96) |- |T |[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91) |- |S |[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93) |- |G |[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99) |} ===Class (Regional Spec)/Restraint System (Position 5):=== * V = N. American-spec (Manual seat belts) * L = Canadian-spec (Manual seat belts) * Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts) * A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88) * Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92) * W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94) * X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99) * X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99) * M = Manual seat belts, Driver-side airbag (Canada) * N = Manual seat belts, Dual front airbags (Canada) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99) ===Body Style (Position 6):=== * 1 = 4-door sedan (XJ-series sedan '81-'99) * 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99) * 3 = 2-door Cabriolet (XJ-SC '86-'88) * 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93) * 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99) * 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion] ===Engine Type (Position 7):=== {| class="wikitable" |+Position 7 |- ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97). |- | 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82). |- | 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97). |- | 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98). |- | 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87). |- | 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96). |- | 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89). |- | 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96). |- | 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97). |- | 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92). |- | 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99). |- | 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93). |- | 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87). |- | 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99). |} ===Transmission & Steering Location (Position 8):=== * 4 = Automatic / LHD * 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual) ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Codes (Position 11)=== * C - Browns Lane plant, Coventry, West Midlands, England, UK ===Positions 12–17, Serial Number=== ** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27) ** 300001 and after - XJ-series sedan Series III ** 500001 and after - XJ-series sedan (XJ40/XJ81) ** 720001 and after - XJ-series sedan (X300/X305/X306/X330) ** 810001 and after - XJ-series sedan (X308) ** 001001 and after - XK8 (X100) cc5xp36fux1f6c0w8whj8686lzbcwsb 4675484 4675482 2026-10-11T02:34:02Z JustTheFacts33 3434282 /* Engine/Emissions Control System (Position 8) */ 4675484 wikitext text/x-wiki {{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}} This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems. ==General Template for Jaguar's VIN format (2000 -)== ===Jaguar WMIs (2000-) (Position 1-3)=== * SAJ - Jaguar passenger car (UK) * SAD - Jaguar SUV (UK & Europe) * L2C - Chery Jaguar Land Rover (China) ===Regional Spec/Restraint System (Position 4):=== * J = Manual seat belts, Dual front airbags (US: XK8 '00) * B = Manual seat belts, Dual front airbags (Canada: XK8 '00) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04) * G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04,<br> S-Type '03-'04, XJ8/XJR Early '04) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (US: XK/XKR '07-'15, F-Type '14-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (Canada: XK/XKR '07-'15, F-Type '14-) ===Transmission & Steering Location (Position 5 - '00-'12):=== * A = Automatic / LHD * B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04) ===Transmission & Drive Wheels (Position 5 - '13-):=== * A = Automatic / Rwd (XF '13-'15, XJ '13-, XK '13-'15, F-Type '14-) * B = Manual / Rwd (F-Type '16-) * J = Automatic / Awd (XF Awd '13-'15, XJ Awd '13-, F-Type Awd '16-) ===Model Line (Position 6-7)=== {| class="wikitable" |+Position 6-7 !VIN code !Description |- |51 |[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08) |- |52 |[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04) |- |53 |[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03) |- |54 |[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08) |- |01 |[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08) |- |05 |[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09) |- |06 |[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09) |- |07 |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09) |- |0E |[[w:Jaguar XF (X250)|Jaguar XF]] ('13-'14) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 2.0T Premium]] [8th pos. of VIN is S] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Rwd]] [8th pos. of VIN is 7] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Awd]] [8th pos. of VIN is F] ('15) |- |0G |[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Rwd]] [8th pos. of VIN is 7] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Awd]] [8th pos. of VIN is F] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E: '10-'13 or P: '13-'15] |- |0J |[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'15) |- |0K |[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-'15) |- |8J |[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-'15) |- |12 |[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03) |- |14 |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03) |- |15 |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03) |- |23 |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01) |- |24 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03) |- |71 |[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09) |- |73 |[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09) |- |74 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04) |- |79 |[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09) |- |86 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06) |- |94 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'15) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ R-Sport]] [8th pos. of VIN is 7 or D] ('16-) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E] ('16-) |- |1E |[[w:Jaguar XJ (X351)|Jaguar XJR]] ('14-'16) |- |1G |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13-'15] |- |1J |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12) |- |2E |[[w:Jaguar XJ (X351)|Jaguar XJR LWB]] ('14-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13] |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is Z: '14-'15) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is 7: '16-) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13, '16- or T: '13-'15] |- |2J |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13) |- |2K |[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13) |- |3F |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13) |- |3G |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13) |- |3H |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'15) |- |3K |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'15) |- |41 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06) |- |42 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06) |- |43 |[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09) |- |44 |[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09) |- |45 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09) |- |46 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09) |- |4D |[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-'14) |- |4E |[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-'14) |- |4D |[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'15) |- |4E |[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition coupe ('15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition convertible ('15) |- |4H |[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'15), XKR-S GT coupe ('14) |- |4J |[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'15) |- |6A |[[w:Jaguar F-Type)|Jaguar F-Type coupe]] ('15-) |- |6B |[[w:Jaguar F-Type)|Jaguar F-Type S coupe]] ('15-) |- |6D |[[w:Jaguar F-Type)|Jaguar F-Type R coupe]] ('15-) |- |6E |[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-'15) |- |6F |[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-'15) |- |6G |[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-'15) |} ===Engine/Emissions Control System (Position 8)=== {| class="wikitable" |+Position 8 ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08). |- | A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10). |- | A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14), F-Type R coupe ('15). |- | B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02). |- | B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06). |- | B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09). |- | B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14). |- | C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05). |- | C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02). |- | C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06). |- | C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09). |- | C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15). |- | C || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('14-'15). |- | D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01). |- | D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-'15). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ R-Sport Awd, XJL Portfolio Awd ('16-). |- | E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13, '16). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-'14). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('15). |- | H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-'15). |- | K || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XJR/XJR LWB ('14-'16). |- | L || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 495 PS/488 hp. Jaguar F-Type V8 S convertible ('14-'15). |- | N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02). |- | P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02). |- | P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-'15). |- | S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based).<br> Jaguar XF 2.0T ('13-'14), XF 2.0T Premium ('15). |- | T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05). |- | T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13-'15). |- | T || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar F-Type ('15-). |- | U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05). |- | U || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('15-). |- | V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05). |- | X || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('14). |- | Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-'15). |- | Z || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Rwd, XJL Portfolio Rwd ('14-'15). |- | 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13), XJ Rwd ('13), F-Type ('14-'15). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('15), XJ R-Sport Rwd ('16), XJL Portfolio Rwd ('16). |} ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Code/Model Line/Engine (Position 11) 2000-2019=== * X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05) * W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08) * F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08) * G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02) * H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08) * 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08) * H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10) * 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09) * L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12) * M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15) * P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15) * 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15) * L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03) * M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03) * S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06) * T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06) * S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09) * T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13) * M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19) * 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19) * N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02) * P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02) * 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06) * 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06) * 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09) * 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15) * M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14) * 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17) * M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17) ===Plant Codes (Position 11) 2016-2026=== * A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26) * C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24) * S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19) * 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24) ===Model (Position 12)=== * C - X-Type ('02-'03) * D - X-Type ('03-'04) * E - X-Type ('04-'06) * J - X-Type ('06-'08) * L - S-Type ('00-'01) * M - S-Type ('01-'04) * N - S-Type ('04-'08) * R - XF ('09-'11) * S - XF ('11-'13) * U - XF ('13-'15) * Y - XF ('16-) * F - XJ ('00-'03) * G - XJ ('04-'06) [Browns Lane plant] * H - XJ ('06-'09) [Castle Bromwich plant] * V - XJ ('10-'16) * W - XJ ('16-'19) * A - XK ('00-'06) * B - XK ('07-'15) * K - F-Type ('14-'24) '''Positions 13–17, Serial Number''' ==General Template for Jaguar's VIN format (1981 - 1999)== ===Jaguar WMIs (1981-1999) (Position 1-3)=== * SAJ - Jaguar passenger car ===Model Line (Position 4)=== {| class="wikitable" |+Position 4 !VIN code !Description |- |A |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87) |- |B |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88) |- |D |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94) |- |F |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92) |- |K |[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94) |- |M |[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92) |- |M |[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96) |- |P |[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99) |- |K |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99) |- |P |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99) |- |N |[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96) |- |T |[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91) |- |S |[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93) |- |G |[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99) |} ===Class (Regional Spec)/Restraint System (Position 5):=== * V = N. American-spec (Manual seat belts) * L = Canadian-spec (Manual seat belts) * Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts) * A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88) * Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92) * W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94) * X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99) * X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99) * M = Manual seat belts, Driver-side airbag (Canada) * N = Manual seat belts, Dual front airbags (Canada) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99) ===Body Style (Position 6):=== * 1 = 4-door sedan (XJ-series sedan '81-'99) * 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99) * 3 = 2-door Cabriolet (XJ-SC '86-'88) * 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93) * 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99) * 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion] ===Engine Type (Position 7):=== {| class="wikitable" |+Position 7 |- ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97). |- | 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82). |- | 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97). |- | 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98). |- | 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87). |- | 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96). |- | 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89). |- | 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96). |- | 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97). |- | 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92). |- | 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99). |- | 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93). |- | 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87). |- | 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99). |} ===Transmission & Steering Location (Position 8):=== * 4 = Automatic / LHD * 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual) ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Codes (Position 11)=== * C - Browns Lane plant, Coventry, West Midlands, England, UK ===Positions 12–17, Serial Number=== ** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27) ** 300001 and after - XJ-series sedan Series III ** 500001 and after - XJ-series sedan (XJ40/XJ81) ** 720001 and after - XJ-series sedan (X300/X305/X306/X330) ** 810001 and after - XJ-series sedan (X308) ** 001001 and after - XK8 (X100) 7p8zfm8k5jy7eiorucjjrn3a16v4d0b 4675485 4675484 2026-10-11T02:38:31Z JustTheFacts33 3434282 /* Transmission & Drive Wheels (Position 5 - '13-): */ 4675485 wikitext text/x-wiki {{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}} This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems. ==General Template for Jaguar's VIN format (2000 -)== ===Jaguar WMIs (2000-) (Position 1-3)=== * SAJ - Jaguar passenger car (UK) * SAD - Jaguar SUV (UK & Europe) * L2C - Chery Jaguar Land Rover (China) ===Regional Spec/Restraint System (Position 4):=== * J = Manual seat belts, Dual front airbags (US: XK8 '00) * B = Manual seat belts, Dual front airbags (Canada: XK8 '00) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04) * G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04,<br> S-Type '03-'04, XJ8/XJR Early '04) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (US: XK/XKR '07-'15, F-Type '14-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (Canada: XK/XKR '07-'15, F-Type '14-) ===Transmission & Steering Location (Position 5 - '00-'12):=== * A = Automatic / LHD * B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04) ===Transmission & Drive Wheels (Position 5 - '13-):=== * A = Automatic / Rwd (XF '13-'15, XJ '13-'19, XK '13-'15, F-Type '14-'17) * B = Manual / Rwd (F-Type '16-'17) * J = Automatic / Awd (XF Awd '13-'15, XJ Awd '13-'19, F-Type Awd '16-'17) ===Model Line (Position 6-7)=== {| class="wikitable" |+Position 6-7 !VIN code !Description |- |51 |[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08) |- |52 |[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04) |- |53 |[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03) |- |54 |[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08) |- |01 |[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08) |- |05 |[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09) |- |06 |[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09) |- |07 |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09) |- |0E |[[w:Jaguar XF (X250)|Jaguar XF]] ('13-'14) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 2.0T Premium]] [8th pos. of VIN is S] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Rwd]] [8th pos. of VIN is 7] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Awd]] [8th pos. of VIN is F] ('15) |- |0G |[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Rwd]] [8th pos. of VIN is 7] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Awd]] [8th pos. of VIN is F] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E: '10-'13 or P: '13-'15] |- |0J |[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'15) |- |0K |[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-'15) |- |8J |[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-'15) |- |12 |[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03) |- |14 |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03) |- |15 |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03) |- |23 |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01) |- |24 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03) |- |71 |[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09) |- |73 |[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09) |- |74 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04) |- |79 |[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09) |- |86 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06) |- |94 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'15) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ R-Sport]] [8th pos. of VIN is 7 or D] ('16-) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E] ('16-) |- |1E |[[w:Jaguar XJ (X351)|Jaguar XJR]] ('14-'16) |- |1G |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13-'15] |- |1J |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12) |- |2E |[[w:Jaguar XJ (X351)|Jaguar XJR LWB]] ('14-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13] |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is Z: '14-'15) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is 7: '16-) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13, '16- or T: '13-'15] |- |2J |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13) |- |2K |[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13) |- |3F |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13) |- |3G |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13) |- |3H |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'15) |- |3K |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'15) |- |41 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06) |- |42 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06) |- |43 |[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09) |- |44 |[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09) |- |45 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09) |- |46 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09) |- |4D |[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-'14) |- |4E |[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-'14) |- |4D |[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'15) |- |4E |[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition coupe ('15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition convertible ('15) |- |4H |[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'15), XKR-S GT coupe ('14) |- |4J |[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'15) |- |6A |[[w:Jaguar F-Type)|Jaguar F-Type coupe]] ('15-) |- |6B |[[w:Jaguar F-Type)|Jaguar F-Type S coupe]] ('15-) |- |6D |[[w:Jaguar F-Type)|Jaguar F-Type R coupe]] ('15-) |- |6E |[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-'15) |- |6F |[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-'15) |- |6G |[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-'15) |} ===Engine/Emissions Control System (Position 8)=== {| class="wikitable" |+Position 8 ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08). |- | A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10). |- | A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14), F-Type R coupe ('15). |- | B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02). |- | B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06). |- | B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09). |- | B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14). |- | C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05). |- | C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02). |- | C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06). |- | C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09). |- | C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15). |- | C || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('14-'15). |- | D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01). |- | D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-'15). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ R-Sport Awd, XJL Portfolio Awd ('16-). |- | E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13, '16). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-'14). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('15). |- | H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-'15). |- | K || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XJR/XJR LWB ('14-'16). |- | L || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 495 PS/488 hp. Jaguar F-Type V8 S convertible ('14-'15). |- | N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02). |- | P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02). |- | P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-'15). |- | S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based).<br> Jaguar XF 2.0T ('13-'14), XF 2.0T Premium ('15). |- | T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05). |- | T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13-'15). |- | T || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar F-Type ('15-). |- | U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05). |- | U || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('15-). |- | V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05). |- | X || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('14). |- | Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-'15). |- | Z || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Rwd, XJL Portfolio Rwd ('14-'15). |- | 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13), XJ Rwd ('13), F-Type ('14-'15). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('15), XJ R-Sport Rwd ('16), XJL Portfolio Rwd ('16). |} ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Code/Model Line/Engine (Position 11) 2000-2019=== * X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05) * W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08) * F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08) * G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02) * H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08) * 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08) * H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10) * 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09) * L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12) * M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15) * P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15) * 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15) * L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03) * M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03) * S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06) * T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06) * S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09) * T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13) * M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19) * 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19) * N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02) * P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02) * 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06) * 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06) * 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09) * 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15) * M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14) * 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17) * M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17) ===Plant Codes (Position 11) 2016-2026=== * A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26) * C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24) * S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19) * 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24) ===Model (Position 12)=== * C - X-Type ('02-'03) * D - X-Type ('03-'04) * E - X-Type ('04-'06) * J - X-Type ('06-'08) * L - S-Type ('00-'01) * M - S-Type ('01-'04) * N - S-Type ('04-'08) * R - XF ('09-'11) * S - XF ('11-'13) * U - XF ('13-'15) * Y - XF ('16-) * F - XJ ('00-'03) * G - XJ ('04-'06) [Browns Lane plant] * H - XJ ('06-'09) [Castle Bromwich plant] * V - XJ ('10-'16) * W - XJ ('16-'19) * A - XK ('00-'06) * B - XK ('07-'15) * K - F-Type ('14-'24) '''Positions 13–17, Serial Number''' ==General Template for Jaguar's VIN format (1981 - 1999)== ===Jaguar WMIs (1981-1999) (Position 1-3)=== * SAJ - Jaguar passenger car ===Model Line (Position 4)=== {| class="wikitable" |+Position 4 !VIN code !Description |- |A |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87) |- |B |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88) |- |D |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94) |- |F |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92) |- |K |[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94) |- |M |[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92) |- |M |[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96) |- |P |[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99) |- |K |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99) |- |P |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99) |- |N |[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96) |- |T |[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91) |- |S |[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93) |- |G |[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99) |} ===Class (Regional Spec)/Restraint System (Position 5):=== * V = N. American-spec (Manual seat belts) * L = Canadian-spec (Manual seat belts) * Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts) * A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88) * Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92) * W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94) * X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99) * X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99) * M = Manual seat belts, Driver-side airbag (Canada) * N = Manual seat belts, Dual front airbags (Canada) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99) ===Body Style (Position 6):=== * 1 = 4-door sedan (XJ-series sedan '81-'99) * 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99) * 3 = 2-door Cabriolet (XJ-SC '86-'88) * 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93) * 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99) * 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion] ===Engine Type (Position 7):=== {| class="wikitable" |+Position 7 |- ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97). |- | 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82). |- | 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97). |- | 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98). |- | 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87). |- | 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96). |- | 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89). |- | 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96). |- | 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97). |- | 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92). |- | 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99). |- | 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93). |- | 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87). |- | 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99). |} ===Transmission & Steering Location (Position 8):=== * 4 = Automatic / LHD * 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual) ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Codes (Position 11)=== * C - Browns Lane plant, Coventry, West Midlands, England, UK ===Positions 12–17, Serial Number=== ** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27) ** 300001 and after - XJ-series sedan Series III ** 500001 and after - XJ-series sedan (XJ40/XJ81) ** 720001 and after - XJ-series sedan (X300/X305/X306/X330) ** 810001 and after - XJ-series sedan (X308) ** 001001 and after - XK8 (X100) 1yqezdixklzma7s9e7s4vfh8e6v3308 4675486 4675485 2026-10-11T02:46:56Z JustTheFacts33 3434282 /* Model Line (Position 6-7) */ 4675486 wikitext text/x-wiki {{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}} This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems. ==General Template for Jaguar's VIN format (2000 -)== ===Jaguar WMIs (2000-) (Position 1-3)=== * SAJ - Jaguar passenger car (UK) * SAD - Jaguar SUV (UK & Europe) * L2C - Chery Jaguar Land Rover (China) ===Regional Spec/Restraint System (Position 4):=== * J = Manual seat belts, Dual front airbags (US: XK8 '00) * B = Manual seat belts, Dual front airbags (Canada: XK8 '00) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04) * G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04,<br> S-Type '03-'04, XJ8/XJR Early '04) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (US: XK/XKR '07-'15, F-Type '14-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (Canada: XK/XKR '07-'15, F-Type '14-) ===Transmission & Steering Location (Position 5 - '00-'12):=== * A = Automatic / LHD * B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04) ===Transmission & Drive Wheels (Position 5 - '13-):=== * A = Automatic / Rwd (XF '13-'15, XJ '13-'19, XK '13-'15, F-Type '14-'17) * B = Manual / Rwd (F-Type '16-'17) * J = Automatic / Awd (XF Awd '13-'15, XJ Awd '13-'19, F-Type Awd '16-'17) ===Model Line (Position 6-7)=== {| class="wikitable" |+Position 6-7 !VIN code !Description |- |51 |[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08) |- |52 |[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04) |- |53 |[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03) |- |54 |[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08) |- |01 |[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08) |- |05 |[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09) |- |06 |[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09) |- |07 |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09) |- |0E |[[w:Jaguar XF (X250)|Jaguar XF]] ('13-'14) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 2.0T Premium]] [8th pos. of VIN is S] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Rwd]] [8th pos. of VIN is 7] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Awd]] [8th pos. of VIN is F] ('15) |- |0G |[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Rwd]] [8th pos. of VIN is 7] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Awd]] [8th pos. of VIN is F] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E: '10-'13 or P: '13-'15] |- |0J |[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'15) |- |0K |[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-'15) |- |8J |[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-'15) |- |12 |[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03) |- |14 |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03) |- |15 |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03) |- |23 |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01) |- |24 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03) |- |71 |[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09) |- |73 |[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09) |- |74 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04) |- |79 |[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09) |- |86 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06) |- |94 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'15) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ R-Sport]] [8th pos. of VIN is 7 or D] ('16-) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E] ('16-) |- |1E |[[w:Jaguar XJ (X351)|Jaguar XJR]] ('14-'16) |- |1G |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13-'15] |- |1J |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12) |- |2E |[[w:Jaguar XJ (X351)|Jaguar XJR LWB]] ('14-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13] |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is Z: '14-'15) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is 7: '16-) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13, '16- or T: '13-'15] |- |2J |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13) |- |2K |[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13) |- |3F |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13) |- |3G |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13) |- |3H |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'15) |- |3K |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'15) |- |41 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06) |- |42 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06) |- |43 |[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09) |- |44 |[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09) |- |45 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09) |- |46 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09) |- |4D |[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-'14) |- |4E |[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-'14) |- |4D |[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'15) |- |4E |[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition coupe ('15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition convertible ('15) |- |4H |[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'15), XKR-S GT coupe ('14) |- |4J |[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'15) |- |6A |[[w:Jaguar F-Type)|Jaguar F-Type coupe]] ('15-'16) |- |6B |[[w:Jaguar F-Type)|Jaguar F-Type S coupe]] ('15-'16) |- |6D |[[w:Jaguar F-Type)|Jaguar F-Type R coupe]] ('15-'16) |- |6E |[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-'16) |- |6F |[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-'16) |- |6G |[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-'15) |- |6H |[[w:Jaguar F-Type)|Jaguar F-Type R convertible]] ('16-) |- |7A |[[w:Jaguar F-Type#Project 7)|Jaguar F-Type Project 7 convertible]] ('16) |} ===Engine/Emissions Control System (Position 8)=== {| class="wikitable" |+Position 8 ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08). |- | A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10). |- | A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14), F-Type R coupe ('15). |- | B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02). |- | B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06). |- | B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09). |- | B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14). |- | C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05). |- | C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02). |- | C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06). |- | C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09). |- | C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15). |- | C || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('14-'15). |- | D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01). |- | D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-'15). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ R-Sport Awd, XJL Portfolio Awd ('16-). |- | E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13, '16). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-'14). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('15). |- | H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-'15). |- | K || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XJR/XJR LWB ('14-'16). |- | L || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 495 PS/488 hp. Jaguar F-Type V8 S convertible ('14-'15). |- | N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02). |- | P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02). |- | P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-'15). |- | S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based).<br> Jaguar XF 2.0T ('13-'14), XF 2.0T Premium ('15). |- | T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05). |- | T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13-'15). |- | T || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar F-Type ('15-). |- | U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05). |- | U || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('15-). |- | V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05). |- | X || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('14). |- | Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-'15). |- | Z || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Rwd, XJL Portfolio Rwd ('14-'15). |- | 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13), XJ Rwd ('13), F-Type ('14-'15). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('15), XJ R-Sport Rwd ('16), XJL Portfolio Rwd ('16). |} ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Code/Model Line/Engine (Position 11) 2000-2019=== * X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05) * W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08) * F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08) * G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02) * H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08) * 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08) * H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10) * 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09) * L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12) * M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15) * P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15) * 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15) * L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03) * M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03) * S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06) * T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06) * S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09) * T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13) * M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19) * 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19) * N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02) * P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02) * 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06) * 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06) * 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09) * 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15) * M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14) * 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17) * M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17) ===Plant Codes (Position 11) 2016-2026=== * A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26) * C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24) * S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19) * 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24) ===Model (Position 12)=== * C - X-Type ('02-'03) * D - X-Type ('03-'04) * E - X-Type ('04-'06) * J - X-Type ('06-'08) * L - S-Type ('00-'01) * M - S-Type ('01-'04) * N - S-Type ('04-'08) * R - XF ('09-'11) * S - XF ('11-'13) * U - XF ('13-'15) * Y - XF ('16-) * F - XJ ('00-'03) * G - XJ ('04-'06) [Browns Lane plant] * H - XJ ('06-'09) [Castle Bromwich plant] * V - XJ ('10-'16) * W - XJ ('16-'19) * A - XK ('00-'06) * B - XK ('07-'15) * K - F-Type ('14-'24) '''Positions 13–17, Serial Number''' ==General Template for Jaguar's VIN format (1981 - 1999)== ===Jaguar WMIs (1981-1999) (Position 1-3)=== * SAJ - Jaguar passenger car ===Model Line (Position 4)=== {| class="wikitable" |+Position 4 !VIN code !Description |- |A |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87) |- |B |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88) |- |D |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94) |- |F |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92) |- |K |[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94) |- |M |[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92) |- |M |[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96) |- |P |[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99) |- |K |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99) |- |P |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99) |- |N |[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96) |- |T |[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91) |- |S |[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93) |- |G |[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99) |} ===Class (Regional Spec)/Restraint System (Position 5):=== * V = N. American-spec (Manual seat belts) * L = Canadian-spec (Manual seat belts) * Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts) * A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88) * Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92) * W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94) * X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99) * X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99) * M = Manual seat belts, Driver-side airbag (Canada) * N = Manual seat belts, Dual front airbags (Canada) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99) ===Body Style (Position 6):=== * 1 = 4-door sedan (XJ-series sedan '81-'99) * 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99) * 3 = 2-door Cabriolet (XJ-SC '86-'88) * 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93) * 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99) * 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion] ===Engine Type (Position 7):=== {| class="wikitable" |+Position 7 |- ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97). |- | 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82). |- | 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97). |- | 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98). |- | 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87). |- | 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96). |- | 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89). |- | 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96). |- | 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97). |- | 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92). |- | 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99). |- | 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93). |- | 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87). |- | 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99). |} ===Transmission & Steering Location (Position 8):=== * 4 = Automatic / LHD * 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual) ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Codes (Position 11)=== * C - Browns Lane plant, Coventry, West Midlands, England, UK ===Positions 12–17, Serial Number=== ** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27) ** 300001 and after - XJ-series sedan Series III ** 500001 and after - XJ-series sedan (XJ40/XJ81) ** 720001 and after - XJ-series sedan (X300/X305/X306/X330) ** 810001 and after - XJ-series sedan (X308) ** 001001 and after - XK8 (X100) 14texnxamsxhdp7cahsrhwu64glckh2 4675489 4675486 2026-10-11T03:22:21Z JustTheFacts33 3434282 /* Engine/Emissions Control System (Position 8) */ 4675489 wikitext text/x-wiki {{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}} This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems. ==General Template for Jaguar's VIN format (2000 -)== ===Jaguar WMIs (2000-) (Position 1-3)=== * SAJ - Jaguar passenger car (UK) * SAD - Jaguar SUV (UK & Europe) * L2C - Chery Jaguar Land Rover (China) ===Regional Spec/Restraint System (Position 4):=== * J = Manual seat belts, Dual front airbags (US: XK8 '00) * B = Manual seat belts, Dual front airbags (Canada: XK8 '00) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07) * E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04) * G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04,<br> S-Type '03-'04, XJ8/XJR Early '04) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-'15, XJ8/XJR '04-'09, XJ '10-) * W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (US: XK/XKR '07-'15, F-Type '14-) * X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags <br> (Canada: XK/XKR '07-'15, F-Type '14-) ===Transmission & Steering Location (Position 5 - '00-'12):=== * A = Automatic / LHD * B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04) ===Transmission & Drive Wheels (Position 5 - '13-):=== * A = Automatic / Rwd (XF '13-'15, XJ '13-'19, XK '13-'15, F-Type '14-'17) * B = Manual / Rwd (F-Type '16-'17) * J = Automatic / Awd (XF Awd '13-'15, XJ Awd '13-'19, F-Type Awd '16-'17) ===Model Line (Position 6-7)=== {| class="wikitable" |+Position 6-7 !VIN code !Description |- |51 |[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08) |- |52 |[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04) |- |53 |[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03) |- |54 |[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08) |- |01 |[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03) |- |03 |[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08) |- |05 |[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09) |- |06 |[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09) |- |07 |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09) |- |0E |[[w:Jaguar XF (X250)|Jaguar XF]] ('13-'14) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 2.0T Premium]] [8th pos. of VIN is S] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Rwd]] [8th pos. of VIN is 7] ('15) |- |0F |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Sport Awd]] [8th pos. of VIN is F] ('15) |- |0G |[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Rwd]] [8th pos. of VIN is 7] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF 3.0 Portfolio Awd]] [8th pos. of VIN is F] ('15) |- |0H |[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E: '10-'13 or P: '13-'15] |- |0J |[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'15) |- |0K |[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-'15) |- |8J |[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-'15) |- |12 |[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03) |- |14 |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03) |- |15 |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03) |- |23 |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01) |- |24 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01) |- |25 |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03) |- |71 |[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09) |- |73 |[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09) |- |74 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04) |- |79 |[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09) |- |82 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09) |- |86 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06) |- |94 |[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'15) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ R-Sport]] [8th pos. of VIN is 7 or D] ('16-) |- |1C |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E] ('16-) |- |1E |[[w:Jaguar XJ (X351)|Jaguar XJR]] ('14-'16) |- |1G |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13-'15] |- |1J |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12) |- |2E |[[w:Jaguar XJ (X351)|Jaguar XJR LWB]] ('14-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13] |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is Z: '14-'15) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is 7: '16-) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-'16) |- |2G |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13, '16- or T: '13-'15] |- |2J |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13) |- |2K |[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13) |- |3F |[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13) |- |3G |[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13) |- |3H |[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'15) |- |3K |[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'15) |- |41 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06) |- |42 |[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06) |- |43 |[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09) |- |44 |[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09) |- |45 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09) |- |46 |[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09) |- |4D |[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-'14) |- |4E |[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-'14) |- |4D |[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'15) |- |4E |[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11) |- |4F |[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition coupe ('15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'15) |- |4G |[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-'15), XK Final Fifty Edition convertible ('15) |- |4H |[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'15), XKR-S GT coupe ('14) |- |4J |[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'15) |- |6A |[[w:Jaguar F-Type)|Jaguar F-Type coupe]] ('15-'16) |- |6B |[[w:Jaguar F-Type)|Jaguar F-Type S coupe]] ('15-'16) |- |6D |[[w:Jaguar F-Type)|Jaguar F-Type R coupe]] ('15-'16) |- |6E |[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-'16) |- |6F |[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-'16) |- |6G |[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-'15) |- |6H |[[w:Jaguar F-Type)|Jaguar F-Type R convertible]] ('16-) |- |7A |[[w:Jaguar F-Type#Project 7)|Jaguar F-Type Project 7 convertible]] ('16) |} ===Engine/Emissions Control System (Position 8)=== {| class="wikitable" |+Position 8 ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08). |- | A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10). |- | A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14), F-Type R coupe ('15). |- | B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02). |- | B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06). |- | B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09). |- | B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14). |- | C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05). |- | C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02). |- | C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06). |- | C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09). |- | C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15). |- | C || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('14-'15), F-Type S w/man. trans. ('16). |- | D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01). |- | D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-'15). |- | D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ R-Sport Awd, XJL Portfolio Awd ('16-). |- | E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13, '16). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-'14). |- | F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('15). |- | H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-'15). |- | K || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XJR/XJR LWB ('14-'16). |- | L || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 495 PS/488 hp. Jaguar F-Type V8 S convertible ('14-'15). |- | L || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar F-Type R ('16). |- | N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02). |- | P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02). |- | P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-'15). |- | S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based).<br> Jaguar XF 2.0T ('13-'14), XF 2.0T Premium ('15). |- | T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05). |- | T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13-'15). |- | T || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar F-Type w/auto. trans. ('15-'16). |- | U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05). |- | U || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('15), F-Type S Rwd w/auto. trans. ('16). |- | V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05). |- | V || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S Awd w/auto. trans. ('16). |- | X || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('14). |- | Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-'15). |- | Z || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 24 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Rwd, XJL Portfolio Rwd ('14-'15). |- | 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13). |- | 6 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar F-Type w/man. trans. ('16-). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13), XJ Rwd ('13), F-Type ('14-'15). |- | 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. SULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('15), XJ R-Sport Rwd ('16), XJL Portfolio Rwd ('16). |- | 8 || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 575 PS/567 hp. Jaguar F-Type Project 7 ('16). |} ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Code/Model Line/Engine (Position 11) 2000-2019=== * X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05) * W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08) * F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08) * G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02) * H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08) * 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08) * H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10) * 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09) * L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12) * M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15) * P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15) * 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15) * L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03) * M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03) * S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06) * T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06) * S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09) * T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13) * M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19) * 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19) * N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02) * P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02) * 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06) * 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06) * 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09) * 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09) * L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15) * M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14) * 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17) * M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17) ===Plant Codes (Position 11) 2016-2026=== * A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26) * C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24) * S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19) * 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24) ===Model (Position 12)=== * C - X-Type ('02-'03) * D - X-Type ('03-'04) * E - X-Type ('04-'06) * J - X-Type ('06-'08) * L - S-Type ('00-'01) * M - S-Type ('01-'04) * N - S-Type ('04-'08) * R - XF ('09-'11) * S - XF ('11-'13) * U - XF ('13-'15) * Y - XF ('16-) * F - XJ ('00-'03) * G - XJ ('04-'06) [Browns Lane plant] * H - XJ ('06-'09) [Castle Bromwich plant] * V - XJ ('10-'16) * W - XJ ('16-'19) * A - XK ('00-'06) * B - XK ('07-'15) * K - F-Type ('14-'24) '''Positions 13–17, Serial Number''' ==General Template for Jaguar's VIN format (1981 - 1999)== ===Jaguar WMIs (1981-1999) (Position 1-3)=== * SAJ - Jaguar passenger car ===Model Line (Position 4)=== {| class="wikitable" |+Position 4 !VIN code !Description |- |A |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87) |- |B |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88) |- |D |[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94) |- |F |[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92) |- |H |[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92) |- |K |[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94) |- |M |[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92) |- |M |[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97) |- |H |[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95) |- |K |[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95) |- |M |[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96) |- |P |[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99) |- |H |[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99) |- |K |[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99) |- |P |[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99) |- |N |[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96) |- |T |[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91) |- |S |[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93) |- |G |[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99) |} ===Class (Regional Spec)/Restraint System (Position 5):=== * V = N. American-spec (Manual seat belts) * L = Canadian-spec (Manual seat belts) * Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts) * A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88) * Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92) * W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94) * X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99) * X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99) * D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99) * M = Manual seat belts, Driver-side airbag (Canada) * N = Manual seat belts, Dual front airbags (Canada) * F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99) ===Body Style (Position 6):=== * 1 = 4-door sedan (XJ-series sedan '81-'99) * 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99) * 3 = 2-door Cabriolet (XJ-SC '86-'88) * 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93) * 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99) * 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion] ===Engine Type (Position 7):=== {| class="wikitable" |+Position 7 |- ! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications |- | 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97). |- | 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82). |- | 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97). |- | 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98). |- | 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87). |- | 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96). |- | 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89). |- | 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94). |- | 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96). |- | 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97). |- | 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92). |- | 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99). |- | 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93). |- | 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87). |- | 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99). |} ===Transmission & Steering Location (Position 8):=== * 4 = Automatic / LHD * 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual) ===Check Digit/Gearbox (Position 9)=== * USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] ===Model Year Code (Position 10)=== ''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]'' ===Plant Codes (Position 11)=== * C - Browns Lane plant, Coventry, West Midlands, England, UK ===Positions 12–17, Serial Number=== ** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27) ** 300001 and after - XJ-series sedan Series III ** 500001 and after - XJ-series sedan (XJ40/XJ81) ** 720001 and after - XJ-series sedan (X300/X305/X306/X330) ** 810001 and after - XJ-series sedan (X308) ** 001001 and after - XK8 (X100) nprurjzba7zx3y4nz13q2oijsr0lnf6 Infrastructure Policy Casebook/Colorado River 0 485845 4675457 4675409 2026-10-10T17:04:20Z Emrodri1 3626789 4675457 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] [[File:Colorado River basin map.png|thumb|Map of the Colorado River Basin]] == Background == === History === Information about the historic past levels of Lake Mead and Lake Powell... unfavorable conditions... low snowpack == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective and successful compared to the projections created in the 2000s, improved scientific research and the increased severity of the drought indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> In addition, this analysis identified opportunities for future guidelines, such as increased flexibility, improved participation in complementary conservation efforts, and implementation of stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, if a proposed action has a “reasonably foreseeable significant effect on the quality of the human environment,” agencies must prepare an Environmental Impact Statement, which integrates both analysis of alternatives and integrates public comment.<ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> Therefore, with the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the scientific analysis and stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref>{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} Alternatives === Final Documents === ==== 2027- 2028 Operating Guidelines ==== Operating Guidelines<ref>{{Cite web |last=United States Department of the Interior, Office of the Secretary |date=August 2026 |title=Operating Guidelines: Colorado River Guidelines for Coordinated Operations of Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/2027-2028OperatingGuidelines_Final.pdf}}</ref> ==== Associated Biological Opinions ==== August 13, 2026... === Funding === == Impacts == {{BookCat}} sjat790egilv6d4vpm7tcrlq0q725zb 4675459 4675457 2026-10-10T19:42:08Z Emrodri1 3626789 4675459 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] [[File:Colorado River basin map.png|thumb|Map of the Colorado River Basin]] == Background == === History === Information about the historic past levels of Lake Mead and Lake Powell... unfavorable conditions... low snowpack == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective and successful compared to the projections created in the 2000s, improved scientific research and the increased severity of the drought indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> In addition, this analysis identified opportunities for future guidelines, such as increased flexibility, improved participation in complementary conservation efforts, and implementation of stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, if a proposed action has a “reasonably foreseeable significant effect on the quality of the human environment,” agencies must prepare an Environmental Impact Statement, which integrates both analysis of alternatives and integrates public comment.<ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> Therefore, with the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the scientific analysis and stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref>{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures. * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined. * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions. * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage. * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide. * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus. === 2027-2026 Colorado River Operating Guidelines === ==== Governance Structure ==== ==== 2027- 2028 Operating Guidelines ==== Operating Guidelines<ref>{{Cite web |last=United States Department of the Interior, Office of the Secretary |date=August 2026 |title=Operating Guidelines: Colorado River Guidelines for Coordinated Operations of Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/2027-2028OperatingGuidelines_Final.pdf}}</ref> ==== Associated Biological Opinions ==== August 13, 2026... === Funding === == Impacts == {{BookCat}} gpvu1vwk6jt37s33rffkoabo5und9s3 4675460 4675459 2026-10-10T19:50:28Z Emrodri1 3626789 4675460 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] [[File:Colorado River basin map.png|thumb|Map of the Colorado River Basin]] == Background == === History === Information about the historic past levels of Lake Mead and Lake Powell... unfavorable conditions... low snowpack == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective and successful compared to the projections created in the 2000s, improved scientific research and the increased severity of the drought indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> In addition, this analysis identified opportunities for future guidelines, such as increased flexibility, improved participation in complementary conservation efforts, and implementation of stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, if a proposed action has a “reasonably foreseeable significant effect on the quality of the human environment,” agencies must prepare an Environmental Impact Statement, which integrates both analysis of alternatives and integrates public comment.<ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> Therefore, with the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the scientific analysis and stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2026 Colorado River Operating Guidelines === ==== Governance Structure ==== ==== 2027- 2028 Operating Guidelines ==== Operating Guidelines<ref>{{Cite web |last=United States Department of the Interior, Office of the Secretary |date=August 2026 |title=Operating Guidelines: Colorado River Guidelines for Coordinated Operations of Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/2027-2028OperatingGuidelines_Final.pdf}}</ref> === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} m4ufwkxdfpwivs2yn8umkmthozgsukz 4675463 4675460 2026-10-10T20:20:55Z Xinya Zhao 3627048 4675463 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] [[File:Colorado River basin map.png|thumb|Map of the Colorado River Basin]] == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea. == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective and successful compared to the projections created in the 2000s, improved scientific research and the increased severity of the drought indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> In addition, this analysis identified opportunities for future guidelines, such as increased flexibility, improved participation in complementary conservation efforts, and implementation of stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, if a proposed action has a “reasonably foreseeable significant effect on the quality of the human environment,” agencies must prepare an Environmental Impact Statement, which integrates both analysis of alternatives and integrates public comment.<ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> Therefore, with the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the scientific analysis and stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2026 Colorado River Operating Guidelines === ==== Governance Structure ==== ==== 2027- 2028 Operating Guidelines ==== Operating Guidelines<ref>{{Cite web |last=United States Department of the Interior, Office of the Secretary |date=August 2026 |title=Operating Guidelines: Colorado River Guidelines for Coordinated Operations of Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/2027-2028OperatingGuidelines_Final.pdf}}</ref> === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} i2e76ed7eywu8823jp04w0h5fk1akh8 4675464 4675463 2026-10-10T20:25:56Z Xinya Zhao 3627048 4675464 wikitext text/x-wiki == Introduction == [[File:Colorado River basin map.png|thumb|Map of the Colorado River Basin]][block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea. The system is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective and successful compared to the projections created in the 2000s, improved scientific research and the increased severity of the drought indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> In addition, this analysis identified opportunities for future guidelines, such as increased flexibility, improved participation in complementary conservation efforts, and implementation of stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, if a proposed action has a “reasonably foreseeable significant effect on the quality of the human environment,” agencies must prepare an Environmental Impact Statement, which integrates both analysis of alternatives and integrates public comment.<ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> Therefore, with the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the scientific analysis and stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2026 Colorado River Operating Guidelines === ==== Governance Structure ==== ==== 2027- 2028 Operating Guidelines ==== Operating Guidelines<ref>{{Cite web |last=United States Department of the Interior, Office of the Secretary |date=August 2026 |title=Operating Guidelines: Colorado River Guidelines for Coordinated Operations of Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/2027-2028OperatingGuidelines_Final.pdf}}</ref> === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} dwffb86a0fr05saxxv64zd69yhfe5co 4675465 4675464 2026-10-10T20:27:15Z Xinya Zhao 3627048 4675465 wikitext text/x-wiki == Introduction == [[File:Colorado River basin map.png|thumb|Map of the Colorado River Basin]][block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea. The system is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. === Sources of Flow and the Supply Gap === Where the river's water is produced and where it is used are highly uneven. High-elevation snowmelt areas in the Upper Basin, about 15 percent of the basin's area, supply about 85 percent of annual flow, while Lower Basin precipitation contributes only about 8 percent. As a result, about 90 percent of the water used in the Lower Basin is Upper Basin flow released into Lake Mead. This asymmetry lies at the root of the dispute over who should bear shortages. == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective and successful compared to the projections created in the 2000s, improved scientific research and the increased severity of the drought indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> In addition, this analysis identified opportunities for future guidelines, such as increased flexibility, improved participation in complementary conservation efforts, and implementation of stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, if a proposed action has a “reasonably foreseeable significant effect on the quality of the human environment,” agencies must prepare an Environmental Impact Statement, which integrates both analysis of alternatives and integrates public comment.<ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> Therefore, with the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the scientific analysis and stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2026 Colorado River Operating Guidelines === ==== Governance Structure ==== ==== 2027- 2028 Operating Guidelines ==== Operating Guidelines<ref>{{Cite web |last=United States Department of the Interior, Office of the Secretary |date=August 2026 |title=Operating Guidelines: Colorado River Guidelines for Coordinated Operations of Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/2027-2028OperatingGuidelines_Final.pdf}}</ref> === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} kfr0lhvm5bn8eruyz954nd1q9vq561k 4675483 4675465 2026-10-11T02:31:25Z Emrodri1 3626789 4675483 wikitext text/x-wiki == Introduction == [[File:Colorado River basin map.png|thumb|Map of the Colorado River Basin]][block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea. The system is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. === Sources of Flow and the Supply Gap === Where the river's water is produced and where it is used are highly uneven. High-elevation snowmelt areas in the Upper Basin, about 15 percent of the basin's area, supply about 85 percent of annual flow, while Lower Basin precipitation contributes only about 8 percent. As a result, about 90 percent of the water used in the Lower Basin is Upper Basin flow released into Lake Mead. This asymmetry lies at the root of the dispute over who should bear shortages. == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective compared to the projections created in the 2000s, improved scientific research and intensified drought conditions indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> This analysis concluded that the post-2026 Operating Framework should allow for more flexibility, improce participation in complementary conservation efforts, and implement stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, the creation of a Colorado River governance structure has “reasonably foreseeable significant effect on the quality of the human environment” and would need the development of an Environmental Impact Statement (EIS) that outlines alternatives and addresses public comments. <ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> With the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the thorough stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2036 Colorado River Decision Framework === ==== Governance Structure ==== Rather than a single set of Operating Guidelines to govern the 10 year period, the preferred alternative outlined in the ROD and formally implemented is a 10 year decision framework. The framework promotes flexibility and adaptability to changing natural conditions by dividing the 10 year period into intervals that last 2 years. During each interval, new Operating Guidelines for the operations of Lake Mead and Lake Powell are issued remain in effect until the start of the next operating interval. While this is an open-ended framework, it still maintains that each interval's Operating Guidelines incorporate core principles and minimum operational requirements. For example, the operational principles state that Operating Guidelines must: * Consider changing hydrologic conditions and remain responsive to fluctuating water supply * Ensure Operations of Lake Powell and Lake Mead do not compromise critical infrastructure. If Lake Powell falls below 3,500 feet in elevation or Lake Mead falls below 1,000 feet in elevation, the Bureau of Reclamation will intervene to protect critical infrastructure facilities. * Include Long Range Operating Criteria (LROC) in its guidelines. LROC refers to the specific protocols and metrics to coordinate Lake Mead and Lake Powell operations. In addition, the LROC should outline how to address Extraordinary Circumstances * Reflect recommendations of consensus between parties. If a new agreement emerges among stakeholders, it takes priority over Operating Guidelines. In addition, there are key threshold ranges the operating guidelines must remain within. However, the selected ranges remain broad to accommodate new water governance strategies or future consensus agreements. The Operating Guidelines also establish a timeline requirements for the development of the following interval's Operational Guidelines, ensuring each guideline is completed with timely reviews and consultations.<ref name=":3" /> ==== 2027- 2028 Operating Guidelines ==== The first Operating Guidelines under the Decision Framework will be effective for the 2027-2028 interval. The goal of the current operating guidelines is to maintain water access in the Lower Basin and protect critical infrastructure through increasing Lake Powell elevation in the Upper Basin. {| class="wikitable" |+Terms of the 2028 Operating Guidelines !Operations !Mechanisms |- |Lake Powell (Upper Basin) | * Lake Powell's elevation should be protected and not drop below 3,510 feet. * The amount of water Lake Powell releases water will be determined by the elevation level. When Lake Powell's elevation is above 3,565 feet (Upper Elevation Range), Lake Powell can release 8.23 million acre feet (maf) of water in an initial release. Subsequent monthly releases will evaluated appropriately, between 8.0 and 7.5 maf. If it is below 3,540 feet (Lower Elevation Range), Lake Powell should 7.0 maf in its initial releases. Following monthly releases should be adjusted according to elevation, but no less than 6.0 maf. |- |Colorado River Storage Project (Upper Basin) | * Colorado River Storage Project (CRSP) Upper Basin Units are water reservoirs in the Upper Basin that should maintain drought operations throughout the interval. * Releases should be less than 7.0 maf, unless otherwise negotiated among the Department of Interiror, Upper Basin States, and Lower Basin States. |- |Lake Mead (Lower Basin) | * Lake Mead should remain above 1,010 feet. * Under Shortage conditions, Lake Mead will reduce its release of water for Lower Basin state consumption by 1.25 maf. Each year, Lower Basin states will receive 6.25 maf for consumptive use and apportioned according to current agreements among Lower Basin states. * If Lake Mead is above 1,125 feet, the Secretary of the Interior may increase water apportionments. |- |Intentionally Created Surplus (ICS) | |- |Federally Managed Resource Pool | |- |Mexico | |} === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} r8hde8j08mgzud9cz35p1gm0qjvcuxn 4675492 4675483 2026-10-11T05:12:40Z Xinya Zhao 3627048 4675492 wikitext text/x-wiki == Introduction == [[File:Colorado River basin map.png|thumb|Map of the Colorado River Basin]][block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea.<ref>{{Cite web |last=Reclamation |first=Bureau of |title=Colorado River Basin {{!}} Bureau of Reclamation |url=https://www.usbr.gov/ColoradoRiverBasin/ |access-date=2026-10-11 |website=www.usbr.gov |language=en}}</ref> The basin is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. {| class="wikitable" |+<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 1. Purpose and Need, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_1_Ch1_PurposeNeed_508.pdf}}</ref> !Item !Value !Note |- |Basin Area |~250,000 square miles |Seven U.S. states + Two Mexican states |- |River Length |~1,400 miles | |- |People served |~40 million | |} === Sources of Flow and the Supply Gap === Where the river's water is produced and where it is used are highly uneven. High-elevation snowmelt areas in the Upper Basin, about 15 percent of the basin's area, supply about 92 percent of annual flow<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Technical Appendix 3. Hydrologic Resources, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-III/P26-FEIS_TA_03_Hydro_508.pdf}}</ref>, while Lower Basin precipitation contributes only about 8 percent. As a result, about 90 percent of the water used in the Lower Basin is Upper Basin flow released into Lake Mead. This asymmetry lies at the root of the dispute over who should bear shortages. == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective compared to the projections created in the 2000s, improved scientific research and intensified drought conditions indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> This analysis concluded that the post-2026 Operating Framework should allow for more flexibility, improce participation in complementary conservation efforts, and implement stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, the creation of a Colorado River governance structure has “reasonably foreseeable significant effect on the quality of the human environment” and would need the development of an Environmental Impact Statement (EIS) that outlines alternatives and addresses public comments. <ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> With the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the thorough stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2036 Colorado River Decision Framework === ==== Governance Structure ==== Rather than a single set of Operating Guidelines to govern the 10 year period, the preferred alternative outlined in the ROD and formally implemented is a 10 year decision framework. The framework promotes flexibility and adaptability to changing natural conditions by dividing the 10 year period into intervals that last 2 years. During each interval, new Operating Guidelines for the operations of Lake Mead and Lake Powell are issued remain in effect until the start of the next operating interval. While this is an open-ended framework, it still maintains that each interval's Operating Guidelines incorporate core principles and minimum operational requirements. For example, the operational principles state that Operating Guidelines must: * Consider changing hydrologic conditions and remain responsive to fluctuating water supply * Ensure Operations of Lake Powell and Lake Mead do not compromise critical infrastructure. If Lake Powell falls below 3,500 feet in elevation or Lake Mead falls below 1,000 feet in elevation, the Bureau of Reclamation will intervene to protect critical infrastructure facilities. * Include Long Range Operating Criteria (LROC) in its guidelines. LROC refers to the specific protocols and metrics to coordinate Lake Mead and Lake Powell operations. In addition, the LROC should outline how to address Extraordinary Circumstances * Reflect recommendations of consensus between parties. If a new agreement emerges among stakeholders, it takes priority over Operating Guidelines. In addition, there are key threshold ranges the operating guidelines must remain within. However, the selected ranges remain broad to accommodate new water governance strategies or future consensus agreements. The Operating Guidelines also establish a timeline requirements for the development of the following interval's Operational Guidelines, ensuring each guideline is completed with timely reviews and consultations.<ref name=":3" /> ==== 2027- 2028 Operating Guidelines ==== The first Operating Guidelines under the Decision Framework will be effective for the 2027-2028 interval. The goal of the current operating guidelines is to maintain water access in the Lower Basin and protect critical infrastructure through increasing Lake Powell elevation in the Upper Basin. {| class="wikitable" |+Terms of the 2028 Operating Guidelines !Operations !Mechanisms |- |Lake Powell (Upper Basin) | * Lake Powell's elevation should be protected and not drop below 3,510 feet. * The amount of water Lake Powell releases water will be determined by the elevation level. When Lake Powell's elevation is above 3,565 feet (Upper Elevation Range), Lake Powell can release 8.23 million acre feet (maf) of water in an initial release. Subsequent monthly releases will evaluated appropriately, between 8.0 and 7.5 maf. If it is below 3,540 feet (Lower Elevation Range), Lake Powell should 7.0 maf in its initial releases. Following monthly releases should be adjusted according to elevation, but no less than 6.0 maf. |- |Colorado River Storage Project (Upper Basin) | * Colorado River Storage Project (CRSP) Upper Basin Units are water reservoirs in the Upper Basin that should maintain drought operations throughout the interval. * Releases should be less than 7.0 maf, unless otherwise negotiated among the Department of Interiror, Upper Basin States, and Lower Basin States. |- |Lake Mead (Lower Basin) | * Lake Mead should remain above 1,010 feet. * Under Shortage conditions, Lake Mead will reduce its release of water for Lower Basin state consumption by 1.25 maf. Each year, Lower Basin states will receive 6.25 maf for consumptive use and apportioned according to current agreements among Lower Basin states. * If Lake Mead is above 1,125 feet, the Secretary of the Interior may increase water apportionments. |- |Intentionally Created Surplus (ICS) | |- |Federally Managed Resource Pool | |- |Mexico | |} === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} 59162sdw1b87cnbt4t7l73dlcwbynwx 4675493 4675492 2026-10-11T05:34:27Z Xinya Zhao 3627048 4675493 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea.<ref>{{Cite web |last=Reclamation |first=Bureau of |title=Colorado River Basin {{!}} Bureau of Reclamation |url=https://www.usbr.gov/ColoradoRiverBasin/ |access-date=2026-10-11 |website=www.usbr.gov |language=en}}</ref> The basin is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. {| class="wikitable" |+Basic Numbers of Colorado River<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 1. Purpose and Need, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_1_Ch1_PurposeNeed_508.pdf}}</ref> !Item !Value |- |Basin Area |~250,000 square miles |- |River Length |~1,400 miles |- |People served |~40 million |} [[File:Colorado_River_basin_map.png|center|707x707px]] === Sources of Flow and the Supply Gap === Where the river's water is produced and where it is used are highly uneven. High-elevation snowmelt areas in the Upper Basin, about 15 percent of the basin's area, supply about 92 percent of annual flow<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Technical Appendix 3. Hydrologic Resources, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-III/P26-FEIS_TA_03_Hydro_508.pdf}}</ref>, while Lower Basin precipitation contributes only about 8 percent. As a result, about 90 percent of the water used in the Lower Basin is Upper Basin flow released into Lake Mead. This asymmetry lies at the root of the dispute over who should bear shortages. [[File:Colorado river flow and allocation.png|left|1000x1000px|'''Colorado river flow and allocation''']] == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective compared to the projections created in the 2000s, improved scientific research and intensified drought conditions indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> This analysis concluded that the post-2026 Operating Framework should allow for more flexibility, improce participation in complementary conservation efforts, and implement stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, the creation of a Colorado River governance structure has “reasonably foreseeable significant effect on the quality of the human environment” and would need the development of an Environmental Impact Statement (EIS) that outlines alternatives and addresses public comments. <ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> With the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the thorough stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2036 Colorado River Decision Framework === ==== Governance Structure ==== Rather than a single set of Operating Guidelines to govern the 10 year period, the preferred alternative outlined in the ROD and formally implemented is a 10 year decision framework. The framework promotes flexibility and adaptability to changing natural conditions by dividing the 10 year period into intervals that last 2 years. During each interval, new Operating Guidelines for the operations of Lake Mead and Lake Powell are issued remain in effect until the start of the next operating interval. While this is an open-ended framework, it still maintains that each interval's Operating Guidelines incorporate core principles and minimum operational requirements. For example, the operational principles state that Operating Guidelines must: * Consider changing hydrologic conditions and remain responsive to fluctuating water supply * Ensure Operations of Lake Powell and Lake Mead do not compromise critical infrastructure. If Lake Powell falls below 3,500 feet in elevation or Lake Mead falls below 1,000 feet in elevation, the Bureau of Reclamation will intervene to protect critical infrastructure facilities. * Include Long Range Operating Criteria (LROC) in its guidelines. LROC refers to the specific protocols and metrics to coordinate Lake Mead and Lake Powell operations. In addition, the LROC should outline how to address Extraordinary Circumstances * Reflect recommendations of consensus between parties. If a new agreement emerges among stakeholders, it takes priority over Operating Guidelines. In addition, there are key threshold ranges the operating guidelines must remain within. However, the selected ranges remain broad to accommodate new water governance strategies or future consensus agreements. The Operating Guidelines also establish a timeline requirements for the development of the following interval's Operational Guidelines, ensuring each guideline is completed with timely reviews and consultations.<ref name=":3" /> ==== 2027- 2028 Operating Guidelines ==== The first Operating Guidelines under the Decision Framework will be effective for the 2027-2028 interval. The goal of the current operating guidelines is to maintain water access in the Lower Basin and protect critical infrastructure through increasing Lake Powell elevation in the Upper Basin. {| class="wikitable" |+Terms of the 2028 Operating Guidelines !Operations !Mechanisms |- |Lake Powell (Upper Basin) | * Lake Powell's elevation should be protected and not drop below 3,510 feet. * The amount of water Lake Powell releases water will be determined by the elevation level. When Lake Powell's elevation is above 3,565 feet (Upper Elevation Range), Lake Powell can release 8.23 million acre feet (maf) of water in an initial release. Subsequent monthly releases will evaluated appropriately, between 8.0 and 7.5 maf. If it is below 3,540 feet (Lower Elevation Range), Lake Powell should 7.0 maf in its initial releases. Following monthly releases should be adjusted according to elevation, but no less than 6.0 maf. |- |Colorado River Storage Project (Upper Basin) | * Colorado River Storage Project (CRSP) Upper Basin Units are water reservoirs in the Upper Basin that should maintain drought operations throughout the interval. * Releases should be less than 7.0 maf, unless otherwise negotiated among the Department of Interiror, Upper Basin States, and Lower Basin States. |- |Lake Mead (Lower Basin) | * Lake Mead should remain above 1,010 feet. * Under Shortage conditions, Lake Mead will reduce its release of water for Lower Basin state consumption by 1.25 maf. Each year, Lower Basin states will receive 6.25 maf for consumptive use and apportioned according to current agreements among Lower Basin states. * If Lake Mead is above 1,125 feet, the Secretary of the Interior may increase water apportionments. |- |Intentionally Created Surplus (ICS) | |- |Federally Managed Resource Pool | |- |Mexico | |} === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} sniymx8fvcrz034gs6tfrnetv92opxf 4675494 4675493 2026-10-11T05:35:12Z Xinya Zhao 3627048 4675494 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea.<ref>{{Cite web |last=Reclamation |first=Bureau of |title=Colorado River Basin {{!}} Bureau of Reclamation |url=https://www.usbr.gov/ColoradoRiverBasin/ |access-date=2026-10-11 |website=www.usbr.gov |language=en}}</ref> The basin is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. {| class="wikitable" |+Basic Numbers of Colorado River<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 1. Purpose and Need, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_1_Ch1_PurposeNeed_508.pdf}}</ref> !Item !Value |- |Basin Area |~250,000 square miles |- |River Length |~1,400 miles |- |People served |~40 million |} [[File:Colorado_River_basin_map.png|center|707x707px]] === Sources of Flow and the Supply Gap === Where the river's water is produced and where it is used are highly uneven. High-elevation snowmelt areas in the Upper Basin, about 15 percent of the basin's area, supply about 92 percent of annual flow<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Technical Appendix 3. Hydrologic Resources, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-III/P26-FEIS_TA_03_Hydro_508.pdf}}</ref>, while Lower Basin precipitation contributes only about 8 percent. As a result, about 90 percent of the water used in the Lower Basin is Upper Basin flow released into Lake Mead. This asymmetry lies at the root of the dispute over who should bear shortages. [[File:Colorado_river_flow_and_allocation.png|alt=Colorado river flow and allocation|800x800px]] == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective compared to the projections created in the 2000s, improved scientific research and intensified drought conditions indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> This analysis concluded that the post-2026 Operating Framework should allow for more flexibility, improce participation in complementary conservation efforts, and implement stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, the creation of a Colorado River governance structure has “reasonably foreseeable significant effect on the quality of the human environment” and would need the development of an Environmental Impact Statement (EIS) that outlines alternatives and addresses public comments. <ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> With the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the thorough stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2036 Colorado River Decision Framework === ==== Governance Structure ==== Rather than a single set of Operating Guidelines to govern the 10 year period, the preferred alternative outlined in the ROD and formally implemented is a 10 year decision framework. The framework promotes flexibility and adaptability to changing natural conditions by dividing the 10 year period into intervals that last 2 years. During each interval, new Operating Guidelines for the operations of Lake Mead and Lake Powell are issued remain in effect until the start of the next operating interval. While this is an open-ended framework, it still maintains that each interval's Operating Guidelines incorporate core principles and minimum operational requirements. For example, the operational principles state that Operating Guidelines must: * Consider changing hydrologic conditions and remain responsive to fluctuating water supply * Ensure Operations of Lake Powell and Lake Mead do not compromise critical infrastructure. If Lake Powell falls below 3,500 feet in elevation or Lake Mead falls below 1,000 feet in elevation, the Bureau of Reclamation will intervene to protect critical infrastructure facilities. * Include Long Range Operating Criteria (LROC) in its guidelines. LROC refers to the specific protocols and metrics to coordinate Lake Mead and Lake Powell operations. In addition, the LROC should outline how to address Extraordinary Circumstances * Reflect recommendations of consensus between parties. If a new agreement emerges among stakeholders, it takes priority over Operating Guidelines. In addition, there are key threshold ranges the operating guidelines must remain within. However, the selected ranges remain broad to accommodate new water governance strategies or future consensus agreements. The Operating Guidelines also establish a timeline requirements for the development of the following interval's Operational Guidelines, ensuring each guideline is completed with timely reviews and consultations.<ref name=":3" /> ==== 2027- 2028 Operating Guidelines ==== The first Operating Guidelines under the Decision Framework will be effective for the 2027-2028 interval. The goal of the current operating guidelines is to maintain water access in the Lower Basin and protect critical infrastructure through increasing Lake Powell elevation in the Upper Basin. {| class="wikitable" |+Terms of the 2028 Operating Guidelines !Operations !Mechanisms |- |Lake Powell (Upper Basin) | * Lake Powell's elevation should be protected and not drop below 3,510 feet. * The amount of water Lake Powell releases water will be determined by the elevation level. When Lake Powell's elevation is above 3,565 feet (Upper Elevation Range), Lake Powell can release 8.23 million acre feet (maf) of water in an initial release. Subsequent monthly releases will evaluated appropriately, between 8.0 and 7.5 maf. If it is below 3,540 feet (Lower Elevation Range), Lake Powell should 7.0 maf in its initial releases. Following monthly releases should be adjusted according to elevation, but no less than 6.0 maf. |- |Colorado River Storage Project (Upper Basin) | * Colorado River Storage Project (CRSP) Upper Basin Units are water reservoirs in the Upper Basin that should maintain drought operations throughout the interval. * Releases should be less than 7.0 maf, unless otherwise negotiated among the Department of Interiror, Upper Basin States, and Lower Basin States. |- |Lake Mead (Lower Basin) | * Lake Mead should remain above 1,010 feet. * Under Shortage conditions, Lake Mead will reduce its release of water for Lower Basin state consumption by 1.25 maf. Each year, Lower Basin states will receive 6.25 maf for consumptive use and apportioned according to current agreements among Lower Basin states. * If Lake Mead is above 1,125 feet, the Secretary of the Interior may increase water apportionments. |- |Intentionally Created Surplus (ICS) | |- |Federally Managed Resource Pool | |- |Mexico | |} === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} gkaaz3b8d1jrnlbn6nbnjebh6me2gvv 4675495 4675494 2026-10-11T05:37:19Z Xinya Zhao 3627048 4675495 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... [[File:Aerial views of Lake Mead National Recreation Area, formed when Hoover Dam backed up the Colorado River. Boulder City, Nevada LCCN2011633016.tif|thumb|Lake Mead]] [[File:Lake Powell - Arizona.JPG|thumb|Lake Powell]] == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea.<ref>{{Cite web |last=Reclamation |first=Bureau of |title=Colorado River Basin {{!}} Bureau of Reclamation |url=https://www.usbr.gov/ColoradoRiverBasin/ |access-date=2026-10-11 |website=www.usbr.gov |language=en}}</ref> The basin is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. {| class="wikitable" style="width:100%;" |+Basic Numbers of Colorado River<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 1. Purpose and Need, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_1_Ch1_PurposeNeed_508.pdf}}</ref> !Item !Value |- |Basin Area |~250,000 square miles |- |River Length |~1,400 miles |- |People served |~40 million |} [[File:Colorado_River_basin_map.png|center|707x707px]] === Sources of Flow and the Supply Gap === Where the river's water is produced and where it is used are highly uneven. High-elevation snowmelt areas in the Upper Basin, about 15 percent of the basin's area, supply about 92 percent of annual flow<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Technical Appendix 3. Hydrologic Resources, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-III/P26-FEIS_TA_03_Hydro_508.pdf}}</ref>, while Lower Basin precipitation contributes only about 8 percent. As a result, about 90 percent of the water used in the Lower Basin is Upper Basin flow released into Lake Mead. This asymmetry lies at the root of the dispute over who should bear shortages. [[File:Colorado_river_flow_and_allocation.png|alt=Colorado river flow and allocation|800x800px]] == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective compared to the projections created in the 2000s, improved scientific research and intensified drought conditions indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> This analysis concluded that the post-2026 Operating Framework should allow for more flexibility, improce participation in complementary conservation efforts, and implement stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, the creation of a Colorado River governance structure has “reasonably foreseeable significant effect on the quality of the human environment” and would need the development of an Environmental Impact Statement (EIS) that outlines alternatives and addresses public comments. <ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> With the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the thorough stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2036 Colorado River Decision Framework === ==== Governance Structure ==== Rather than a single set of Operating Guidelines to govern the 10 year period, the preferred alternative outlined in the ROD and formally implemented is a 10 year decision framework. The framework promotes flexibility and adaptability to changing natural conditions by dividing the 10 year period into intervals that last 2 years. During each interval, new Operating Guidelines for the operations of Lake Mead and Lake Powell are issued remain in effect until the start of the next operating interval. While this is an open-ended framework, it still maintains that each interval's Operating Guidelines incorporate core principles and minimum operational requirements. For example, the operational principles state that Operating Guidelines must: * Consider changing hydrologic conditions and remain responsive to fluctuating water supply * Ensure Operations of Lake Powell and Lake Mead do not compromise critical infrastructure. If Lake Powell falls below 3,500 feet in elevation or Lake Mead falls below 1,000 feet in elevation, the Bureau of Reclamation will intervene to protect critical infrastructure facilities. * Include Long Range Operating Criteria (LROC) in its guidelines. LROC refers to the specific protocols and metrics to coordinate Lake Mead and Lake Powell operations. In addition, the LROC should outline how to address Extraordinary Circumstances * Reflect recommendations of consensus between parties. If a new agreement emerges among stakeholders, it takes priority over Operating Guidelines. In addition, there are key threshold ranges the operating guidelines must remain within. However, the selected ranges remain broad to accommodate new water governance strategies or future consensus agreements. The Operating Guidelines also establish a timeline requirements for the development of the following interval's Operational Guidelines, ensuring each guideline is completed with timely reviews and consultations.<ref name=":3" /> ==== 2027- 2028 Operating Guidelines ==== The first Operating Guidelines under the Decision Framework will be effective for the 2027-2028 interval. The goal of the current operating guidelines is to maintain water access in the Lower Basin and protect critical infrastructure through increasing Lake Powell elevation in the Upper Basin. {| class="wikitable" |+Terms of the 2028 Operating Guidelines !Operations !Mechanisms |- |Lake Powell (Upper Basin) | * Lake Powell's elevation should be protected and not drop below 3,510 feet. * The amount of water Lake Powell releases water will be determined by the elevation level. When Lake Powell's elevation is above 3,565 feet (Upper Elevation Range), Lake Powell can release 8.23 million acre feet (maf) of water in an initial release. Subsequent monthly releases will evaluated appropriately, between 8.0 and 7.5 maf. If it is below 3,540 feet (Lower Elevation Range), Lake Powell should 7.0 maf in its initial releases. Following monthly releases should be adjusted according to elevation, but no less than 6.0 maf. |- |Colorado River Storage Project (Upper Basin) | * Colorado River Storage Project (CRSP) Upper Basin Units are water reservoirs in the Upper Basin that should maintain drought operations throughout the interval. * Releases should be less than 7.0 maf, unless otherwise negotiated among the Department of Interiror, Upper Basin States, and Lower Basin States. |- |Lake Mead (Lower Basin) | * Lake Mead should remain above 1,010 feet. * Under Shortage conditions, Lake Mead will reduce its release of water for Lower Basin state consumption by 1.25 maf. Each year, Lower Basin states will receive 6.25 maf for consumptive use and apportioned according to current agreements among Lower Basin states. * If Lake Mead is above 1,125 feet, the Secretary of the Interior may increase water apportionments. |- |Intentionally Created Surplus (ICS) | |- |Federally Managed Resource Pool | |- |Mexico | |} === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} sd20v3602ydo4ocxph4debu1bk8a5ul 4675497 4675495 2026-10-11T06:29:06Z Xinya Zhao 3627048 4675497 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea.<ref>{{Cite web |last=Reclamation |first=Bureau of |title=Colorado River Basin {{!}} Bureau of Reclamation |url=https://www.usbr.gov/ColoradoRiverBasin/ |access-date=2026-10-11 |website=www.usbr.gov |language=en}}</ref> The basin is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. {| class="wikitable" style="width:100%;" |+Basic Numbers of Colorado River<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 1. Purpose and Need, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_1_Ch1_PurposeNeed_508.pdf}}</ref> !Item !Value |- |Basin Area |~250,000 square miles |- |River Length |~1,400 miles |- |People served |~40 million |} [[File:Colorado_River_basin_map.png|center|707x707px]] === Sources of Flow and the Supply Gap === Where the river's water is produced and where it is used are highly uneven. High-elevation snowmelt areas in the Upper Basin, about 15 percent of the basin's area, supply about 92 percent of annual flow<ref name=":5">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Technical Appendix 3. Hydrologic Resources, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-III/P26-FEIS_TA_03_Hydro_508.pdf}}</ref>, while Lower Basin precipitation contributes only about 8 percent. As a result, about 90 percent of the water used in the Lower Basin is Upper Basin flow released into Lake Mead. This asymmetry lies at the root of the dispute over who should bear shortages. [[File:Colorado_river_flow_and_allocation.png|alt=Colorado river flow and allocation|800x800px]] Because snowmelt supplies most of the flow, the basin is highly sensitive to snowpack and temperature. Since 2000, natural flow has averaged well below the twentieth-century mean. Research attributes part of the decline to warming, which reduces the runoff produced by a given snowpack.<ref>{{Cite journal |last=Milly |first=P. C. D. |last2=Dunne |first2=K. A. |date=2020-03-13 |title=Colorado River flow dwindles as warming-driven loss of reflective snow energizes evaporation |url=https://www.science.org/doi/10.1126/science.aay9187 |journal=Science |language=en |volume=367 |issue=6483 |pages=1252–1255 |doi=10.1126/science.aay9187 |issn=0036-8075}}</ref> [[File:Lake Mead and its bathtub ring upstream of Hoover Dam, Black Canyon, Arizona–Nevada.jpg|thumb|Lake Mead and its bathtub ring upstream of Hoover Dam]] Water use did not fall at the same pace. In the Lower Basin, deliveries plus evaporation and system losses exceed inflows by a "structural deficit" commonly estimated at more than 1 million acre-feet per year. The gap was filled by drawing down storage. Lake Mead and Lake Powell were nearly full around 2000; by March to April 2023 their combined storage had fallen to a record low of 24 percent of total capacity.<ref name=":5" /> Conditions worsened in 2026. The winter of 2025 to 2026 brought the lowest observed snowpack on record, and Lake Mead reached a record-low elevation in August<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=August 21, 2026 |title=Interior Department Finalizes Plans for 2027-2028 Colorado |url=https://www.usbr.gov/newsroom/news-release/5392}}</ref>, shortly before the 2026 Record of Decision was signed. === The Law of the River === The Colorado River is governed not by a single statute but by an accumulation of compacts, federal laws, court decisions, contracts, an international treaty and operating guidelines, collectively known as the "Law of the River." ==== Prior Appropriation and the 1922 Compact ==== Western water law follows the doctrine of prior appropriation ("first in time, first in right"), under which the earliest users hold the most secure rights. In the early twentieth century, slower-growing states feared that fast-growing California would establish senior rights to most of the river before they could develop their own uses. Negotiations among the seven states, chaired by then-Secretary of Commerce Herbert Hoover, produced the Colorado River Compact, signed in Santa Fe in November 1922. The Compact divided the basin at Lee Ferry, Arizona, into an Upper Basin and a Lower Basin. It apportioned to each basin the consumptive use of 7.5 million acre-feet per year. Under Article III(d), the Upper Basin must not cause flow at Lee Ferry to be depleted below 75 maf over any ten consecutive years. These allocations rested on flow estimates from an unusually wet period in the early twentieth century. Together with later obligations to Mexico, total legal entitlements now exceed what the river reliably produces. ==== Later Laws and Decisions ==== {| class="wikitable" |+History table of the Law of the River !Year !Instrument !What it does |- |1922 |Colorado River Compact |Splits basin at Lee Ferry; 7.5 maf/yr to each basin |- |1928 |Boulder Canyon Project Act |Authorizes Hoover Dam; Lower Basin split: CA 4.4, AZ 2.8, NV 0.3 maf |- |1944 |U.S.-Mexico Water Treaty |Guarantees Mexico 1.5 maf/yr |- |1948 |Upper Colorado River Basin Compact |Divides Upper Basin share among its states by percentage |- |1956 |Colorado River Storage Project Act |Authorizes Glen Canyon Dam and other Upper Basin storage |- |1968 |Colorado River Basin Project Act |Authorizes CAP, but makes it junior to California's 4.4 maf |} == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective compared to the projections created in the 2000s, improved scientific research and intensified drought conditions indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> This analysis concluded that the post-2026 Operating Framework should allow for more flexibility, improce participation in complementary conservation efforts, and implement stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, the creation of a Colorado River governance structure has “reasonably foreseeable significant effect on the quality of the human environment” and would need the development of an Environmental Impact Statement (EIS) that outlines alternatives and addresses public comments. <ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> With the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the thorough stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2036 Colorado River Decision Framework === ==== Governance Structure ==== Rather than a single set of Operating Guidelines to govern the 10 year period, the preferred alternative outlined in the ROD and formally implemented is a 10 year decision framework. The framework promotes flexibility and adaptability to changing natural conditions by dividing the 10 year period into intervals that last 2 years. During each interval, new Operating Guidelines for the operations of Lake Mead and Lake Powell are issued remain in effect until the start of the next operating interval. While this is an open-ended framework, it still maintains that each interval's Operating Guidelines incorporate core principles and minimum operational requirements. For example, the operational principles state that Operating Guidelines must: * Consider changing hydrologic conditions and remain responsive to fluctuating water supply * Ensure Operations of Lake Powell and Lake Mead do not compromise critical infrastructure. If Lake Powell falls below 3,500 feet in elevation or Lake Mead falls below 1,000 feet in elevation, the Bureau of Reclamation will intervene to protect critical infrastructure facilities. * Include Long Range Operating Criteria (LROC) in its guidelines. LROC refers to the specific protocols and metrics to coordinate Lake Mead and Lake Powell operations. In addition, the LROC should outline how to address Extraordinary Circumstances * Reflect recommendations of consensus between parties. If a new agreement emerges among stakeholders, it takes priority over Operating Guidelines. In addition, there are key threshold ranges the operating guidelines must remain within. However, the selected ranges remain broad to accommodate new water governance strategies or future consensus agreements. The Operating Guidelines also establish a timeline requirements for the development of the following interval's Operational Guidelines, ensuring each guideline is completed with timely reviews and consultations.<ref name=":3" /> ==== 2027- 2028 Operating Guidelines ==== The first Operating Guidelines under the Decision Framework will be effective for the 2027-2028 interval. The goal of the current operating guidelines is to maintain water access in the Lower Basin and protect critical infrastructure through increasing Lake Powell elevation in the Upper Basin. {| class="wikitable" |+Terms of the 2028 Operating Guidelines !Operations !Mechanisms |- |Lake Powell (Upper Basin) | * Lake Powell's elevation should be protected and not drop below 3,510 feet. * The amount of water Lake Powell releases water will be determined by the elevation level. When Lake Powell's elevation is above 3,565 feet (Upper Elevation Range), Lake Powell can release 8.23 million acre feet (maf) of water in an initial release. Subsequent monthly releases will evaluated appropriately, between 8.0 and 7.5 maf. If it is below 3,540 feet (Lower Elevation Range), Lake Powell should 7.0 maf in its initial releases. Following monthly releases should be adjusted according to elevation, but no less than 6.0 maf. |- |Colorado River Storage Project (Upper Basin) | * Colorado River Storage Project (CRSP) Upper Basin Units are water reservoirs in the Upper Basin that should maintain drought operations throughout the interval. * Releases should be less than 7.0 maf, unless otherwise negotiated among the Department of Interiror, Upper Basin States, and Lower Basin States. |- |Lake Mead (Lower Basin) | * Lake Mead should remain above 1,010 feet. * Under Shortage conditions, Lake Mead will reduce its release of water for Lower Basin state consumption by 1.25 maf. Each year, Lower Basin states will receive 6.25 maf for consumptive use and apportioned according to current agreements among Lower Basin states. * If Lake Mead is above 1,125 feet, the Secretary of the Interior may increase water apportionments. |- |Intentionally Created Surplus (ICS) | |- |Federally Managed Resource Pool | |- |Mexico | |} === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} 0vco6b57vnp6gg42g01g78p7kwzu6xq 4675498 4675497 2026-10-11T06:58:12Z Xinya Zhao 3627048 4675498 wikitext text/x-wiki == Introduction == [block text] Bureau of Reclamation... Colorado River Basin.... == Background == === Geography and Infrastructure === The Colorado River rises in Rocky Mountain National Park, Colorado. Its basin spans seven U.S. states (Wyoming, Colorado, Utah, New Mexico, Arizona, Nevada and California) and two Mexican states (Baja California and Sonora). The river flows toward the Gulf of California, but in most years it no longer reaches the sea.<ref>{{Cite web |last=Reclamation |first=Bureau of |title=Colorado River Basin {{!}} Bureau of Reclamation |url=https://www.usbr.gov/ColoradoRiverBasin/ |access-date=2026-10-11 |website=www.usbr.gov |language=en}}</ref> The basin is regulated by two very large reservoirs: Lake Mead, formed by Hoover Dam (completed 1936), and Lake Powell, formed by Glen Canyon Dam (completed 1963). Together they can store about four years of the river's average flow. Their size allowed the system to keep delivering water through dry years for decades without cutting releases. The same storage, however, long masked the underlying imbalance between supply and use. {| class="wikitable" style="width:100%;" |+Basic Numbers of Colorado River<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 1. Purpose and Need, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_1_Ch1_PurposeNeed_508.pdf}}</ref> !Item !Value |- |Basin Area |~250,000 square miles |- |River Length |~1,400 miles |- |People served |~40 million |} [[File:Colorado_River_basin_map.png|center|707x707px]] === Sources of Flow and the Supply Gap === Where the river's water is produced and where it is used are highly uneven. High-elevation snowmelt areas in the Upper Basin, about 15 percent of the basin's area, supply about 92 percent of annual flow<ref name=":5">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Technical Appendix 3. Hydrologic Resources, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-III/P26-FEIS_TA_03_Hydro_508.pdf}}</ref>, while Lower Basin precipitation contributes only about 8 percent. As a result, about 90 percent of the water used in the Lower Basin is Upper Basin flow released into Lake Mead. This asymmetry lies at the root of the dispute over who should bear shortages. [[File:Colorado_river_flow_and_allocation.png|alt=Colorado river flow and allocation|800x800px]] Because snowmelt supplies most of the flow, the basin is highly sensitive to snowpack and temperature. Since 2000, natural flow has averaged well below the twentieth-century mean. Research attributes part of the decline to warming, which reduces the runoff produced by a given snowpack.<ref>{{Cite journal |last=Milly |first=P. C. D. |last2=Dunne |first2=K. A. |date=2020-03-13 |title=Colorado River flow dwindles as warming-driven loss of reflective snow energizes evaporation |url=https://www.science.org/doi/10.1126/science.aay9187 |journal=Science |language=en |volume=367 |issue=6483 |pages=1252–1255 |doi=10.1126/science.aay9187 |issn=0036-8075}}</ref> [[File:Lake Mead and its bathtub ring upstream of Hoover Dam, Black Canyon, Arizona–Nevada.jpg|thumb|Lake Mead and its bathtub ring upstream of Hoover Dam]] Water use did not fall at the same pace. In the Lower Basin, deliveries plus evaporation and system losses exceed inflows by a "structural deficit" commonly estimated at more than 1 million acre-feet per year. The gap was filled by drawing down storage. Lake Mead and Lake Powell were nearly full around 2000; by March to April 2023 their combined storage had fallen to a record low of 24 percent of total capacity.<ref name=":5" /> Conditions worsened in 2026. The winter of 2025 to 2026 brought the lowest observed snowpack on record, and Lake Mead reached a record-low elevation in August<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=August 21, 2026 |title=Interior Department Finalizes Plans for 2027-2028 Colorado |url=https://www.usbr.gov/newsroom/news-release/5392}}</ref>, shortly before the 2026 Record of Decision was signed. === The Law of the River === The Colorado River is governed not by a single statute but by an accumulation of compacts, federal laws, court decisions, contracts, an international treaty and operating guidelines, collectively known as the "Law of the River." ==== Prior Appropriation and the 1922 Compact ==== Western water law follows the doctrine of prior appropriation ("first in time, first in right"), under which the earliest users hold the most secure rights. In the early twentieth century, slower-growing states feared that fast-growing California would establish senior rights to most of the river before they could develop their own uses. Negotiations among the seven states, chaired by then-Secretary of Commerce Herbert Hoover, produced the Colorado River Compact, signed in Santa Fe in November 1922. The Compact divided the basin at Lee Ferry, Arizona, into an Upper Basin and a Lower Basin. It apportioned to each basin the consumptive use of 7.5 million acre-feet per year. Under Article III(d), the Upper Basin must not cause flow at Lee Ferry to be depleted below 75 maf over any ten consecutive years. These allocations rested on flow estimates from an unusually wet period in the early twentieth century. Together with later obligations to Mexico, total legal entitlements now exceed what the river reliably produces. ==== Later Laws and Decisions ==== {| class="wikitable" |+History table of the Law of the River<ref name=":2" /> !Year !Instrument !What it does |- |1922 |Colorado River Compact |Splits basin at Lee Ferry; 7.5 maf/yr to each basin |- |1928 |Boulder Canyon Project Act |Authorizes Hoover Dam; Lower Basin split: CA 4.4, AZ 2.8, NV 0.3 maf |- |1944 |U.S.-Mexico Water Treaty |Guarantees Mexico 1.5 maf/yr |- |1948 |Upper Colorado River Basin Compact |Divides Upper Basin share among its states by percentage |- |1956 |Colorado River Storage Project Act |Authorizes Glen Canyon Dam and other Upper Basin storage |- |1963 |Arizona v. California |Upholds 1928 allocations; confirms Interior authority; recognizes tribal reserved rights |- |1968 |Colorado River Basin Project Act |Authorizes CAP, but makes it junior to California's 4.4 maf |} ==== Federal Authority and Tribal Water Rights ==== The Secretary of the Interior, acting through the Bureau of Reclamation, operates the major federal reservoirs and serves as "watermaster" of the Lower Basin, a role confirmed in Arizona v. California (1963). Whether that authority extends to reallocating water among states without their consent is contested. About thirty federally recognized tribes in the basin hold water rights, many of them senior under the reserved-rights doctrine. Tribes were not parties to the 1922 Compact, and many tribal rights remain unquantified or undeveloped for lack of infrastructure. === Key Actors and Institutions === The central divide in the post-2026 negotiations was between the two basins. The Upper Basin states, which produce most of the water, held that any conservation of theirs should be voluntary. The Lower Basin states, which use most of it, wanted mandatory cuts to be shared once reductions exceeded 1.5 maf per year. Within the Lower Basin, burdens also differ because of priority: Arizona's Central Arizona Project (CAP) is junior to California. {| class="wikitable" |+Key Actors !Actor !Role !Position on the ROD |- |Department of Interior |Rule the dams; Lower Basin watermaster; issued the ROD |A framework until states agree |- |Upper Basin states (CO, NM, UT, WY) |7.5 maf |Cuts should be voluntary; no mandatory cuts in ROD |- |Arizona |2.8 maf; most junior priority |Largest cut 760,000 af/yr; calls framework unlawful |- |California |4.4 maf; senior priority |Cut 440,000 af/yr; sees near-term certainty |- |Nevada |0.3 maf; depends on Lake Mead |Cut 50,000 af/yr; called it reasonable |- |Basin tribes(30) |Senior reserved rights |Positions vary |- |Mexico |1.5 maf under 1944 Treaty |Handled through IBWC |} === From Surplus to Shortage Management === Since 2000 the basin's institutions have shifted from distributing surplus to managing scarcity through a series of negotiated, time-limited agreements. {| class="wikitable" |+ !Year !Event !Significance |- |2003 |Quantification Settlement Agreement |California limited to its 4.4 maf, partly via farm-to-city transfers |- |2007 |Interim Guidelines |First shortage rules tied to Lake Mead elevations; coordinated Powell–Mead operation; expire end of 2026 |- |2017 |Minute 323 |Mexico shares shortages and conservation through 2026 |- |2019 |Drought Contingency Plans |Added voluntary Lower Basin reductions and Upper Basin drought operations |- |2021 |First federal shortage declaration (for 2022) |Cuts fall first on Arizona under the 1968 priority |} These agreements shared a common design: each was negotiated among the seven states, often with federal funding, and each was temporary. The 2007 Interim Guidelines, the core of the current operating rules, expire at the end of 2026. Replacing them required a new environmental review under the National Environmental Policy Act (NEPA) and, ideally, a new consensus among the states. The next section examines how that process unfolded, and why it ended in a federal decision without a state agreement. == The Record of Decision == Section XI.G7.D of Record of Decision of the 2007 Colorado River Interim Guidelines for Lower Basin Shortages and the Coordinated Operations for Lake Powell and Lake Mead instructed the Secretary of the Interior to review the efficacy the guidelines by 2020.<ref>{{Cite web |last=U.S. Department of the Interior |date=2007 |title=Record of Decision |url=https://www.usbr.gov/lc/region/programs/strategies/RecordofDecision.pdf}}</ref> In adherence with the ROD, the Secretary of the Interior completed the formal review process in December 2020. The Final Report found that the 2007 Interim Guidelines provided operational criteria for the lakes and increased water predictability for Lower Basin states. In addition, the creation of water storage and delivery mechanisms, such as the Intentionally Created Surplus, resulted in increased elevations in Lake Mead. While the 2007 Interim Guidelines were effective compared to the projections created in the 2000s, improved scientific research and intensified drought conditions indicated an increased risk of the Colorado River reaching critically low levels.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=December 18, 2020 |title=Review of the Colorado River Interim Guidelines for Lower Basin Shortages and Coordinated Operations for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/7d/7.D.Review_FinalReport_12-18-2020.pdf}}</ref> This analysis concluded that the post-2026 Operating Framework should allow for more flexibility, improce participation in complementary conservation efforts, and implement stronger, more robust measures.<ref>{{Cite web |last=U.S. Department of Interior, Bureau of Reclamation |date=August 31, 2026 |title=Review of the 2007 Interim Guidelines & 7.D. Report |url=https://www.usbr.gov/ColoradoRiverBasin/interimguidelines/7dreport/index.html}}</ref> === The NEPA Process === The National Environmental Policy Act (NEPA) established a process for the Federal Government to consider environmental effects during the decision-making process of all major federal actions. Pursuant to section 106 of NEPA, the creation of a Colorado River governance structure has “reasonably foreseeable significant effect on the quality of the human environment” and would need the development of an Environmental Impact Statement (EIS) that outlines alternatives and addresses public comments. <ref>{{Cite web |date=July 4, 2025 |title=National Environmental Policy Act of 1969 |url=https://www.govinfo.gov/content/pkg/COMPS-10352/pdf/COMPS-10352.pdf}}</ref> With the 2007 Interim Guidelines expiring in 2026, the Bureau of Reclamation’s new governance structure for the Colorado River would be shaped by the thorough stakeholder engagement of the NEPA process. ==== Stakeholder Engagement ==== In 2022, a pre-scoping notice was published in the Federal register, allowing public engagement prior to the formal initiation of the NEPA process. Received public comments were used to develop strategies for meaningful public engagement across the Basin. These comments were incorporated into a Notice of Intent to Prepare an Environmental Impact Statement (EIS), which formally initiated the NEPA process upon publication in 2023. This commenced the development of alternatives, which concluded in early 2026 with the publication of a draft EIS. Throughout the 2.5-year period, the Bureau of Reclamation regularly consulted with Basin states, Basin tribes, non-governmental organizations, water users, other participating federal agencies, and agencies to inform the development of alternative operational guidelines. In addition, the Bureau of Reclamation and other federal agencies hosted public meetings and conferences to gather input.<ref name=":1">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Chapter 4. Consultation and Coordination, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-I/P26-FEIS_4_Ch4_ConsultCoord_508.pdf}}</ref> Throughout the public comment period and engagement efforts, many conflicting concerns were raised among stakeholders. For example, both the Upper Basin and Lower Basin States submitted their own plan proposals. The Upper Basin Plan proposed water delivery cuts for Lower Basin States users only. Meanwhile, the Lower Basin Plan proposed a reduction strategy for the entire Basin. In this plan, the Lower Basin experienced water delivery cuts during average or dry conditions, but both the Upper and Lower Basin must cut water delivery in under the driest conditions.<ref name=":2">{{Cite web |last=Hite |first=Kirsten |last2=Sheikh |first2=Pervase A. |last3=Stem |first3=Charles, V. |date=October 1, 2026 |title=Management of the Colorado River: Water Allocations, Drought, and the Federal Role |url=https://www.congress.gov/crs-product/R45546 |url-status=}}</ref> Similarly, the agreement would need to appropriately incorporate Tribal water rights, which tend to have priority over other water uses of the Colorado River.<ref name=":2" /> Due to the tense and conflicting nature of the consultation process, the preliminary draft EIS did not identify a preferred alternative. Consultations and negotiations continued during the Public Comment period and to inform the governance decisions in the final EIS.<ref name=":3">{{Cite web |last=Department of the Interior |date=August 2026 |title=Record of Decision Decision Framework for Colorado River Guidelines: Coordinated Operations of Lake Powell and Lake Mead (2027-2036) |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/decision-doc/P26_RecordofDecision_Final.pdf}}</ref> {| class="wikitable" |+Participants in the NEPA Process<ref name=":1" /> <ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=July 2026 |title=Appendix P. Tribal Consultation and Coordination Efforts, Post-2026 Colorado River Reservoir Operations Final EIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/docs/Vol-II/P26-FEIS_Appendix_P_TribalConsultationEfforts_508.pdf}}</ref> !Party Type !Role !Name |- | rowspan="7" |Federal Entities |Lead Agency |Bureau of Reclamation, Department of Interior |- | rowspan="5" |Cooperating Agency |Bureau of Indian Affairs, Department of Interior |- |National Parks Service, Department of Interior |- |U.S. Fish and Wildlife Service, Department of Interior |- |U.S. Section of the International Boundary and Water Commission, Department of State |- |Western Area Power Administration, Department of Energy |- |Technical Expertise |U.S. Geological Survey, Department of the Interior |- | rowspan="7" |States | rowspan="4" |Upper Basin |Colorado |- |New Mexico |- |Utah |- |Wyoming |- | rowspan="3" |Lower Basin |Arizona |- |California |- |Nevada |- | rowspan="43" |Tribes | rowspan="30" |Basin Tribes |Ak-Chin Indian Community |- |Chemehuevi Indian Tribe |- |Cocopah Indian Tribe |- |Colorado River Indian Tribes |- |Fort McDowell Yavapai Nation |- |Fort Mojave Indian Tribe |- |Gila River Indian Community |- |Havasupai Tribe |- |Hopi Tribe |- |Hualapai Indian Tribe |- |Jicarilla Apache Nation |- |Kaibab Band of Paiute Indians |- |Las Vegas Tribe of Paiute Indians |- |Moapa Band of Paiute Indians |- |Navajo Nation |- |Paiute Indian Tribe of Utah |- |Pascua Yaqui Tribe |- |Quechan Indian Tribe |- |Salt River Pima- Maricopa Indian Community |- |San Carlos Apache Tribe |- |San Juan Southern Paiute |- |Southern Ute Indian Tribe |- |Tohono O'odham Nation |- |Tonto Apache Tribe |- |Ute Indian Tribe of the Uintah and Ouray Reservation |- |Ute Mountain Ute Tribe |- |White Mountain Apache Tribe |- |Yavapai-Apache Nation |- |Yavapai-Prescott Indian Tribe |- |Zuni Tribe |- | rowspan="13" |Non-Basin, Technical Expertise | valign="top" |Pueblo of Acoma |- | valign="top" |Pueblo of Cochiti |- | valign="top" |Pueblo of Jemez |- | valign="top" |Pueblo of Laguna |- | valign="top" |Pueblo of Nambé |- | valign="top" |Pueblo of Pojoaque |- | valign="top" |Pueblo of San Felipe |- | valign="top" |Pueblo of San Juan |- | valign="top" |Pueblo of Sandia |- | valign="top" |Pueblo of Santa Ana |- | valign="top" |Pueblo of Santa Clara |- | valign="top" |Pueblo of Tesuque |- | valign="top" |Pueblo of Zia |- | rowspan="7" |Non-Government Organizations | rowspan="7" |Conservation Groups | valign="top" |American Rivers |- | valign="top" |Environmental Defense Fund |- | valign="top" |National Audubon Society |- | valign="top" |The Nature Conservancy |- | valign="top" |Theodore Roosevelt Conservation Partnership |- | valign="top" |Trout Unlimited |- | valign="top" |Western Resource Advocates |- | rowspan="3" |International | rowspan="3" |Mexico | valign="top" |Mexican Section of the International Boundary and Water Comission |- | valign="top" |Mexico National Water Commission |- | valign="top" |Mexico Secretariat of Foreign Relations |} ==== Alternatives ==== The NEPA Process resulted in the development of 6 possible alternatives, each incorporating stakeholder interests differently. * '''No Action Alternative''': Colorado River would no longer operate according to the 2007 Interim Operating Guidelines following the 2026 expiration. No activities for water storage and delivery are defined, other than pre-existing emergency measures.<ref name=":3" /> * '''Basic Coordination Alternative''': This alternative represents governance largely defined by Federal Authority and would be incorporated if Basin states could not reach a new agreement. Bureau of Reclamation would determine releases for Lake Powell and identify when Upper Basin States should take additional action. Otherwise, no new delivery or storage mechanisms are defined.<ref name=":4">{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2025 |title=Alternatives Report: Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead |url=https://www.usbr.gov/ColoradoRiverBasin/documents/post2026/alternatives/Post-2026_Alternatives_Report_20250117_508.pdf}}</ref> * '''Enhanced Coordination Alternative''': This alternative is defined by Tribal and federal stakeholder suggestions. Water would be distributed proportionally to the storages of Lake Mead and Lake Powell. It also includes Basin-wide contributions.<ref name=":3" /> * '''Maximum Operational Flexibility Alternative''': Advocated by non-governmental conservation organizations, this alternative called for voluntary Basin-wide contributions. Additionally, 3 additional Basin reservoirs will be used for water storage.<ref name=":3" /> * '''Supply Driven Alternative''': This incorporates elements of proposals from Upper and Lower Basin States. It includes new storage and distribution mechanisms for Lake Powell and Lake Mead and incentives for conservation efforts. Contributions are Basin-Wide.<ref name=":4" /> * '''Preferred Alternative''': A 10 year decision framework that issues new operating guidelines every 2 years. It does not establish guidelines for Lake Mead and Lake Powell operations. <ref name=":3" /> Instead, it establishes guidelines for how to develop ''future'' operating guidelines.This Alternative was not present in the Draft EIS posted for public review, as negotiations with stakeholders failed to reach a consensus.<ref>{{Cite web |last=Department of Interior, Bureau of Reclamation |date=January 2026 |title=Chapter 2. Description of Alternatives: Post-2026 Colorado River Reservoir Operations DEIS |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/draft-eis/docs/vol-1/P26-DEIS-2-Ch2.pdf}}</ref> === 2027-2036 Colorado River Decision Framework === ==== Governance Structure ==== Rather than a single set of Operating Guidelines to govern the 10 year period, the preferred alternative outlined in the ROD and formally implemented is a 10 year decision framework. The framework promotes flexibility and adaptability to changing natural conditions by dividing the 10 year period into intervals that last 2 years. During each interval, new Operating Guidelines for the operations of Lake Mead and Lake Powell are issued remain in effect until the start of the next operating interval. While this is an open-ended framework, it still maintains that each interval's Operating Guidelines incorporate core principles and minimum operational requirements. For example, the operational principles state that Operating Guidelines must: * Consider changing hydrologic conditions and remain responsive to fluctuating water supply * Ensure Operations of Lake Powell and Lake Mead do not compromise critical infrastructure. If Lake Powell falls below 3,500 feet in elevation or Lake Mead falls below 1,000 feet in elevation, the Bureau of Reclamation will intervene to protect critical infrastructure facilities. * Include Long Range Operating Criteria (LROC) in its guidelines. LROC refers to the specific protocols and metrics to coordinate Lake Mead and Lake Powell operations. In addition, the LROC should outline how to address Extraordinary Circumstances * Reflect recommendations of consensus between parties. If a new agreement emerges among stakeholders, it takes priority over Operating Guidelines. In addition, there are key threshold ranges the operating guidelines must remain within. However, the selected ranges remain broad to accommodate new water governance strategies or future consensus agreements. The Operating Guidelines also establish a timeline requirements for the development of the following interval's Operational Guidelines, ensuring each guideline is completed with timely reviews and consultations.<ref name=":3" /> ==== 2027- 2028 Operating Guidelines ==== The first Operating Guidelines under the Decision Framework will be effective for the 2027-2028 interval. The goal of the current operating guidelines is to maintain water access in the Lower Basin and protect critical infrastructure through increasing Lake Powell elevation in the Upper Basin. {| class="wikitable" |+Terms of the 2028 Operating Guidelines !Operations !Mechanisms |- |Lake Powell (Upper Basin) | * Lake Powell's elevation should be protected and not drop below 3,510 feet. * The amount of water Lake Powell releases water will be determined by the elevation level. When Lake Powell's elevation is above 3,565 feet (Upper Elevation Range), Lake Powell can release 8.23 million acre feet (maf) of water in an initial release. Subsequent monthly releases will evaluated appropriately, between 8.0 and 7.5 maf. If it is below 3,540 feet (Lower Elevation Range), Lake Powell should 7.0 maf in its initial releases. Following monthly releases should be adjusted according to elevation, but no less than 6.0 maf. |- |Colorado River Storage Project (Upper Basin) | * Colorado River Storage Project (CRSP) Upper Basin Units are water reservoirs in the Upper Basin that should maintain drought operations throughout the interval. * Releases should be less than 7.0 maf, unless otherwise negotiated among the Department of Interiror, Upper Basin States, and Lower Basin States. |- |Lake Mead (Lower Basin) | * Lake Mead should remain above 1,010 feet. * Under Shortage conditions, Lake Mead will reduce its release of water for Lower Basin state consumption by 1.25 maf. Each year, Lower Basin states will receive 6.25 maf for consumptive use and apportioned according to current agreements among Lower Basin states. * If Lake Mead is above 1,125 feet, the Secretary of the Interior may increase water apportionments. |- |Intentionally Created Surplus (ICS) | |- |Federally Managed Resource Pool | |- |Mexico | |} === Funding === == Impacts == == Discussion and Further Reading == {{BookCat}} pq2mn2r22hb2bmb13cn5a5ndq8trwci User:Benson Benjamin. M 2 485909 4675455 4675322 2026-10-10T15:28:43Z Benson Benjamin. M 3627081 Added an internet archive link 4675455 wikitext text/x-wiki Benson Benjamin is a Ugandan author, preacher and a Ugandan citizen. He is has written various books and a especially Christian books. His books majorly help to reveal the work of redemption. He has decided to use his talent of writing to spread the gospel. He has also decided to write brochures which are given out freely to communities and churches or institutions during the evangelical move of "'''''Bread of Life.'''''" Some of the brochures include: # Eating the Bread of life which is written in series ie. 1, 2, 3, 4 # Like cures like # Jesus in all the Books Some of the books include: # Africa Isn't God's Afterthought # The Two Trumpets # The Mystery Behind the Burn Offering. # The Mystery Behind the Altar. # The City of Refuge, etc...... He has also gone ahead to work together with his fellows The Qudruplets to do this work of God. <nowiki>*</nowiki> Read or download my book on the <nowiki>[https://archive.org Internet Archive]</nowiki>. noorm27tl8v461rrvwql1ra1y0nlf30 User talk:~2026-54826-12 3 486315 4675468 2026-10-10T21:37:12Z EggRoll97 3178669 Notifying author of speedy deletion nomination 4675468 wikitext text/x-wiki == I have added a tag to a page you created == Hi! I'm EggRoll97, and I recently reviewed your page, [[:EXPLAIN THE LANGUAGE SITUATION IN BOTSWANA]]. I have added a tag to the page, because it <strong>may meet the [[Wikibooks:Deletion policy#Speedy deletions|criteria for speedy deletion]].</strong> This means that it can be deleted at any time. If you believe that your page should not be deleted, please post a message on [[Talk:EXPLAIN THE LANGUAGE SITUATION IN BOTSWANA|the page's talk page]] explaining why. <strong>If your reasoning is convincing, your page may be saved.</strong> If you have any questions or concerns, please [[User talk:EggRoll97|let me know]]. Thank you! <!-- Substituted from User:JJPMaster/CurateThisPage/authorMsg --> [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 21:37, 10 October 2026 (UTC) gym5yzmo9onthzji7fiwl1v4kj7gu57