Wikibooks
enwikibooks
https://en.wikibooks.org/wiki/Main_Page
MediaWiki 1.47.0-wmf.21
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
4672166
4671915
2026-09-24T15:32:22Z
Kittycataclysm
3371989
Adding deletion request for [[Active Directory Security and Penetration Testing]]
4672166
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)
== [[Objective Projection: Why the Brain Never Forgets Some Stories]] ==
Undisclosed AI-generated content. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 02:13, 9 May 2026 (UTC)
:<nowiki>'''Keep'''</nowiki> — Comment from page author/subject expert.
:I am Levent Bulut, the originator of the <nowiki>''</nowiki>Objective Projection<nowiki>''</nowiki> methodology described in this book (ORCID: 0009-0007-7500-2261, Wikidata: Q138048287). I want to address the AI-generated content concern directly and transparently.
:<nowiki>'''</nowiki>On the content itself:<nowiki>'''</nowiki> The methodology, theoretical framework (the six-variable operator E(r) = projS(M, T, V, Δ, Ω, Ng), the Six Golden Rules, the Six-Layer Framework), and all original arguments are my own intellectual work, developed and published independently. This is documented through:
:* 26 DOI-registered academic publications on Zenodo (search: "Levent Bulut Objective Projection")
:* A peer-reviewed submission currently under review at <nowiki>''</nowiki>Digital Humanities Quarterly<nowiki>''</nowiki>
:* Parallel Turkish-language Wikibook and Wikiversity pages on the same methodology
:* An open-source SFT dataset on Hugging Face (leventbulut/objective-projection)
:<nowiki>'''</nowiki>On AI assistance:<nowiki>'''</nowiki> I used AI tools (Claude) for English translation polish and copy-editing from my Turkish source materials — the same way a non-native English-speaking academic would use a human translator or editor. The <nowiki>''</nowiki>ideas, structure, terminology, citations, and arguments<nowiki>''</nowiki> are entirely my own and pre-date the Wikibooks version, traceable through Zenodo DOI timestamps starting in 2025.
:<nowiki>'''</nowiki>Proposed remedy instead of deletion:<nowiki>'''</nowiki> I am happy to:
:# Add a clear AI-assistance disclosure to the book's preface, per Wikibooks transparency norms
:# Add inline citations to the underlying DOI-registered publications for every major claim
:# Link to the parallel Turkish version and academic record
:This would address the <nowiki>''</nowiki>undisclosed<nowiki>''</nowiki> part of the concern (which is the actionable policy issue) while preserving content that is original academic work by an identifiable author with a published track record. Deletion of original scholarship because translation assistance was used would set a concerning precedent for non-native English contributors.
:<nowiki>I request a few days to add the disclosure and citations before any deletion action. ~~~~</nowiki> [[Special:Contributions/~2026-28847-60|~2026-28847-60]] ([[User talk:~2026-28847-60|talk]]) 18:46, 13 May 2026 (UTC)
::Administrative assistance needed: Automated filters blocking structural improvements and disclosures
::'''Request for Help''' — I am Levent Bulut, the author of this book. I have already provided my AI disclosure and academic credentials (ORCID, DOI list) here in this discussion.
::I am trying to update the book to comply with Wikibooks standards by:
::Adding a formal '''AI assistance disclosure''' at the top of the page.
::Restructuring the content into an '''instructional textbook format''' (adding Learning Objectives).
::Converting plain text formulas into '''LaTeX''' ( format).
::Updating references to include full academic '''DOI''' records.
::However, the automated filter is blocking all my attempts:
::If I try to replace the content with the improved version, it triggers the '''"large amount of content removal"''' filter.
::If I try to add specific academic links, it triggers the '''"automated link/spam"''' filter.
::I am essentially trapped by the filters while trying to improve the book and follow transparency norms. Could an administrator please either whitelist my account or manually apply the improved version of the text? I am ready to provide the full MediaWiki code here if requested. My intent is purely constructive and academic. [[Special:Contributions/~2026-28847-60|~2026-28847-60]] ([[User talk:~2026-28847-60|talk]]) 19:15, 13 May 2026 (UTC)
::: Hi, @[[User:~2026-28847-60|~2026-28847-60]]. Your account was incorrectly locked by a steward. It is now currently unlocked. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:44, 15 May 2026 (UTC)
:::: Pinging @[[User:Projection Architect|Projection Architect]], who was previously LeventBulut. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:51, 4 July 2026 (UTC)
::Please review [[Wikibooks:Artificial intelligence]]. It states unequivocally that {{tq|LLMs may not be used to generate or summarize material and ideas at Wikibooks}}, and that {{tq|translations made by LLMs are not allowed on Wikibooks}}. The fact that you did not disclose your usage of AI is part of the problem, but disclosing it does not make it allowable either.
::More broadly, based on what you've said above, the content of this book is a reflection of your personal theories on writing. This is essentially [[Wikibooks:Original research]] and is not permitted. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:36, 13 May 2026 (UTC)
== [[Suicide]] ==
I realize this book has been nominated for deletion before ([[Wikibooks:Requests for deletion/Suicide|1]], [[Wikibooks:Requests for deletion/Suicide (2)|2]], [[Wikibooks:Requests for deletion/Suicide/Suffocation|3]]), but it's been over ten years since the last nomination. The project's position on what material is in its educational scope has shifted, as have some of the facts on the ground.
* The chartered purpose of Wikibooks is to produce "open-content textbooks" (cf. [[Wikibooks:What is Wikibooks?]]) which are suitable for use in an instructional environment. Providing educational information about suicide in the context of psychiatry could certainly be in scope, as psychiatry is an educational topic; however, instructional material on how to commit suicide is not an educational topic, and should not be considered in scope.
* This book is, and has always been, primarily intended as an instructional work guiding users on how to commit suicide. It provides effectively no meaningful analytical content ''about'' suicide as a topic. Most of the original content in the book was imported from an early-2000s wiki associated with the <code>alt.suicide.holiday</code> Usenet group, the "ASH wiki", which was specifically and unequivocally dedicated to describing and recommending methods by which readers could commit suicide, and this has carried through to the current version of the book.
* Most of the content in the book was removed in 2020 (by redirecting it to the book's main page, e.g. [[Special:Diff/3660495]]) over concerns that it was created by a WMF-banned user ([[User:Leucosticte]]), and because it was likely in violation of the ASH wiki's (unclear) copyright. These changes removed most of the content of the book; much of what remains is image gallery pages like [[Suicide/Blades]] which have no educational value.
Suicide is a sensitive topic; if it is covered by a textbook, it should be covered tastefully and with an aim to educate. This book is largely the opposite of that. Having it here is doing more harm than good.
If this book is deleted, the following related pages should be deleted as well:
* [[Template:Suicide methods]]
* [[Template:Infobox suicide method]] (currently unused)
* [[User:Leucosticte/About ASH]] - from the ASH wiki, as mentioned above
* [[User:Leucosticte/Frequently Asked Questions]] - also from the ASH wiki
[[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:41, 21 July 2026 (UTC)
: {{keep|weak keep}} a) Age is no argument. There are many stale underdeveloped books I would rather delete than keeping around. b) The book’s topic is exceptionally difficult to write about. ''This'' impedes collaborative authoring. c) The book does not really explain ''how'' to commit suicide (like a step‐by‐step guide), neither is it the book’s learning objective. d) Even if ''you construed'' the chapter summarizing various suicide methods ''as instructions'', instructional material on how to commit suicide ''is'' an educational topic. In most ''present‐day societies'' it is not ''ethical'' to teach students how to commit suicide, though. e) Therefore the correct path is to first alter the [[WB:WIW#Wikibooks includes instructional texts|project scope]] to censor books on ethical grounds ''and then'' nominate the book for censorship. ‑‑[[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|discuss]] • [[Special:Contributions/Kai Burghardt|contribs]]) 04:50, 28 July 2026 (UTC)
::Re. c: most of the explicit directions were edited out in 2020, as noted in my nomination, but are still visible in page history. For a couple of explicit examples, see e.g. [[Special:Permalink/3318613]] or [[Special:Permalink/3654645]]. Providing specific instructions was the original intent of this book, and it has never escaped that legacy. If someone were interested in writing a book ''about'' the phenomenon of suicide, they would be better off starting afresh. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 05:26, 28 July 2026 (UTC)
*'''Delete all'''. ―[[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:17, 28 July 2026 (UTC)
*:why? [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 15:49, 19 September 2026 (UTC)
* '''Delete all''' per the nomination above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:17, 30 July 2026 (UTC)
* '''Keep''' with caution. Rename to "suicide prevention"?--[[User:TunnelESON|TunnelESON]] ([[User talk:TunnelESON|discuss]] • [[Special:Contributions/TunnelESON|contribs]]) 04:03, 2 September 2026 (UTC)
*:Re. the rename: absolutely not. There is no content in the book about suicide prevention. If you are interested in writing a book on that topic, please start a new one. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 5 September 2026 (UTC)
:{{keep}} -
:1. "instructional material on how to commit suicide is not an educational topic" - I think it can be construed as one depending on the person (and does not have to imply that the person is at risk)
:2. Not a reason.
:3. Not a reason. It is up to the community to decide whether to accept a banned user's work. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 13:37, 6 September 2026 (UTC)
== [[Chess Opening Theory/1. g4/1...Na6]] ==
{{closed|Deleted. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 15:32, 22 September 2026 (UTC)}}
Nonsense position, one of the worst opening moves for White countered by a move hurting development for Black. [https://www.365chess.com/search_position.php Searching] on 365chess.com finds zero games with this position. See also a similar [[Wikibooks:Requests for deletion/Chess Opening Theory/1. e4/1...e5/2. Na3]]. [[User:1234qwer1234qwer4|𝟙𝟤𝟯𝟺𝐪𝑤𝒆𝓇𝟷𝟮𝟥𝟜𝓺𝔴𝕖𝖗𝟰]] ([[User talk:1234qwer1234qwer4|𝗍𝗮𝘭𝙠]]) 02:20, 13 September 2026 (UTC)
:{{vd}} With some reservations, in that just being a bad move doesn't make it ''not'' a strategy. That said, the lack of actual game presence means it's unnecessary to keep around. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 16:16, 14 September 2026 (UTC)
{{end closed}}
== [[Art And AI]] ==
Suspected rampant LLM use; this also seems to violate [[WB:BLOG]] and [[WB:SOURCE]], since this seems largely like personal research/personal essays and opinions. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 14:25, 17 September 2026 (UTC)
:{{vd}} - as a book, this isn't even particularly coherent. For instance, chapters like [[Art And AI/Tools Of The Artist]] have no clear relationship to the intended topic. And the chapters which do address the topic, like [[Art And AI/Can AIs Go On Strike]], certainly seem more like an opinion piece (if not outright fantasy content) than serious material appropriate for an instructional text. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:03, 18 September 2026 (UTC)
:{{vd}}, does not fit this project and appears to be LLM-generated. No useful content. [[User:Ternera|Ternera]] ([[User talk:Ternera|discuss]] • [[Special:Contributions/Ternera|contribs]]) 15:13, 19 September 2026 (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)
== [[Wikijunior:Alphabet of Wikibooks]] ==
I do not know whether this page is useful or not, due to [[Wikijunior:Alphabet]] already existing. I would support the deletion of this given that it contains many red links as well. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 01:41, 23 September 2026 (UTC)
:{{vd}} - As proposer. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 01:42, 23 September 2026 (UTC)
:{{vd}} - we already have a book on this topic. And no, "Afghanistan" and "Quagga" are not good example words for children. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 07:55, 23 September 2026 (UTC)
== [[Active Directory Security and Penetration Testing]] ==
I have high confidence that this book was created using a genAI LLM (see flags on individual pages). I will plan to delete this in, say, a week, but I'm popping over here to allow for discussion if needed. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 15:32, 24 September 2026 (UTC)
h8qlnjp1lbkf5avtv6e2pl3suoeekkv
4672210
4672166
2026-09-24T19:56:54Z
Ternera
2679710
/* Active Directory Security and Penetration Testing */ Reply
4672210
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)
== [[Objective Projection: Why the Brain Never Forgets Some Stories]] ==
Undisclosed AI-generated content. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 02:13, 9 May 2026 (UTC)
:<nowiki>'''Keep'''</nowiki> — Comment from page author/subject expert.
:I am Levent Bulut, the originator of the <nowiki>''</nowiki>Objective Projection<nowiki>''</nowiki> methodology described in this book (ORCID: 0009-0007-7500-2261, Wikidata: Q138048287). I want to address the AI-generated content concern directly and transparently.
:<nowiki>'''</nowiki>On the content itself:<nowiki>'''</nowiki> The methodology, theoretical framework (the six-variable operator E(r) = projS(M, T, V, Δ, Ω, Ng), the Six Golden Rules, the Six-Layer Framework), and all original arguments are my own intellectual work, developed and published independently. This is documented through:
:* 26 DOI-registered academic publications on Zenodo (search: "Levent Bulut Objective Projection")
:* A peer-reviewed submission currently under review at <nowiki>''</nowiki>Digital Humanities Quarterly<nowiki>''</nowiki>
:* Parallel Turkish-language Wikibook and Wikiversity pages on the same methodology
:* An open-source SFT dataset on Hugging Face (leventbulut/objective-projection)
:<nowiki>'''</nowiki>On AI assistance:<nowiki>'''</nowiki> I used AI tools (Claude) for English translation polish and copy-editing from my Turkish source materials — the same way a non-native English-speaking academic would use a human translator or editor. The <nowiki>''</nowiki>ideas, structure, terminology, citations, and arguments<nowiki>''</nowiki> are entirely my own and pre-date the Wikibooks version, traceable through Zenodo DOI timestamps starting in 2025.
:<nowiki>'''</nowiki>Proposed remedy instead of deletion:<nowiki>'''</nowiki> I am happy to:
:# Add a clear AI-assistance disclosure to the book's preface, per Wikibooks transparency norms
:# Add inline citations to the underlying DOI-registered publications for every major claim
:# Link to the parallel Turkish version and academic record
:This would address the <nowiki>''</nowiki>undisclosed<nowiki>''</nowiki> part of the concern (which is the actionable policy issue) while preserving content that is original academic work by an identifiable author with a published track record. Deletion of original scholarship because translation assistance was used would set a concerning precedent for non-native English contributors.
:<nowiki>I request a few days to add the disclosure and citations before any deletion action. ~~~~</nowiki> [[Special:Contributions/~2026-28847-60|~2026-28847-60]] ([[User talk:~2026-28847-60|talk]]) 18:46, 13 May 2026 (UTC)
::Administrative assistance needed: Automated filters blocking structural improvements and disclosures
::'''Request for Help''' — I am Levent Bulut, the author of this book. I have already provided my AI disclosure and academic credentials (ORCID, DOI list) here in this discussion.
::I am trying to update the book to comply with Wikibooks standards by:
::Adding a formal '''AI assistance disclosure''' at the top of the page.
::Restructuring the content into an '''instructional textbook format''' (adding Learning Objectives).
::Converting plain text formulas into '''LaTeX''' ( format).
::Updating references to include full academic '''DOI''' records.
::However, the automated filter is blocking all my attempts:
::If I try to replace the content with the improved version, it triggers the '''"large amount of content removal"''' filter.
::If I try to add specific academic links, it triggers the '''"automated link/spam"''' filter.
::I am essentially trapped by the filters while trying to improve the book and follow transparency norms. Could an administrator please either whitelist my account or manually apply the improved version of the text? I am ready to provide the full MediaWiki code here if requested. My intent is purely constructive and academic. [[Special:Contributions/~2026-28847-60|~2026-28847-60]] ([[User talk:~2026-28847-60|talk]]) 19:15, 13 May 2026 (UTC)
::: Hi, @[[User:~2026-28847-60|~2026-28847-60]]. Your account was incorrectly locked by a steward. It is now currently unlocked. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:44, 15 May 2026 (UTC)
:::: Pinging @[[User:Projection Architect|Projection Architect]], who was previously LeventBulut. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:51, 4 July 2026 (UTC)
::Please review [[Wikibooks:Artificial intelligence]]. It states unequivocally that {{tq|LLMs may not be used to generate or summarize material and ideas at Wikibooks}}, and that {{tq|translations made by LLMs are not allowed on Wikibooks}}. The fact that you did not disclose your usage of AI is part of the problem, but disclosing it does not make it allowable either.
::More broadly, based on what you've said above, the content of this book is a reflection of your personal theories on writing. This is essentially [[Wikibooks:Original research]] and is not permitted. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:36, 13 May 2026 (UTC)
== [[Suicide]] ==
I realize this book has been nominated for deletion before ([[Wikibooks:Requests for deletion/Suicide|1]], [[Wikibooks:Requests for deletion/Suicide (2)|2]], [[Wikibooks:Requests for deletion/Suicide/Suffocation|3]]), but it's been over ten years since the last nomination. The project's position on what material is in its educational scope has shifted, as have some of the facts on the ground.
* The chartered purpose of Wikibooks is to produce "open-content textbooks" (cf. [[Wikibooks:What is Wikibooks?]]) which are suitable for use in an instructional environment. Providing educational information about suicide in the context of psychiatry could certainly be in scope, as psychiatry is an educational topic; however, instructional material on how to commit suicide is not an educational topic, and should not be considered in scope.
* This book is, and has always been, primarily intended as an instructional work guiding users on how to commit suicide. It provides effectively no meaningful analytical content ''about'' suicide as a topic. Most of the original content in the book was imported from an early-2000s wiki associated with the <code>alt.suicide.holiday</code> Usenet group, the "ASH wiki", which was specifically and unequivocally dedicated to describing and recommending methods by which readers could commit suicide, and this has carried through to the current version of the book.
* Most of the content in the book was removed in 2020 (by redirecting it to the book's main page, e.g. [[Special:Diff/3660495]]) over concerns that it was created by a WMF-banned user ([[User:Leucosticte]]), and because it was likely in violation of the ASH wiki's (unclear) copyright. These changes removed most of the content of the book; much of what remains is image gallery pages like [[Suicide/Blades]] which have no educational value.
Suicide is a sensitive topic; if it is covered by a textbook, it should be covered tastefully and with an aim to educate. This book is largely the opposite of that. Having it here is doing more harm than good.
If this book is deleted, the following related pages should be deleted as well:
* [[Template:Suicide methods]]
* [[Template:Infobox suicide method]] (currently unused)
* [[User:Leucosticte/About ASH]] - from the ASH wiki, as mentioned above
* [[User:Leucosticte/Frequently Asked Questions]] - also from the ASH wiki
[[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:41, 21 July 2026 (UTC)
: {{keep|weak keep}} a) Age is no argument. There are many stale underdeveloped books I would rather delete than keeping around. b) The book’s topic is exceptionally difficult to write about. ''This'' impedes collaborative authoring. c) The book does not really explain ''how'' to commit suicide (like a step‐by‐step guide), neither is it the book’s learning objective. d) Even if ''you construed'' the chapter summarizing various suicide methods ''as instructions'', instructional material on how to commit suicide ''is'' an educational topic. In most ''present‐day societies'' it is not ''ethical'' to teach students how to commit suicide, though. e) Therefore the correct path is to first alter the [[WB:WIW#Wikibooks includes instructional texts|project scope]] to censor books on ethical grounds ''and then'' nominate the book for censorship. ‑‑[[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|discuss]] • [[Special:Contributions/Kai Burghardt|contribs]]) 04:50, 28 July 2026 (UTC)
::Re. c: most of the explicit directions were edited out in 2020, as noted in my nomination, but are still visible in page history. For a couple of explicit examples, see e.g. [[Special:Permalink/3318613]] or [[Special:Permalink/3654645]]. Providing specific instructions was the original intent of this book, and it has never escaped that legacy. If someone were interested in writing a book ''about'' the phenomenon of suicide, they would be better off starting afresh. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 05:26, 28 July 2026 (UTC)
*'''Delete all'''. ―[[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:17, 28 July 2026 (UTC)
*:why? [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 15:49, 19 September 2026 (UTC)
* '''Delete all''' per the nomination above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:17, 30 July 2026 (UTC)
* '''Keep''' with caution. Rename to "suicide prevention"?--[[User:TunnelESON|TunnelESON]] ([[User talk:TunnelESON|discuss]] • [[Special:Contributions/TunnelESON|contribs]]) 04:03, 2 September 2026 (UTC)
*:Re. the rename: absolutely not. There is no content in the book about suicide prevention. If you are interested in writing a book on that topic, please start a new one. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 5 September 2026 (UTC)
:{{keep}} -
:1. "instructional material on how to commit suicide is not an educational topic" - I think it can be construed as one depending on the person (and does not have to imply that the person is at risk)
:2. Not a reason.
:3. Not a reason. It is up to the community to decide whether to accept a banned user's work. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 13:37, 6 September 2026 (UTC)
== [[Chess Opening Theory/1. g4/1...Na6]] ==
{{closed|Deleted. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 15:32, 22 September 2026 (UTC)}}
Nonsense position, one of the worst opening moves for White countered by a move hurting development for Black. [https://www.365chess.com/search_position.php Searching] on 365chess.com finds zero games with this position. See also a similar [[Wikibooks:Requests for deletion/Chess Opening Theory/1. e4/1...e5/2. Na3]]. [[User:1234qwer1234qwer4|𝟙𝟤𝟯𝟺𝐪𝑤𝒆𝓇𝟷𝟮𝟥𝟜𝓺𝔴𝕖𝖗𝟰]] ([[User talk:1234qwer1234qwer4|𝗍𝗮𝘭𝙠]]) 02:20, 13 September 2026 (UTC)
:{{vd}} With some reservations, in that just being a bad move doesn't make it ''not'' a strategy. That said, the lack of actual game presence means it's unnecessary to keep around. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 16:16, 14 September 2026 (UTC)
{{end closed}}
== [[Art And AI]] ==
Suspected rampant LLM use; this also seems to violate [[WB:BLOG]] and [[WB:SOURCE]], since this seems largely like personal research/personal essays and opinions. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 14:25, 17 September 2026 (UTC)
:{{vd}} - as a book, this isn't even particularly coherent. For instance, chapters like [[Art And AI/Tools Of The Artist]] have no clear relationship to the intended topic. And the chapters which do address the topic, like [[Art And AI/Can AIs Go On Strike]], certainly seem more like an opinion piece (if not outright fantasy content) than serious material appropriate for an instructional text. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:03, 18 September 2026 (UTC)
:{{vd}}, does not fit this project and appears to be LLM-generated. No useful content. [[User:Ternera|Ternera]] ([[User talk:Ternera|discuss]] • [[Special:Contributions/Ternera|contribs]]) 15:13, 19 September 2026 (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)
== [[Wikijunior:Alphabet of Wikibooks]] ==
I do not know whether this page is useful or not, due to [[Wikijunior:Alphabet]] already existing. I would support the deletion of this given that it contains many red links as well. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 01:41, 23 September 2026 (UTC)
:{{vd}} - As proposer. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 01:42, 23 September 2026 (UTC)
:{{vd}} - we already have a book on this topic. And no, "Afghanistan" and "Quagga" are not good example words for children. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 07:55, 23 September 2026 (UTC)
== [[Active Directory Security and Penetration Testing]] ==
I have high confidence that this book was created using a genAI LLM (see flags on individual pages). I will plan to delete this in, say, a week, but I'm popping over here to allow for discussion if needed. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 15:32, 24 September 2026 (UTC)
:{{vd}}- advertisement for a Python tool disguised as a book. No useful content. [[User:Ternera|Ternera]] ([[User talk:Ternera|discuss]] • [[Special:Contributions/Ternera|contribs]]) 19:56, 24 September 2026 (UTC)
ilu45ep2tdfgv4urxdy6y3xg859aymj
4672236
4672210
2026-09-24T22:41:52Z
TechVindicator
3626296
/* Active Directory Security and Penetration Testing */ my opinion
4672236
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)
== [[Objective Projection: Why the Brain Never Forgets Some Stories]] ==
Undisclosed AI-generated content. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 02:13, 9 May 2026 (UTC)
:<nowiki>'''Keep'''</nowiki> — Comment from page author/subject expert.
:I am Levent Bulut, the originator of the <nowiki>''</nowiki>Objective Projection<nowiki>''</nowiki> methodology described in this book (ORCID: 0009-0007-7500-2261, Wikidata: Q138048287). I want to address the AI-generated content concern directly and transparently.
:<nowiki>'''</nowiki>On the content itself:<nowiki>'''</nowiki> The methodology, theoretical framework (the six-variable operator E(r) = projS(M, T, V, Δ, Ω, Ng), the Six Golden Rules, the Six-Layer Framework), and all original arguments are my own intellectual work, developed and published independently. This is documented through:
:* 26 DOI-registered academic publications on Zenodo (search: "Levent Bulut Objective Projection")
:* A peer-reviewed submission currently under review at <nowiki>''</nowiki>Digital Humanities Quarterly<nowiki>''</nowiki>
:* Parallel Turkish-language Wikibook and Wikiversity pages on the same methodology
:* An open-source SFT dataset on Hugging Face (leventbulut/objective-projection)
:<nowiki>'''</nowiki>On AI assistance:<nowiki>'''</nowiki> I used AI tools (Claude) for English translation polish and copy-editing from my Turkish source materials — the same way a non-native English-speaking academic would use a human translator or editor. The <nowiki>''</nowiki>ideas, structure, terminology, citations, and arguments<nowiki>''</nowiki> are entirely my own and pre-date the Wikibooks version, traceable through Zenodo DOI timestamps starting in 2025.
:<nowiki>'''</nowiki>Proposed remedy instead of deletion:<nowiki>'''</nowiki> I am happy to:
:# Add a clear AI-assistance disclosure to the book's preface, per Wikibooks transparency norms
:# Add inline citations to the underlying DOI-registered publications for every major claim
:# Link to the parallel Turkish version and academic record
:This would address the <nowiki>''</nowiki>undisclosed<nowiki>''</nowiki> part of the concern (which is the actionable policy issue) while preserving content that is original academic work by an identifiable author with a published track record. Deletion of original scholarship because translation assistance was used would set a concerning precedent for non-native English contributors.
:<nowiki>I request a few days to add the disclosure and citations before any deletion action. ~~~~</nowiki> [[Special:Contributions/~2026-28847-60|~2026-28847-60]] ([[User talk:~2026-28847-60|talk]]) 18:46, 13 May 2026 (UTC)
::Administrative assistance needed: Automated filters blocking structural improvements and disclosures
::'''Request for Help''' — I am Levent Bulut, the author of this book. I have already provided my AI disclosure and academic credentials (ORCID, DOI list) here in this discussion.
::I am trying to update the book to comply with Wikibooks standards by:
::Adding a formal '''AI assistance disclosure''' at the top of the page.
::Restructuring the content into an '''instructional textbook format''' (adding Learning Objectives).
::Converting plain text formulas into '''LaTeX''' ( format).
::Updating references to include full academic '''DOI''' records.
::However, the automated filter is blocking all my attempts:
::If I try to replace the content with the improved version, it triggers the '''"large amount of content removal"''' filter.
::If I try to add specific academic links, it triggers the '''"automated link/spam"''' filter.
::I am essentially trapped by the filters while trying to improve the book and follow transparency norms. Could an administrator please either whitelist my account or manually apply the improved version of the text? I am ready to provide the full MediaWiki code here if requested. My intent is purely constructive and academic. [[Special:Contributions/~2026-28847-60|~2026-28847-60]] ([[User talk:~2026-28847-60|talk]]) 19:15, 13 May 2026 (UTC)
::: Hi, @[[User:~2026-28847-60|~2026-28847-60]]. Your account was incorrectly locked by a steward. It is now currently unlocked. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:44, 15 May 2026 (UTC)
:::: Pinging @[[User:Projection Architect|Projection Architect]], who was previously LeventBulut. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:51, 4 July 2026 (UTC)
::Please review [[Wikibooks:Artificial intelligence]]. It states unequivocally that {{tq|LLMs may not be used to generate or summarize material and ideas at Wikibooks}}, and that {{tq|translations made by LLMs are not allowed on Wikibooks}}. The fact that you did not disclose your usage of AI is part of the problem, but disclosing it does not make it allowable either.
::More broadly, based on what you've said above, the content of this book is a reflection of your personal theories on writing. This is essentially [[Wikibooks:Original research]] and is not permitted. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:36, 13 May 2026 (UTC)
== [[Suicide]] ==
I realize this book has been nominated for deletion before ([[Wikibooks:Requests for deletion/Suicide|1]], [[Wikibooks:Requests for deletion/Suicide (2)|2]], [[Wikibooks:Requests for deletion/Suicide/Suffocation|3]]), but it's been over ten years since the last nomination. The project's position on what material is in its educational scope has shifted, as have some of the facts on the ground.
* The chartered purpose of Wikibooks is to produce "open-content textbooks" (cf. [[Wikibooks:What is Wikibooks?]]) which are suitable for use in an instructional environment. Providing educational information about suicide in the context of psychiatry could certainly be in scope, as psychiatry is an educational topic; however, instructional material on how to commit suicide is not an educational topic, and should not be considered in scope.
* This book is, and has always been, primarily intended as an instructional work guiding users on how to commit suicide. It provides effectively no meaningful analytical content ''about'' suicide as a topic. Most of the original content in the book was imported from an early-2000s wiki associated with the <code>alt.suicide.holiday</code> Usenet group, the "ASH wiki", which was specifically and unequivocally dedicated to describing and recommending methods by which readers could commit suicide, and this has carried through to the current version of the book.
* Most of the content in the book was removed in 2020 (by redirecting it to the book's main page, e.g. [[Special:Diff/3660495]]) over concerns that it was created by a WMF-banned user ([[User:Leucosticte]]), and because it was likely in violation of the ASH wiki's (unclear) copyright. These changes removed most of the content of the book; much of what remains is image gallery pages like [[Suicide/Blades]] which have no educational value.
Suicide is a sensitive topic; if it is covered by a textbook, it should be covered tastefully and with an aim to educate. This book is largely the opposite of that. Having it here is doing more harm than good.
If this book is deleted, the following related pages should be deleted as well:
* [[Template:Suicide methods]]
* [[Template:Infobox suicide method]] (currently unused)
* [[User:Leucosticte/About ASH]] - from the ASH wiki, as mentioned above
* [[User:Leucosticte/Frequently Asked Questions]] - also from the ASH wiki
[[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:41, 21 July 2026 (UTC)
: {{keep|weak keep}} a) Age is no argument. There are many stale underdeveloped books I would rather delete than keeping around. b) The book’s topic is exceptionally difficult to write about. ''This'' impedes collaborative authoring. c) The book does not really explain ''how'' to commit suicide (like a step‐by‐step guide), neither is it the book’s learning objective. d) Even if ''you construed'' the chapter summarizing various suicide methods ''as instructions'', instructional material on how to commit suicide ''is'' an educational topic. In most ''present‐day societies'' it is not ''ethical'' to teach students how to commit suicide, though. e) Therefore the correct path is to first alter the [[WB:WIW#Wikibooks includes instructional texts|project scope]] to censor books on ethical grounds ''and then'' nominate the book for censorship. ‑‑[[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|discuss]] • [[Special:Contributions/Kai Burghardt|contribs]]) 04:50, 28 July 2026 (UTC)
::Re. c: most of the explicit directions were edited out in 2020, as noted in my nomination, but are still visible in page history. For a couple of explicit examples, see e.g. [[Special:Permalink/3318613]] or [[Special:Permalink/3654645]]. Providing specific instructions was the original intent of this book, and it has never escaped that legacy. If someone were interested in writing a book ''about'' the phenomenon of suicide, they would be better off starting afresh. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 05:26, 28 July 2026 (UTC)
*'''Delete all'''. ―[[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:17, 28 July 2026 (UTC)
*:why? [[Special:Contributions/~2026-40500-29|~2026-40500-29]] ([[User talk:~2026-40500-29|talk]]) 15:49, 19 September 2026 (UTC)
* '''Delete all''' per the nomination above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:17, 30 July 2026 (UTC)
* '''Keep''' with caution. Rename to "suicide prevention"?--[[User:TunnelESON|TunnelESON]] ([[User talk:TunnelESON|discuss]] • [[Special:Contributions/TunnelESON|contribs]]) 04:03, 2 September 2026 (UTC)
*:Re. the rename: absolutely not. There is no content in the book about suicide prevention. If you are interested in writing a book on that topic, please start a new one. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 5 September 2026 (UTC)
:{{keep}} -
:1. "instructional material on how to commit suicide is not an educational topic" - I think it can be construed as one depending on the person (and does not have to imply that the person is at risk)
:2. Not a reason.
:3. Not a reason. It is up to the community to decide whether to accept a banned user's work. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 13:37, 6 September 2026 (UTC)
== [[Chess Opening Theory/1. g4/1...Na6]] ==
{{closed|Deleted. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 15:32, 22 September 2026 (UTC)}}
Nonsense position, one of the worst opening moves for White countered by a move hurting development for Black. [https://www.365chess.com/search_position.php Searching] on 365chess.com finds zero games with this position. See also a similar [[Wikibooks:Requests for deletion/Chess Opening Theory/1. e4/1...e5/2. Na3]]. [[User:1234qwer1234qwer4|𝟙𝟤𝟯𝟺𝐪𝑤𝒆𝓇𝟷𝟮𝟥𝟜𝓺𝔴𝕖𝖗𝟰]] ([[User talk:1234qwer1234qwer4|𝗍𝗮𝘭𝙠]]) 02:20, 13 September 2026 (UTC)
:{{vd}} With some reservations, in that just being a bad move doesn't make it ''not'' a strategy. That said, the lack of actual game presence means it's unnecessary to keep around. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 16:16, 14 September 2026 (UTC)
{{end closed}}
== [[Art And AI]] ==
Suspected rampant LLM use; this also seems to violate [[WB:BLOG]] and [[WB:SOURCE]], since this seems largely like personal research/personal essays and opinions. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 14:25, 17 September 2026 (UTC)
:{{vd}} - as a book, this isn't even particularly coherent. For instance, chapters like [[Art And AI/Tools Of The Artist]] have no clear relationship to the intended topic. And the chapters which do address the topic, like [[Art And AI/Can AIs Go On Strike]], certainly seem more like an opinion piece (if not outright fantasy content) than serious material appropriate for an instructional text. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:03, 18 September 2026 (UTC)
:{{vd}}, does not fit this project and appears to be LLM-generated. No useful content. [[User:Ternera|Ternera]] ([[User talk:Ternera|discuss]] • [[Special:Contributions/Ternera|contribs]]) 15:13, 19 September 2026 (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)
== [[Wikijunior:Alphabet of Wikibooks]] ==
I do not know whether this page is useful or not, due to [[Wikijunior:Alphabet]] already existing. I would support the deletion of this given that it contains many red links as well. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 01:41, 23 September 2026 (UTC)
:{{vd}} - As proposer. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 01:42, 23 September 2026 (UTC)
:{{vd}} - we already have a book on this topic. And no, "Afghanistan" and "Quagga" are not good example words for children. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 07:55, 23 September 2026 (UTC)
== [[Active Directory Security and Penetration Testing]] ==
I have high confidence that this book was created using a genAI LLM (see flags on individual pages). I will plan to delete this in, say, a week, but I'm popping over here to allow for discussion if needed. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 15:32, 24 September 2026 (UTC)
:{{vd}}- advertisement for a Python tool disguised as a book. No useful content. [[User:Ternera|Ternera]] ([[User talk:Ternera|discuss]] • [[Special:Contributions/Ternera|contribs]]) 19:56, 24 September 2026 (UTC)
:{{vd}}- per [[User:Ternera|Ternera]]. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 22:41, 24 September 2026 (UTC)
gg44b4ku42pdfuiqox6jlijhy73fuod
Discrete Mathematics/Introduction
0
405
4672160
3290281
2026-09-24T15:31:15Z
R. Henrik Nilsson
3395618
commited > committed
4672160
wikitext
text/x-wiki
{{Navigation|next=Set theory}}
The subject of mathematics is committed to rigorous reasoning. This book aims to raise your confidence in the manipulation and interpretation of formal notations, as well as to train you to solve problems that are fundamentally discrete: problems like chess, in which the moves you make are exact; problems where fields like [[calculus]] fail because there's no continuity; problems that appear frequently in games, puzzles, and computer science.
We hope you'll enjoy discovering discrete mathematics here, and we hope you'll find this a good reference for quickly picking up the details you may forget.
{{Navigation|next=Set theory}}
----
<small>Notice to contributors: If you wish to contribute images of any kind that contains labels, please use the Arial font, italic, at 16pts for consistency.</small>
{{BookCat}}
2ap0ins3rs7h450n68nzbasoq6vbjoo
Modern Greek
0
3157
4672221
4460308
2026-09-24T22:06:45Z
It-is-Truly-Meet
3624460
There were too many images, so they all didn't fit on the standard webpage width.
4672221
wikitext
text/x-wiki
{{Category 3}}
Welcome to the '''Modern Greek''' WikiBook! This book is aimed at teaching from absolute beginners to advanced. It is a work in progress and is currently undergoing major restructuring - please see the discussion page or [[/Restructuring|the restructuring page]], please consider helping the project by contributing.
{{NoteBox|This book is for Modern Greek, for Ancient Greek, click [[Ancient Greek|here]], for Koine (Biblical) Greek, click [[Koine Greek|here]].}}
{{Multiple image
|image1=Flag of Greece.svg
|image2=THES Panaghia Chalkeon 5944.JPG
|image3=Paros Parikia3 tango7174.jpg
|image4=Rhodes Tsambika3 tango7174.jpg
|image5=Greece meteora monasteries.JPG}}
{{NOTE|To use this book, your web browser must first be configured to display Greek characters. If the following characters appear as blank boxes or garbage, it is not properly configured.
Εδώ πρέπει να φαίνονται οι Ελληνικοί χαρακτήρες!}}
== Lesson 1 - Alphabet and Reading ==
* [[/Lesson 01.1|Lesson 1.1: Letters α, ι, κ, ο, τ, and κ]]
* [[/Lesson 01.2|Lesson 1.2: Letters ν, μ, ε, and λ]]
* [[/Lesson 01.3|Lesson 1.3: Letters π, σ, and δ]]
* [[/Lesson 01.4|Lesson 1.4: Letters η, υ, ω, and β]]
* [[/Lesson 01.5|Lesson 1.5: Letters φ, ζ, and γ]]
* [[/Lesson 01.6|Lesson 1.6: Letters θ, χ, ξ, and ψ]]
* [[/Lesson 01.7|Lesson 1.7: Alphabet review]]
== Lesson 2 - Useful Phrases ==
* [[/Lesson 02.1|Lesson 2.1: Common phrases]]
* [[/Lesson 02.2|Lesson 2.2: Greetings]]
== Lesson 3 - Gender of Nouns and Cases ==
* [[/Lesson 03.1|Lesson 3.1: Introduction to Cases]]
* [[/Lesson 03.2|Lesson 3.2: Gender of Nouns]]
* [[/Lesson 03.3|Lesson 3.3: Pronouns]]
== Lesson 4 - Present Tense Verbs ==
* [[/Lesson 04.1|Lesson 4.1: To Be and To Have]]
* [[/Lesson 04.2|Lesson 4.2: First Conjugation (Type I)]]
* [[/Lesson 04.3|Lesson 4.3: Second Conjugation (Type IIA and IIB)]]
* [[/Lesson 04.4|Lesson 4.4: First Conjugation (Passive Only)]]
* [[/Lesson 04.5|Lesson 4.5: Second Conjugation (Passive Only)]]
== Lesson 5 - Sample Dialogues ==
* [[/Lesson 05.1|Lesson 5.1: Greetings revisited, names and nationalities]]
* [[/Lesson 05.2|Lesson 5.2: "Can you repeat that, please?"]]
* [[/Lesson 05.3|Lesson 5.3: The question words]]
* [[/Lesson 05.4|Lesson 5.4: Getting Directions]]
* [[/Lesson 05.5|Lesson 5.5: Notes on sentence structure]]
== Lesson 6 - Numbers, Time and Date ==
* [[/Lesson 06.1|Lesson 6.1: 1-10]]
* [[/Lesson 06.2|Lesson 6.2: 11-100]]
* [[/Lesson 06.3|Lesson 6.3: 100+]]
* [[/Lesson 06.4|Lesson 6.4: Time]]
* [[/Lesson 06.5|Lesson 6.5: Days/Months]]
== Lesson 7 - Some more grammar ==
* [[/Lesson 07.1|Lesson 7.1: Present Tense Irregular Verbs]]
* [[/Lesson 07.2|Lesson 7.2: Prepositions]]
* [[/Lesson 07.3|Lesson 7.3: Comparative and Superlative]]
* [[/Lesson 07.4|Lesson 7.4: "I need" and "I must"]]
* [[/Lesson 07.5|Lesson 7.5: "I think" and more adjectives]]
* [[/Lesson 07.6|Lesson 7.6: "υπάρχω"]]
== Lesson 8 - Sample Dialogues II ==
* [[/Lesson 08.1|Lesson 8.1: Meeting the family]]
* [[/Lesson 08.2|Lesson 8.2: Buying something]]
* [[/Lesson 08.3|Lesson 8.3: "Where can I find?" and directions]]
* [[/Lesson 08.4|Lesson 8.4: Eating and Drinking in Greece]]
* [[/Lesson 08.5|Lesson 8.5: Days/Months Part II]]
== Lesson 9 - Past Tense ==
* [[/Lesson 09.1|Lesson 9.1: Imperfect (Past Continuous) Tense]]
* [[/Lesson 09.2|Lesson 9.2: Simple Past (Aorist) Tense]]
* [[/Lesson 09.3|Lesson 9.3: Past Perfect Tense]]
* [[/Lesson 09.4|Lesson 9.4: Past είμαι and έχω]]
== Lesson 10 - Future Tense ==
* [[/Lesson 10.1|Lesson 10.1: Simple Future]]
* [[/Lesson 10.2|Lesson 10.2: Continuous Future]]
* [[/Lesson 10.3|Lesson 10.3: Future Perfect]]
== Lesson 11 - More Tenses and Grammar ==
* [[/Lesson 11.1|Lesson 11.1: Subjunctive]]
* [[/Lesson 11.2|Lesson 11.2: Imperative]]
* [[/Lesson 11.3|Lesson 11.3: Passive Verbs]]
== Lesson 12 - Sample Dialogues III ==
* [[/Lesson 12.1|Lesson 12.2: My Holidays]]
* [[/Lesson 12.2|Lesson 12.2: At the Doctors]]
== Appendix A - Vocabulary Lists ==
* [[/Vocab Family|Vocabulary 1: Family]]
* [[/Vocab Professions|Vocabulary 2: Professions]]
* [[/Vocab Food|Vocabulary 3: Food]]
* [[/Vocab Clothing|Vocabulary 4: Clothing]]
* [[/Vocab Body|Vocabulary 5: Body]]
* [[/Vocab House|Vocabulary 6: In the house]]
* [[/Vocab Town|Vocabulary 7: Around Town]]
* [[/Vocab Colours|Vocabulary 8: Colours]]
* [[/Vocab Weather|Vocabulary 9: Weather]]
* [[/Vocab Countryside|Vocabulary 10: Countryside]]
== Appendix B - Grammar Summary ==
* [[/Grammar Summary/Grammar 1|Grammar Summary 1: List of Tenses]]
* [[/Grammar Summary/Grammar 2|Grammar Summary 2: About Nouns]]
* [[/Grammar Summary/Grammar 3|Grammar Summary 3: The Prepositions and the Conjuctions]]
* [[/Grammar Summary/Grammar 4|Grammar Summary 4: Syntax Notes]]
* [[/Grammar Summary/Grammar 8|Grammar Summary 8: Grammar Glossary]]
* [[/Grammar Summary/Grammar 9|Grammar Summary 9: Verb Tables]]
== Appendix C - Reading Exercises ==
* [[/Reading Exercises/Reading 01|Reading 01]]
* [[/Reading Exercises/Reading 02|Reading 02]]
* [[/Reading Exercises/Reading 03|Reading 03]]
* [[/Reading Exercises/Reading 04|Reading 04]]
== Credits ==
* [[Modern Greek/Credits|Credits, legal, and licensing information for materials used from third-party sources]]
{{Shelves|Greek language}}
{{alphabetical|M}}
{{status|75%}}
[[bg:Гръцки език]]
[[de:Neugriechisch]]
[[es:Griego/Introducción]]
[[fr:Grec]]
[[ko:현대 그리스어 입문]]
[[he:יוונית מודרנית]]
[[nl:Nieuwgrieks]]
[[ja:ギリシア語]]
[[pt:Grego moderno]]
[[ro:Greacă]]
[[uk:Мова людства/Грецька]]
[[zh:希腊语]]
[[si:නවීන ග්රීක භාෂාව]]
lmiv6hgzof3kklj5ry1zeciro28tgkc
4672257
4672221
2026-09-25T02:47:43Z
It-is-Truly-Meet
3624460
/* Appendix A - Vocabulary Lists */
4672257
wikitext
text/x-wiki
{{Category 3}}
Welcome to the '''Modern Greek''' WikiBook! This book is aimed at teaching from absolute beginners to advanced. It is a work in progress and is currently undergoing major restructuring - please see the discussion page or [[/Restructuring|the restructuring page]], please consider helping the project by contributing.
{{NoteBox|This book is for Modern Greek, for Ancient Greek, click [[Ancient Greek|here]], for Koine (Biblical) Greek, click [[Koine Greek|here]].}}
{{Multiple image
|image1=Flag of Greece.svg
|image2=THES Panaghia Chalkeon 5944.JPG
|image3=Paros Parikia3 tango7174.jpg
|image4=Rhodes Tsambika3 tango7174.jpg
|image5=Greece meteora monasteries.JPG}}
{{NOTE|To use this book, your web browser must first be configured to display Greek characters. If the following characters appear as blank boxes or garbage, it is not properly configured.
Εδώ πρέπει να φαίνονται οι Ελληνικοί χαρακτήρες!}}
== Lesson 1 - Alphabet and Reading ==
* [[/Lesson 01.1|Lesson 1.1: Letters α, ι, κ, ο, τ, and κ]]
* [[/Lesson 01.2|Lesson 1.2: Letters ν, μ, ε, and λ]]
* [[/Lesson 01.3|Lesson 1.3: Letters π, σ, and δ]]
* [[/Lesson 01.4|Lesson 1.4: Letters η, υ, ω, and β]]
* [[/Lesson 01.5|Lesson 1.5: Letters φ, ζ, and γ]]
* [[/Lesson 01.6|Lesson 1.6: Letters θ, χ, ξ, and ψ]]
* [[/Lesson 01.7|Lesson 1.7: Alphabet review]]
== Lesson 2 - Useful Phrases ==
* [[/Lesson 02.1|Lesson 2.1: Common phrases]]
* [[/Lesson 02.2|Lesson 2.2: Greetings]]
== Lesson 3 - Gender of Nouns and Cases ==
* [[/Lesson 03.1|Lesson 3.1: Introduction to Cases]]
* [[/Lesson 03.2|Lesson 3.2: Gender of Nouns]]
* [[/Lesson 03.3|Lesson 3.3: Pronouns]]
== Lesson 4 - Present Tense Verbs ==
* [[/Lesson 04.1|Lesson 4.1: To Be and To Have]]
* [[/Lesson 04.2|Lesson 4.2: First Conjugation (Type I)]]
* [[/Lesson 04.3|Lesson 4.3: Second Conjugation (Type IIA and IIB)]]
* [[/Lesson 04.4|Lesson 4.4: First Conjugation (Passive Only)]]
* [[/Lesson 04.5|Lesson 4.5: Second Conjugation (Passive Only)]]
== Lesson 5 - Sample Dialogues ==
* [[/Lesson 05.1|Lesson 5.1: Greetings revisited, names and nationalities]]
* [[/Lesson 05.2|Lesson 5.2: "Can you repeat that, please?"]]
* [[/Lesson 05.3|Lesson 5.3: The question words]]
* [[/Lesson 05.4|Lesson 5.4: Getting Directions]]
* [[/Lesson 05.5|Lesson 5.5: Notes on sentence structure]]
== Lesson 6 - Numbers, Time and Date ==
* [[/Lesson 06.1|Lesson 6.1: 1-10]]
* [[/Lesson 06.2|Lesson 6.2: 11-100]]
* [[/Lesson 06.3|Lesson 6.3: 100+]]
* [[/Lesson 06.4|Lesson 6.4: Time]]
* [[/Lesson 06.5|Lesson 6.5: Days/Months]]
== Lesson 7 - Some more grammar ==
* [[/Lesson 07.1|Lesson 7.1: Present Tense Irregular Verbs]]
* [[/Lesson 07.2|Lesson 7.2: Prepositions]]
* [[/Lesson 07.3|Lesson 7.3: Comparative and Superlative]]
* [[/Lesson 07.4|Lesson 7.4: "I need" and "I must"]]
* [[/Lesson 07.5|Lesson 7.5: "I think" and more adjectives]]
* [[/Lesson 07.6|Lesson 7.6: "υπάρχω"]]
== Lesson 8 - Sample Dialogues II ==
* [[/Lesson 08.1|Lesson 8.1: Meeting the family]]
* [[/Lesson 08.2|Lesson 8.2: Buying something]]
* [[/Lesson 08.3|Lesson 8.3: "Where can I find?" and directions]]
* [[/Lesson 08.4|Lesson 8.4: Eating and Drinking in Greece]]
* [[/Lesson 08.5|Lesson 8.5: Days/Months Part II]]
== Lesson 9 - Past Tense ==
* [[/Lesson 09.1|Lesson 9.1: Imperfect (Past Continuous) Tense]]
* [[/Lesson 09.2|Lesson 9.2: Simple Past (Aorist) Tense]]
* [[/Lesson 09.3|Lesson 9.3: Past Perfect Tense]]
* [[/Lesson 09.4|Lesson 9.4: Past είμαι and έχω]]
== Lesson 10 - Future Tense ==
* [[/Lesson 10.1|Lesson 10.1: Simple Future]]
* [[/Lesson 10.2|Lesson 10.2: Continuous Future]]
* [[/Lesson 10.3|Lesson 10.3: Future Perfect]]
== Lesson 11 - More Tenses and Grammar ==
* [[/Lesson 11.1|Lesson 11.1: Subjunctive]]
* [[/Lesson 11.2|Lesson 11.2: Imperative]]
* [[/Lesson 11.3|Lesson 11.3: Passive Verbs]]
== Lesson 12 - Sample Dialogues III ==
* [[/Lesson 12.1|Lesson 12.2: My Holidays]]
* [[/Lesson 12.2|Lesson 12.2: At the Doctors]]
== Appendix A - Vocabulary Lists ==
* [[/Vocab Family|Vocabulary 1: Family]]
* [[/Vocab Professions|Vocabulary 2: Professions]]
* [[/Vocab Food|Vocabulary 3: Food]]
* [[/Vocab Clothing|Vocabulary 4: Clothing]]
* [[/Vocab Body|Vocabulary 5: Body]]
* [[/Vocab House|Vocabulary 6: In the house]]
* [[/Vocab Town|Vocabulary 7: Around Town]]
* [[/Vocab Colours|Vocabulary 8: Colours]]
* [[/Vocab Weather|Vocabulary 9: Weather]]
* [[/Vocab Countryside|Vocabulary 10: Countryside]]
* [[/Vocab Church|Vocabulary 11: Church]]
== Appendix B - Grammar Summary ==
* [[/Grammar Summary/Grammar 1|Grammar Summary 1: List of Tenses]]
* [[/Grammar Summary/Grammar 2|Grammar Summary 2: About Nouns]]
* [[/Grammar Summary/Grammar 3|Grammar Summary 3: The Prepositions and the Conjuctions]]
* [[/Grammar Summary/Grammar 4|Grammar Summary 4: Syntax Notes]]
* [[/Grammar Summary/Grammar 8|Grammar Summary 8: Grammar Glossary]]
* [[/Grammar Summary/Grammar 9|Grammar Summary 9: Verb Tables]]
== Appendix C - Reading Exercises ==
* [[/Reading Exercises/Reading 01|Reading 01]]
* [[/Reading Exercises/Reading 02|Reading 02]]
* [[/Reading Exercises/Reading 03|Reading 03]]
* [[/Reading Exercises/Reading 04|Reading 04]]
== Credits ==
* [[Modern Greek/Credits|Credits, legal, and licensing information for materials used from third-party sources]]
{{Shelves|Greek language}}
{{alphabetical|M}}
{{status|75%}}
[[bg:Гръцки език]]
[[de:Neugriechisch]]
[[es:Griego/Introducción]]
[[fr:Grec]]
[[ko:현대 그리스어 입문]]
[[he:יוונית מודרנית]]
[[nl:Nieuwgrieks]]
[[ja:ギリシア語]]
[[pt:Grego moderno]]
[[ro:Greacă]]
[[uk:Мова людства/Грецька]]
[[zh:希腊语]]
[[si:නවීන ග්රීක භාෂාව]]
2v3nlyeh7t2cq1llg3rcle5xvi4ggme
Aros/Developer/Docs
0
13107
4672200
4671569
2026-09-24T18:18:14Z
Jeff1138
301139
4672200
wikitext
text/x-wiki
{{ArosNav}}
==A technical overview of AROS==
Google translation [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs French], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Hindi], [http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Chinese],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Russian],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pt&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Portuguese]
{{Uncited}}
AROS,<ref>[http://aros.sourceforge.net/download.php References and sources]</ref> like AmigaOS (TM), is a [[w:Message passing|message-passing]], [[w:Preemption (computing)|preemptive]] [[w:Multitasking|multitasking]] [[w:Operating system|OS]].
It uses [[w:Reentrant (subroutine)|re-entrant]] shared libraries to save memory space.
AROS is based around an executive library kernel (Exec) and two other libraries:
* Exec (the "kernel", which is not a kernel in the modern sense),
* Intuition (graphics and GUI, integrated into the system) and
* AmigaDOS (Disk Operating System, the Metacomco's Tripos modified to work with Exec).
The design philosophies of AmigaDOS and Intuition are rather different, the former adopting a C-like API and the latter creating an [http://www.basden.demon.co.uk/amiga/amiga.oo.html object-oriented], message passing aware environment for the programmer. The system base is the only absolute address in AmigaOS (located at 0x00000004) this does differ with AROS as AROS SysBase is automatically provided (no $4) but everything else is dynamically loaded. The OS is well known for delivering high performance due to its close connections with the hardware, while simultaneously having the flexibility to support re-targetable graphics (Cybergraphics) and retargetable audio subsystems (AHI).
: Diagram showing relationships of libraries to system needed
Remember, AROS is a [http://en.wikibooks.org/wiki/Aros/Developer/ABIv1 research] operating system, and while all contributions to the base AROS code are welcome, please contact the dev list first for any core changes. Writing applications for AROS does not have this requirement.
While AROS appears and feels almost feature complete, it is still [[Aros/Developer/IncompleteAPIs|missing a small number of functions]] from the Amiga API.
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1201 This thread provides] information for setup, [http://www.aros.org/documentation/developers/index.php documentation] and whether you are interested in core OS changes and/or writing/porting software apps
*you compile directly under AROS, which can be running on either real hardware, virtual hardware
*in hosted mode under linux/window, cross-compile from that host OS (save your files as ISO-8859-15 encoding instead of UTF-8) [https://github.com/BlitterStudio/aros-compiler-docker Docker images]
'''The repository''' for 64bit and 32bit ABIv1 all hardware platforms is [https://github.com/aros-development-team/AROS current development version].
There are many forks of this so that developers can work on their own and forward changes at a later date as discussed on the dev forum
64bit PC is one of two hardware platform with another fork called [https://github.com/deadwood2/AROS abiv11] which is used for Aros One x64 PC
32bit PC is the other fork [https://github.com/deadw00d/AROS/tree/alt-abiv0 repository for current stable PC version ABIv0 with backported ABIv1 features is located which is used on AROS One and Icaros x86 32bit based distros] this is for historic reasons
Any [https://github.com/aros-development-team/AROS/issues bugs / issues can be added for ABIv1 issues]. The two individual PC forks have their own issues tab on their github webpages
We have a [https://arosdevteam.slack.com/archives/CUFV48U3H slack here], discord on [https://discord.gg/UKp9qdEBuQ Discord@AmigaDev],
==Software Development for AROS==
===Programming languages===
====Common to all====
'The Developer Environment', which primarily supports C/C++ code, there are other scripting programming languages available
:[[Aros/User/DOS|DOS]]
:[[Aros/Developer/Docs/LUA|LUA]]
:REXX [[Aros/Developer/Docs/Rexx|Regina (AROS' ARexx)]]
====Needs to be compiled/ported====
::[[Aros/Developer/Docs/LLVM|LLVM]]
::Python [ Info], [],
::[https://ae.arosworld.org/index.php?board=11.0 FreePascal FPC Aros-Exec thread], [https://archives.arosworld.org/index.php?function=browse&cat=development/language fpc arm here is very old and will not work], FreePascal for AROS has its own [http://fpcaroswiki.alb42.de/ Wikibook],
::[http://sourceforge.net/projects/xamos/ X-Amos Basic]
::[http://sdlbasic.sourceforge.net/ SDLBasic] ([https://archives.arosworld.org/index.php?function=browse&cat=development/language ])
::[[Aros/Developer/Basic/Basic4SDL|Basic4SDL]] ([https://archives.arosworld.org/index.php?function=browse&cat=development/language ])
::[http://alvyn.sourceforge.net/ Alvyn] ([http://www.dusabledanslherbe.eu/AROSPage/MISC.14.html download])
::[http://www.airsoftsoftwair.com/ Hollywood when enough users warrant a port - paid one time fee language]
::[[Aros/Developer/Docs/E|AmigaE Portable E]]
====Hardware Restricted====
'''Basic'''
:[http://amos.pspuae.com/AmosProManual/contents/c1.html '''Amos Pro'''] [http://amos.pspuae.com/index.php?action=forum#1 compatible] [http://www.amigacoding.com/index.php/Main_Page commands] (all incomplete)
:'''Blitz Basic''' [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=46537#forumpost46537 none on AROS]
:: [http://www.amiforce.de/main.php Amiblitz] on amiga(TM) emulator
:'''Amiga Basic'''
:: [ ACEBasic]
'''Misc'''
:Ruby [http://www.ruby-lang.org/en Info]/[https://archives.arosworld.org/index.php?function=browse&cat=development/language Ruby 32bit PC],
===Where to get the C/C++ Environment===
If you want to develop for AROS, its generally easier to be running linux hosted AROS development environment especially for C++, cross compiling the code. That's how most developers now are doing it. g++ is used to compile owb web browser as well as some other AROS software. If you were hoping for a rich set of C++ libraries or classes defined for the OS feature set, you might be disappointed.
AROS Native compiling is possible, but you're much more likely to run into the odd bug(s) in the dev environment since it gets little testing and fixing by other developers.
Is there a sftp software or scp over ssh available?
Maybe. At least the security part would be handled by [https://github.com/jens-maus/amissl amissl] [https://archives.arosworld.org/index.php?function=browse&cat=network/misc port]. [https://github.com/BlitterStudio/dopus5 DOpus5] has recently added sftp support. See here for a [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1974&highlight=ssh&pid=12073#post_12073 ssh scp client]
[https://arosdevteam.slack.com/join/shared_invite/enQtOTc4Mzg0NDIzNzQ0LWQ2NWZmNmMwNGIwNGEyNTgxNzU3MGFjMTk3ZThmOTQ1MTVjMzhmNTllYWQ0ZTUxMjBjMGE0Y2VjMDJmNTc5MzI#/shared-invite/email Slack Dev Forum]
====Cross compilers from Windows or Linux====
*Windows WSL2 walkthrough can be [https://arosnews.github.io/how-to-cross-compile-aros-hosted-wsl/ found here]
you want to build AROS. No problem.
Here are instructions for PC 64-bit:
https://github.com/deadw00d/AROS/blob/master/INSTALL.md
Here are instructions for PC 32-bit:
https://github.com/deadw00d/AROS/blob/alt-abiv0/INSTALL.md
And as always has been the case you can use the contrib archive to 'obtain' the development directory which contains the /native/ AROS gcc compiler and tools. That compiler is used to build AROS itself but can be used outside the AROS build process by providing --sysroot with indicated directory to cross compile for AROS.
'''64 bit'''
'''32 bit'''
A good option for multiple OS is [https://axrt.org/index.php?tab=download-aros AxRuntime lets developers compile their Amiga API-based applications as Linux binaries being able to utilize modern development tools available on Linux, like IDEs, debuggers, profilers, etc]
Older 32bit guides for Linux hosted compiler
Please install these packages before moving to next step. Below is a reference list for Debian-based distributions. Reference build system was Ubuntu 18.04/20.04 amd64.
subversion git-core gcc g++ make gawk bison flex bzip2 netpbm autoconf automake libx11-dev libxext-dev libc6-dev liblzo2-dev libxxf86vm-dev libpng-dev gcc-multilib libsdl1.2-dev byacc python-mako libxcursor-dev cmake zsh mingw64
Do all of these operations under home directory of your user or another directory where your user has write permissions.
Specifically, in a section "Linux-i386", be sure first to build the cross-compiler (toolchain-alt-abiv0-i386) and only then AROS itself (alt-abiv0-linux-i386).
Clone & build
<pre>
$ mkdir myrepo
$ cd myrepo
$ git clone https://github.com/deadw00d/AROS.git AROS
$ cd AROS
$ git checkout alt-abiv0
$ cd ..
$ cp ./AROS/scripts/rebuild.sh .
$ ./rebuild.sh
</pre>
Now to the build selection below - Linux-i386
Select toolchain-alt-abiv0-i386 - Select alt-abiv0-linux-i386 (DEBUG)
Start AROS by:
<pre>
$ cd alt-abiv0-linux-i386/bin/linux-i386/AROS
$ ./Arch/linux/AROSBootstrap
</pre>
Pc-i386 Select toolchain-alt-abiv0-i386 (if not built yet) - Select alt-abiv0-pc-i386
ISO image available in alt-abiv0-pc-i386/distfiles
Now that we have linux-hosted build, we can resume native (option 2).
Run ./rebuild.sh and selection option 2. Wait until it finished, then:
<pre>
$ cd alt-abiv0-pc-i386
$ make
</pre>
Now
<pre>
$ make bootiso
</pre>
Now, your compiler is located in toolchain-alt-abiv0-i386 directory and named i386-aros-gcc. Includes are in alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development/include and libraries are in alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development.lib.
This is how then can be passed to the compiler:
/home/xxx/toolchain-alt-abiv0-i386/i386-aros-gcc --sysroot /home/xxx/alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development -L/home/xxx/alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development/lib
../toolchain-alt-abiv0-i386/i386-aros-gcc --sysroot bin/linux-i386/AROS/Development local/helloworld/helloworld.c -o local/helloworld/helloworld
Another method was using Debian like distros and download the [https://archives.arosworld.org/index.php?function=browse&cat=development/cross gimmearos.sh script] to setup the developer environment by downloading necessary packages ... The gimmearos script is a good start in that direction, building the cross compilers and hosted AROS environment, but gimmearos.sh might be out of date or not be completely compatible with any given linux distro.
In order to do that, you have to compile AROS yourself. Download AROS source archive not contrib. Compile AROS by entering the main directory
./configure
make
([http://http://developers.aros.org/documentation/compiling.html More on compiling AROS]). The result will be a basic AROS system without development tools.
To compile C++ on Linux, type 'make gnu-contrib-crosstools', creating the cross-compilers in ./bin/linux-i386/tools/, named i386-aros-gcc, etc.
'''Note''': Currently, to make the cross compilers usable copy 'collect-aros' from tools/ to tools/i386-aros/bin/. At the moment the cross compilers if used from the Linux command line will only find it when it's there.
If you want to compile native compilers (the Developer Environment), type 'make contrib-gnu-gcc', creating native compilers in AROS' System:Development/bin directory.
When the output needs to be stripped <code>--strip-unneeded --remove-section .comment</code>
The Obj-C backend should build out of the box.
Open contrib/gnu/gcc/mmakefile.src and search for the line which contains "--enable-languages" and add "objc" to the list of languages that follows it.
--enable-languages=c,c++,objc
Better make it—enable-languages=c,c++,objc,obj-c++
ObjC++ is broken as soon as you try to use exceptions, but that might change in future GCC versions and it does not hurt having it there already.
Do you need a cross-compiler or a real compiler? In the first case you can get away with just downloading the proper gcc archive, apply the patch and proceed with the normal gcc build. In the case of a real cross-compiler then when downloading the contrib sources, also need to download the normal sources, place the contrib sources into a directory called contrib, need to install autoconf+automake+perl+python, call ./configure, cd into the subdirectory and type make.
to rebuild GCC with host == build == target == i386-pc-aros. So just get the vanilla sources and apply the patches without bothering about the build system?
[https://vmwaros.blogspot.com/2019/10/a-pre-configured-development-machine.html pre-configured VM environment vmware virtual machine to develop AROS and AROS software]
====Native compilers for AROS====
Namely gcc for C or g++ for C++ are supplied with the [[Aros/Developer/Docs#The Developer Environment|Developer Environment]], which is already '''setup''' and part of any current AROS distribution like AROS One or the nightlies
* Current GCC 6.5 (32bit) though moving to 10.5 and 15.1 (64bit)
* Older software components. GNU GCC 4.x GNU BinUtils, GNU Fileutils 4.x, GNU Textutils and others usually deprecated
On single partition systems and the Boot ISO, the AROS Developer environment is installed under "SYS:Development/". Systems with multiple partitions - such as a Work: partition - tend to install it to there instead, however it can be installed manually to any location. Please remember, if moving, that you will need to correct the Development packages 'install location' env variable to point to the new locations root - look in SYS:S/startup-sequence.
<pre>
Assign Development: SYS:Development
Assign C: Development:bin ADD
</pre>
In the aros build instructions. you need to check out contrib and/or ports into your AROS source directory, as subdirs. then, assuming you are building in an external build dir, as you should, you simply configure and "make contrib" for instance or whatever submodule you might want to build.
===Beginners Tutorials in C C++===
As AROS is [http://eab.abime.net/showthread.php?t=29856 C based] API compatible to AmigaOS 3.x, so most of the information on programming C on the Amiga applies to AROS as well. Please note that there is a lot of AmigaOS 1.3 (1985-1989) and [https://www.markround.com/amigaguide AmigaOS AOS 2.x (1990-1992)] information around but OS3.1 is recommended but limited in amount.
Brief overview of what is required to write AROS Applications
# Using [[Aros/Developer/Docs/Libraries/Intuition|Intuition]] for basic screens/windows
# Using graphics within windows via 8bit [[Aros/Developer/Docs/Libraries/Graphics|graphics]] and so onto 15-16-24bit [[Aros/Developer/Docs/Libraries/CGFX|cybergraphx]]
# Load and save work to [[Aros/Developer/Docs/Libraries/DOS|dos]] disk drives
# Using the [[Aros/Developer/Zune|ZUNE GUI Environment]]
Writing native games require this extra information
# Using [[Aros/Developer/AHIDrivers|AHI audio hardware independent API]]
# Using USB joystick/joypad with the Poseidon USB stack through [[Aros/Developer/Docs/Libraries/LowLevel|LowLevel]] library
Additional features that could be added later
# Adding additional [[Aros/Developer/Docs/Libraries/Locale|Locale]] language translations to your program
# Adding a [[Aros/Developer/Docs/Rexx|AREXX/Regina]] port to your application
# Executing Amiga(TM) [[Aros/User/DOS|DOS]] commands from your application
# Using [[Aros/Developer/Docs/Libraries/Icon|icons]] (.info files) and icon tooltypes (stack, version, and program startup options)
# Local couch or IP based SANA2 networking co-op multi player gaming support
Most AmigaOS programming books are nowadays very much out of date as most are from the late 1980s and do not cover later amigaOS releases like 3.1 for example, Rob Peck's book "Programmer's Guide to the Amiga". The Amiga ROM Kernel manuals aka RKMs like Libraries (3rd edition), Devices (), the AmigaDOS manual (3rd edition) and the Style Guide may have their uses. There are some reference examples from AmigaMail and Devcon notes (available again on an Amiga developers CD 2.1).
For Arexx then "The Amiga Programmer's Guide to ARexx" by Eric Giguere, which was published by Commodore is useful as well as an "Arexx Cookbook".
* Beginners C Guide [http://www.iu.hio.no/~mark/CTutorial/CTutorial.html C Tutorial],
* [http://www.pjhutchison.org/tutorial/amiga_c.html Amiga based but interesting]
* [http://thecguru.com/ C for beginners],
* [http://fresh2refresh.com/c/c-basic-program/ C programming basics] for students,
* [https://www.edx.org/courses Free Online course] from American Universities
* Reference Amiga [http://amigadev.elowar.com/ API reference].
* AROS based c source can be found [[Aros/Developer/Docs/Examples|here]] and lots of example code can be found inside [https://github.com/aros-development-team AROS sources] themselves and from the contrib section of the archives from [https://github.com/aros-development-team/contrib Aros site], and study the AROS applications source code, e.g. the test programs from the Tests drawer (folder/directory). Take a look at the code of some smaller AROS programs might be a better and more up to date
When you upload your builds, please write the architecture (like i386-aros, x86_64-aros, aarch64-aros etc.) in the archive name
and it is also advisable to write in the field "Requirements" the ABI (ABIv1 leave blank, for PC fork 64bit ABIv11 ends in v11, 32bit ends in , Arm Pi ends )
===Compiling C/C++ Code===
Native, although we have a IDE Integrated Development Environment (Murks), it does lack a debugger. Whilst others use a combination of a text editor and shell to edit code. Most though use an AROS hosted on Linux to take advantage of the better GCC tools like GDB and various IDEs.
Open shell - its a menu option at the top left of Wanderer (desktop). Or by using the right Win key and w (or F12 and w) within the directory with the source code. Type in
sh
to change the amiga shell into a unix shell. You can then type in ls (unix equivalent to amiga dir). Take a look [http://en.wikibooks.org/wiki/Linux_commands here] for more commands.
For a single file program-name.c or program-name.cpp
gcc -o program-name program-name.c
or
g++ -o program-name program-name.cpp
or
g++ -o test -Wall -g main.cc texturelib.cpp xmodelib.cc -lsdl -lgl
To close the shell, click on the top left-hand corner to close (twice). Once to get back the aros shell and then again to close finally. Use [http://freshmeat.net/projects/cksfv/ cksfv] as a test.
Some source code requires the addition of Amiga API libraries, like dos, which you can flag at the compile time as
gcc -o julia.exe julia.c -ldos
For DOS use -ldos as example and if you are compiling mui codes it will be -lmui or intuition -lintuition. Other missing symbols are due to linker libraries being necessary for linking in functions that aren't in the standard C libraries. For example some source code would need added
-lz or -lm or -lpng or -larosc etc.
use this in unix line command mode to search for 'search-item' in many .c files (*.cpp for c++, etc.)
grep -l 'search-item' *.c
If the program is not executable, try using parameter fno-common
"Delete #?.o"? Or if you are using abcshell then "rm *.o"
:''More information: [[Aros/Developer/Porting software]]''
=== How to make Apps have AROS 64-bit specific support code ===
[http://www.aros.org/cs/documentation/developers/app-dev/portable.php Portable code]
AROS64 already uses 64bit addressing, it just doesn't setup the MMU for more than 4GB physical memory currently.
When porting software to AROS64 it is "mostly" a case of converting ULONG's that are used to store pointers, into IPTR's instead, etc. Another quirk, is making sure items on the stack are the correct size by using the STACKED attribute for them.
* Use texteditor or some tool to replace all "ULONG" with "IPTR" and "LONG" with "SIPTR" in the sources.
compiling mui stuff for aros setting -std=gnu99 is necessary, had -std=c99 usually
A MUI application most likely needs only the HOOKPROTOxxx SDI macros. They are compatible with AROS, only the attributes (hook, object attribute) must be given in the right order.
crash which suggest memory corruption. From my experience porting from 32-bit to 64-bit these kinds of errors can happen if a pointer is passed somewhere via ULONG variable. Then half of the pointer is cut.
To generate this error, please run AROSBootstrap with -m 1024. This will allocate heap to 64-bit address space which will make these errors immediatelly visible. These types of crashes are hard to debug. Disabled as little code as possible to stop corruption from occurring and then try to read from the code where it can be broken
Crashing in tslf_freevec is another symptom of memory corruption and these memory corruptions will manifest differently on different setups.
==Coding conventions==
As the AROS core source is a shared developer experience, there are rules regarding structure and style. When it comes to your creating your own app and coding, the structure and style should be your own, i.e. you should enjoy what you do and do it so that you can understand what is going on.
===Layout===
<syntaxhighlight lang="c">
static void 1st_function()
{
program
exit(0);
}
int main(void)
{
1st_function();
2nd_function();
3rd_function();
return 0;
}
</syntaxhighlight>
<syntaxhighlight lang="c">
struct Screen * openscreen(void);
struct Window *openwindow(struct Screen *screen, const char *title, LONG x, LONG y, LONG w, LONG h);
VOID 1st_function();
VOID 2nd_function();
int main(int argc, char **argv)
{
program
return 0;
} /* main */
VOID 1st_function()
{
}
VOID 2nd_function()
{
}
</syntaxhighlight>
===General style===
This code is used by many people and therefore you should keep some things in mind when you submit source code:
* Keep things simple
* Keep the source clean
* Always know what you are doing, if not flag it and describe what needs to be done...
* Explain clearly/simply what you are doing
* Remember that you write code once but that it is read many times by many people
===Comments===
AROS uses some of the comments in the source to generate the documentation. Therefore it's necessary to keep a certain format so the tools can find their information. Other comments are ignored but they should explain what you thought when you wrote the code. If you really can't think of an explanation, then don't write the code a second time like this:
<pre>
/* This adds 1 to t */
t ++;
</pre>
What we think of is this:
<pre>
/* Go on with next element */
t ++;
</pre>
===Formatting===
This is only '''IMPORTANT''' if you are going to work on the core AROS code or contrib but not applications which may reside outside like on AROS Archives or other websites.
<syntaxhighlight lang="c">
{
/* a */
struct RastPort * rp;
int a;
/* b */
rp = NULL;
a = 1;
/* c */
if (a == 1)
printf ("Init worked\n");
/* d */
if
(
!(rp = Get_a_pointer_to_the_RastPort
(
some
, long
, arguments
)
)
||
a <= 0
)
{
printf ("Something failed\n");
return FAIL;
}
/* e */
a = printf ("My RastPort is %p, a=%d\n"
, rp
, a
);
return OK;
}
</syntaxhighlight>
Looks ugly, eh ? :-) Ok, here are the rules:
<pre>
If several lines contain similar code, put similar things below each other (see a and b);
Put spaces between operands and operators
Put braces {}, brackets [] and parentheses () below each other (d) if there is much code between.
Brackets and parentheses may be in one line if the code between is small (c)
Indent by 4 Spaces. Two indent levels may be abbreviated by one tab.
</pre>
'''Before committing please normalize the indentation - if you have a mixture of tabs and spaced - please always use spaces, 1 tab = 4 spaces.'''
The reasons for this are:
# While some editors can use an arbitrary sizes for tabs, it's a bit complicated to tell another editor which tab size was used by the one used to write the code.
# Most code in AROS was written this way and your code should look like the rest.
# You can print this code on any printer without special tools to "fix" the tabs.
# Most editors have smart tabs which do exactly this. If your editor doesn't, write a bug report.
If you have a function with many arguments (d, e) you should put the parentheses in lines of their own and each argument in one line (d) or put the first argument behind the opening parentheses (e) and each following argument in a line of its own with the comma in front. The closing parentheses is in a line of its own and aligned with the beginning of the expression (i.e. the a and not the opening parentheses or the printf()).
Use a single blank line to separate logical blocks. Large comments should have a blank line before and after them, small comments should be put before the code they explain with only one blank line before them.
If you see any TABS in AROS core sources then the suggestion is to "detab the file and commit that separately" either before or afterwards from making functionality changes. Make two commits instead of one. This makes it easier for others to see the real changes instead of having to dig through multiple lines of irrelevant diffs.
===Eliminating Global Variables===
i.e. pass variables to functions (local scope) or classes making it easier to track and debug your code.
Any time you find that you need a particular thing in 'a lot of different places', chances are that all those places are conceptually related, and so you can create a class, a namespace, a function, or some other higher-level organizational unit to represent that relationship. This makes the program easier to understand.
Bad Designs
* All variables are global.
* There are no standalone functions, only sub-procedures which act on the global variables.
* Every sub-procedure is at least 500 lines to several thousand
* Every sub-procedure has more than one task to perform
* Copy-paste is preferred to writing methods, AND subtle changes are made in the middle of the code
Good Designs
* structure program into functions (C or basic) - top-down procedural approach
* put in class(es) (freepascal or C++) - the object is fixed and you use methods to access the object
<pre>
class String_List
{
private:
list<string> m_List; // member
public:
void read_strings() { /* read strings into m_List */ }
void print_strings() { /* write contents of m_List to stdout */ }
void sort_strings() { /* sort contents of m_List */ }
void sort_strings_reverse() { /* reverse-sort contents of m_List */ }
void unique_strings() { /* remove duplicate strings */ }
};
int main()
{
String_List myList; // local
myList.read_strings();
myList.sort_strings();
myList.print_strings();
myList.sort_strings_reverse();
myList.print_strings();
myList.unique_strings();
myList.print_strings();
return 0;
}
</pre>
This way it is very easy to replace the list with new list for debugging purposes, or replacing the methods without replacing the list, when you want different results. You only have to replace the content of the local variables.
So create the structure that matches your data (linked lists, trees, arrays, etc.) and what to do with them (sorting, searching, etc.)
<pre>
.h usually contain #define #include typedef enum struct extern screen and window definitions (data structures)
.c should contains functions and algorithms
</pre>
One way to look at it is that menu headings act as the .c file and sub-menu headings as functions.
When you start a project, you place a couple of declarations in the include file. As the project continues, you place more and more declarations in the include file, some of which refer to or contain previous declarations. Before you know it, you have a real mess on your hands. The majority of your source files have knowledge of the data structures and directly reference elements from the structures.
Making changes in an environment where many data structures directly refer to other data structures becomes, at best, a headache. Consider what happens when you change a data structure.
Use good variables names to help clarify code and only comment when you need to explain why a certain programming approach was made.
You're Refactoring Legacy Code, you see a global, you want to get rid of it. How do you do this?
Exactly what to do depends on how the global is used. The first step is to find all uses of the global throughout the code, and get a feel for what the significance of the variable is and how it relates to the rest of the program. Pay particular attention to the "lifetime" of the variable (when it gets initialized, when it is first used, when it is last used, how it gets cleaned up). Then, you will probably make the global a data member of a class (for OO languages), or you will write some get/set functions. Converting to the Singleton Pattern is common, but you may discover that it makes more sense for the data element to be a member of an existing singleton, or maybe even an instance variable.
# Create a basic read method, either as a class or a global function. Replace all reads with the access method, but leave the variable defined as a global.
# Review each of the writes to the method and extract action functions one at a time. Unless two operations are coded identically in the original code, extract each write access separately.
# Change the variable scope from global to local.
# Analyze similar action functions to determine if any can be merged, i.e., there are no functional differences in the results of the function, just differences in the implementation details.
# Review the calls to the read method and see if a more complex functionality should be applied. Follow the approach for writes and unless implementations are identical, create separate access functions.
# Analyze the access functions for duplication.
As returning variables by "passing by value" are forgotten, so "passing by reference" is often used instead. The reference is a pointer to the variable so the value is remembered when returned.
Alternatives
* Hidden Globals
* Singleton Pattern
* Database or TupleSpace
* Context Object
* Dependency Injection
* Stateful Procedures
==AROS/AmigaOS APIs and Docs==
<pre>
Library:
- Private data structure
- Many public access methods
Device:
- Private data structure
- Two (BeginIO/AbortIO) access methods
Resource:
- Public data structure
- *NO* access methods
</pre>
And, being Amiga OS-compatible, there are exceptions to all of these.
===System Libraries===
The [http://developers.aros.org/ AROS Guide To Libraries] can be used as a guide to individual commands and old Dev Docs are used in application programming.
Amiga/Aros styles libraries are very different from windows and linux libs. Typical .so/dll libraries are foreign to most Amiga-like OS
*[[Aros/Developer/Docs/Libraries/AROSC|arosc.library]]
*[[Aros/Developer/Docs/Libraries/AmigaGuide|amigaguide.library]]
*[[Aros/Developer/Docs/Libraries/ASL|asl.library]]
*[[Aros/Developer/Docs/Libraries/Bullet|bullet.library]]
*[[Aros/Developer/Docs/Libraries/BSDsocket|bsdsocket.library]]
*[[Aros/Developer/Docs/Libraries/CAMD|camd.library]]
*[[Aros/Developer/Docs/Libraries/Codesets|codesets.library]]
*[[Aros/Developer/Docs/Libraries/CGFX|cybergraphics.library]]
*[[Aros/Developer/Docs/Libraries/CGXVIDEO|cgxvideo.library]]
*[[Aros/Developer/Docs/Libraries/Commodities|commodities.library]]
*[[Aros/Developer/Docs/Libraries/DataTypes|datatypes.library]]
*[[Aros/Developer/Docs/Libraries/DiskFont|diskfont.library]]
*[[Aros/Developer/Docs/Libraries/DOS|dos.library]]
*[[Aros/Developer/Docs/Libraries/Exec|exec.library]]
*[[Aros/Developer/Docs/Libraries/Expansion|expansion.library]]
*[[Aros/Developer/Docs/Libraries/FreeType2|freetype.library]]
*[[Aros/Developer/Docs/Libraries/GadTools|gadtools.library]]
*[[Aros/Developer/Docs/Libraries/Graphics|graphics.library]]
*[[Aros/Developer/Docs/Libraries/Icon|icon.library]]
*[[Aros/Developer/Docs/Libraries/Identify|identify.library]]
*[[Aros/Developer/Docs/Libraries/IFFParse|iffparse.library]]
*[[Aros/Developer/Docs/Libraries/Intuition|intuition.library]]
*[[Aros/Developer/Docs/Libraries/Keymap|keymap.library]]
*[[Aros/Developer/Docs/Libraries/Layers|layers.library]]
*[[Aros/Developer/Docs/Libraries/Locale|locale.library]]
*[[Aros/Developer/Docs/Libraries/LowLevel|lowlevel.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEESingBas|mathieeesingbas.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEEDoubBas|mathieeedoubbas.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEESingTrans|mathieeesingtrans.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEEDoubTrans|mathieeedoubtrans.library]]
*[[Aros/Developer/Docs/Libraries/Mathtrans|mathtrans.library]]
*[[Aros/Developer/Docs/Libraries/MUIMaster|muimaster.library]]
*[[Aros/Developer/Docs/Libraries/Partition|partition.library]]
*[[Aros/Developer/Docs/Libraries/PopUpMenu|popupmenu.library]]
*[[Aros/Developer/Docs/Libraries/OOP|oop.library]]
*[[Aros/Developer/Docs/Libraries/Regina|regina.library]]
*[[Aros/Developer/Docs/Libraries/Reqtools|reqtools.library]]
*[[Aros/Developer/Docs/Libraries/RexxSysLib|rexxsyslib.library]]
*[[Aros/Developer/Docs/Libraries/ScreenNotify|screennotify.library]]
*[[Aros/Developer/Docs/Libraries/TTEngine|ttengine.library]]
*[[Aros/Developer/Docs/Libraries/Thread|thread.library]]
*[[Aros/Developer/Docs/Libraries/Utility|utility.library]]
*[[Aros/Developer/Docs/Libraries/Xadmaster|xadmaster.library]]
*[[Aros/Developer/Docs/Libraries/Workbench|workbench.library]]
*[https://github.com/aros-development-team/AROS/commit/c82e86b8480277998014cc327b56c7664023a52f ClassAct Reaction boopsi class]
===AROS Subsystems===
# [[Aros/Developer/Zune|Zune MUI compatible GUI]]
# [[Aros/Developer/AROSAppPackages|AROS Application Packages]]
# AHI Audio Drivers - [[Aros/Developer/AHIDrivers|Usage]]/[[Aros/Developer/AHIDriversDev|Development]]
# AROSTCP Sana2 Network Interface Drivers - [[Aros/Developer/NICDrivers|Usage]]/[[Aros/Developer/NICDriversDev|Development]]
# [[Aros/Developer/AmiSSL|AmiSSL]]
# gfx.hidd/cybergraphics Video Drivers - [[Aros/Developer/GfxDrivers|Usage]]/[[Aros/Developer/GfxDriversDev|Development]]
# IO Device Drivers - [[Aros/Developer/IODeviceDrivers|Usage]]/[[Aros/Developer/IODeviceDriversDev|Development]]
# USB Device Drivers - [[Aros/Developer/USBDrivers|Usage]]/[[Aros/Developer/USBDriversDev|Development]]
# PCI Device Drivers - [[Aros/Developer/PCIDrivers|Usage]]/[[Aros/Developer/PCIDriversDev|Development]]
# [http://www.libsdl.org/ SDL] [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2013&pid=13333#post_13333 SDL2 coding usage], [https://github.com/search?q=repo%3Aaros-development-team%2Fcontrib%20SDL2&type=code SDL2 commits], [https://github.com/aros-development-team/contrib/commit/c62c3c425c35bac19dadc23be092b0b13a66c76c SDL3 initial commit], []
# [[w:Gallium3D|Gallium 3D]] [http://www.mesa3d.org/ openGL aka Mesa] - [[Aros/Developer/OpenGL|Usage]]/[[Aros/Developer/OpenGLDev|Development]] [http://www.swiftless.com/opengltuts.html Swfitless]
# A small subset of GTK2 through [http://sourceforge.net/projects/gtk-mui/ MUI-GTK]
# Cairo 2D Engine - [[Aros/Developer/Cairo|Usage]]/[[Aros/Developer/Cairo|Development]]
# [[Aros/Developer/Scalos|Scalos desktop API and plugin modules]]
# [[Aros/Developer/VHI|VHI video driver]]
====HIDDs====
*[[Aros/Developer/Docs/HIDD/HIDDClass|hiddclass.hidd]]
*[[Aros/Developer/Docs/HIDD/Graphics|graphics.hidd]]
*[[Aros/Developer/Docs/HIDD/VesaGfx|vesagfx.hidd]]
*[[Aros/Developer/Docs/HIDD/ATI|radeon.hidd]]
*[[Aros/Developer/Docs/HIDD/NVidia|nvidia.hidd]]
*[[Aros/Developer/Docs/HIDD/Nouveau|nouveau.hidd]]
*[[Aros/Developer/Docs/HIDD/Kbd|kbd.hidd]]
*[[Aros/Developer/Docs/HIDD/Mouse|mouse.hidd]]
*[[Aros/Developer/Docs/HIDD/i2c|i2c.hidd]]
*[[Aros/Developer/Docs/HIDD/IRQ|irq.hidd (deprecated)]]
*[[Aros/Developer/Docs/HIDD/PCI|pci.hidd]]
*[[Aros/Developer/Docs/HIDD/PCIPC|pcipc.hidd]]
*[[Aros/Developer/Docs/HIDD/Serial|serial.hidd]]
*[[Aros/Developer/Docs/HIDD/Thunderbolt|thunderbolt.hidd]]
https://github.com/aros-development-team/AROS/commit/4f02ea691799aff3a01f60cfa5f9182c82fc57a8
HIDD are used for device/peripheral low level hardware support drivers. The HIDD system is split up into a collection of classes with a strict inheritance hierarchy. A HIDD class implements a device driver for a single device or in rare cases a group of devices and provides an interface for other programs and devices to access.
In order to maintain portability of interfaces across a wide range of hardware this interface will in general not present the raw interface to the underlying hardware. Instead it will present a generic interface that describes many different hardware implementations. This allows for the best reuse of both interfaces and code.
HIDD API is heavyweight though. You need to open a HIDD library, open oop.library, instantiate an object (even if there's no object); and object calls are more costly compared to plain library calls.
Basically your task is to implement a subclass of hidd.ata.bus for your hardware. just implementing the XXXATA__Hidd_ATABus__xxxxxx methods for the Amiga chipset - and appropriate versions of the interface_xxx.c file(s). pretty much everything in probe.c could be ignored - just write a replacement scan for relevant amiga devices and store whatever info you need in the bus data? only the "SUPPORT_LEGACY" blocks might be related.
You do not need to depend on PCI API. PCI is just a way to discover the hardware on PCs, etc.
<hidd/pci.h> includes (at some depth) <interface/HW.h>, which defines IID_HW. This comes from the 'generic' HIDD class in:
rom/hidds/hidd/hiddclass.conf
did not split up HIDD and HW because they are always used in pair. It's the same as hidd/pci.h bringing definition for: PCI, PCIDriver and PCIDevice. PCI is actually PCIHW, just the name was not changed for backwards compatibility reasons. HW is a 'hub' where HIDD instances plug in.
ATA HIDD aoHidd_ATABus_Use32Bit value is completely ignored unless ata.device first detects correct command line parameter.
Yes. Unfortunately I was unable to find any comment in code or svn history with explanations. Looked at Linux source, there 32-bit PIO is also controller driver's property. Some of them enable it, some don't.
Actually, switching the default to ON should be safe. ata.device is fail-safe at this because during IDENTIFY command it validates upper 16 bits, and if they appear to be zeroes in all 128 longwords, then 32-bit mode is switched off. But, nevertheless, I know how tricky hardware can be, so I decided not to change original behavior. If you think it's wrong in some cases, then it's possible to add one more attribute like aHidd_ATABus_Default32Bit. If set to YES, then this means that 32-bit PIO is safe to use by default.
====Devices====
*[[Aros/Developer/Docs/Devices/ATA|ata.device]]
*[[Aros/Developer/Docs/Devices/Console|console.device]]
*[[Aros/Developer/Docs/Devices/Narrator|narrator.device]]
*[[Aros/Developer/Docs/Devices/Printer|printer.device]]
*[[Aros/Developer/Docs/Devices/Trackdisk|trackdisk.device]]
*[[Aros/Developer/Docs/Devices/AmberRAM|amberram.device]]
*[[Aros/Developer/Docs/Devices/Timer|timer.device]]
*[[Aros/Developer/Docs/Devices/|.device]]
The Amiga used [[Aros/Developer/Docs/Devices|Devices]] to communicate with [http://aros-exec.org/modules/newbb/viewtopic.php?start=0&topic_id=3475&viewmode=flat&order=ASC additional hardware]. AROS has replaced these hardware devices with hidd equivalents but some are still retained for backwards compatibility.
Local libraries/devices/handlers,etc. are supposed to override the ones in ROM if their version is higher than the one in ROM.
Here is the list of commands exec default:
{| class="wikitable"
| CMD_CLEAR
| Purge the buffer of the device
|----
| CMD_READ
| Playback Control
|----
| CMD_STOP
| Stopped the activity of the device
|----
| CMD_FLUSH
| Empty the queue of commands
|----
| CMD_RESET
| Reset a device
|----
| CMD_WRITE
| Playback Control
|----
| CMD_INVALID
| Create an error
|----
| CMD_UPDATE
| Gets updated device
|----
| CMD_START
| Will restart the device
|----
|}
While most other "stuff you communicate with" in AmigaOS are devices <ref>AMIGA ROM Kernel Reference Manual: Devices, 3rd Edition. Commodore-Amiga, Inc. Addison-Wesley, 1991. {{ISBN|0-201-56775-X}}</ref> that share a [http://gega.homelinux.net/AmigaDevDocs/ common base interface]. [[Aros/Developer/Docs/Devices1.3|OS 1.3 Device Drivers]].
====Handlers====
:[[Aros/Developer/Docs/Handlers/Pipe|pipe.handler]]
:[[Aros/Developer/Docs/Handlers/Port|port.handler]]
:[[Aros/Developer/Docs/Handlers/SFS|sfs.handler]]
:[[Aros/Developer/Docs/Handlers/FAT|fat.handler]]
:[[Aros/Developer/Docs/Handlers/PFS|pfs.handler]]
:[[Aros/Developer/Docs/Handlers/NTFS|fuse.handler]]
:[[Aros/Developer/Docs/Handlers/FFS|ffs.handler]]
filesystem handlers have their own separate system consisting of completely differently structured messages that dos.library use to pass requests (for things like reading, writing, getting directory contents etc.) to them. AROS originally went with implementing filesystem handlers as devices, which might arguably be more consistent with the rest of the AmigaOS API but which is quite incompatible with AmigaOS itself. However, it made it far harder to port filesystems and the gains were comparatively small, and so there's been a long standing goal of fixing this incompatibility. It has now, June 2011, been reintroduced to all AROS flavors.
are argstr and argsize valid for the handler startup environment?
DOS/RunHandler() calls DOS/CreateNewProcTags(), and then CallEntry() (in rom/dos/exit.c) to start the handler, so yes, argstr and argsize are *present* in the call signature of the handler.
Granted, argstr will be NULL and argsize 0, but those values *are* passed to the handler function using:
<pre>
AROS_UFC3(ULONG, entry,
AROS_UFCA(STRPTR, argptr, A0),
AROS_UFCA(ULONG, argsize, D0),
AROS_UFCA(struct ExecBase *, SysBase, A6));
</pre>
Creating your own [without the whole build tree http://pagesperso-orange.fr/franck.charlet/temp/radeon.zip] and then
<pre>
make stub
make
make install
</pre>
SFS has two Root blocks, one at the start and one at the end of the disk. The Root blocks both contain the same information. They hold various information about the disk structure and have the locations of some important blocks used by the filesystem.
The Root ObjectContainer contains the Root directory Object. The name of this Object is the name of the volume. It is identical to a normal directory Object.
The Bitmap is used to keep track of free space. Each bit in a bitmap represents a single block. A set bit indicates a free block and a cleared bit a used block.
AdminSpaceContainers are used to keep track of space which has been reserved for storing administration blocks. Only the Bitmap, the Root blocks and the actual data stored in files aren't stored in administration space. Administration space is allocated in chunks of 32 blocks at a time. A single AdminSpaceContainer can hold information about a large number of such areas each of which has its own little bitmap of 32 bits.
Extents are stored in a B-Tree. The Root block holds a pointer to the root of the Extent B-Tree. Extents keep track of space in use by a specific file. Each fragment a file consists of has its own Extent. Extents are in a double linked list. The list can be used to locate the next or previous fragment of a file.
Below is the standard block header. This header is found before EVERY type of block used in the filesystem, except data blocks. The id field is used to check if the block is of the correct type when it is being referred to using a BLCK pointer. The checksum field is the SUM of all LONGs in a block plus one, and then negated. When applying a checksum the checksum field itself should be set to zero. The checking a checksum the checksum is okay if the result of the checksum equals zero. The ownblock BLCK pointer points to the block itself. This field is an extra safety check to ensure we are using a valid block.
Field Type Description
id ULONG The id field is used to identify the type of block we are dealing with. It is used to make sure that when referencing a block we got a block of the correct type. The id consist of 4 bytes and each blocktype has its own unique foure letter code.
checksum ULONG This field contains the sum of all longs in this block, plus one and then negated. The checksum can be used to check if the block hasn't been corrupted in any way.
ownblock BLCK Points to itself, or in other words, this field contains the block number of this block. This is yet another way to check whether or not a block is valid.
<pre>
struct fsBlockHeader {
ULONG id;
ULONG checksum;
BLCK ownblock;
};
</pre>
The algorithm to calculate the checksum of a block:
<pre>
ULONG calcchecksum(struct fsBlockHeader *block, LONG blocksize} {
ULONG *data=(ULONG *)block;
ULONG checksum=1;
block->checksum=0;
while(blocksize>0) {
checksum+=*data++;
blocksize-=4;
}
return(-checksum);
}
</pre>
A Root block contains very important information about the structure of a SFS disk. It has information on the location and size of the disk, the blocksize used, locations of various important blocks, version information and some filesystem specific settings.
A SFS disk has two Root blocks; one located at the start of the partition and one at the end. On startup the filesystem will check both Roots to see if it is a valid SFS disk. If either one is missing SFS can still continue (although at the moment it won't).
A Root block could be missing on purpose. For example, if you extend the partition at the end (adding a few MB's) then SFS can detect this with the information stored in the Root block located at the beginning (since only the end-offset has changed). Same goes for the other way around, as long as you don't change start and end point at the same time.
When a Root block is missing because the partition has been made a bit larger, then SFS will in the future be able to resize itself without re-formatting the disk.
Field Type Description
bheader struct fsBlockHeader Standard block header.
version UWORD The version of the filesystem block structure. You can check this field to identify what version of the filesystem your dealing with it and to see if you can handle this structure correctly. Don't try to interpret the disk's structure when this field contains an unknown version number!
sequencenumber UWORD Used to identify which Root block was written last in case the sequencenumber on both Root blocks don't match.
datecreated ULONG Creation date of this volume. This is the date when the disk was last formatted and will never be changed.
bits UBYTE Various settings, see below.
<pre>
pad1 UBYTE Reserved, leave zero.
pad2 UWORD Reserved, leave zero.
reserved1 ULONG[2] Reserved, leave zero.
firstbyteh ULONG High 32-bits of a 64-bit number. This is the first byte of our partition relative to the start of the disk.
firstbyte ULONG Low 32-bits of a 64-bit number.
lastbyteh ULONG High 32-bits of a 64-bit number. This is the last byte (exclusive) of our partition relative to the start of the disk.
lastbyte ULONG Low 32-bits of a 64-bit number.
totalblocks ULONG The total number of blocks this partition consists of.
blocksize ULONG The size of a block of this partition.
reserved2 ULONG[2] Reserved, leave zero.
reserved3 ULONG[8] Reserved, leave zero.
bitmapbase BLCK Block number of the start of the Bitmap.
adminspacecontainer BLCK Block number of the first AdminSpaceContainer.
rootobjectcontainer BLCK Block number of the ObjectContainer which contains the root of the disk (this is where the volume name is stored).
extentbnoderoot BLCK Block number of the root of the Extent B-Tree.
reserved4 ULONG[4] Reserved, leave zero.
</pre>
<pre>
struct fsRootBlock {
struct fsBlockHeader bheader;
UWORD version;
UWORD sequencenumber;
ULONG datecreated;
UBYTE bits;
UBYTE pad1;
UWORD pad2;
ULONG reserved1[2];
ULONG firstbyteh;
ULONG firstbyte;
ULONG lastbyteh;
ULONG lastbyte;
BLCK totalblocks;
ULONG blocksize;
ULONG reserved2[2];
ULONG reserved3[8];
BLCK bitmapbase;
BLCK adminspacecontainer;
BLCK rootobjectcontainer;
BLCK extentbnoderoot;
ULONG reserved4[4];
};
</pre>
AdminSpaceContainers are used to store the location and bitmap of each administration space. The AdminSpaceContainers are located in a double linked list and they contain an array of fsAdminSpace structures. There is one fsAdminSpace structure for every administration space on disk.
Field Type Description
bheader struct fsBlockHeader Standard block header.
next BLCK The next AdminSpaceContainer, or zero if it is the last in the chain.
previous BLCK The previous AdminSpaceContainer, or zero if it is the first AdminSpaceContainer.
bits UBYTE The number of bits in each in the bits ULONG in the fsAdminSpace structure.
pad1 UBYTE Reserved, leave zero.
pad2 UWORD Reserved, leave zero.
adminspace struct fsAdminSpace An array of fsAdminSpace structures. The size of the array is determined by the current blocksize.
<pre>
struct fsAdminSpaceContainer {
struct fsBlockHeader bheader;
BLCK next;
BLCK previous;
UBYTE bits;
UBYTE pad1;
UWORD pad2;
struct fsAdminSpace adminspace[0];
};
</pre>
Field Type Description
space BLCK The first block of an administration space.
bits ULONG A small bitmap which is used to determine which blocks in an administration space are already in use. The number of bits in this bitmap is determined by the bits field in the AdminSpaceContainer.
<pre>
struct fsAdminSpace {
BLCK space;
ULONG bits;
};
</pre>
The fsBitmap structure is used for Bitmap blocks. A bitmap block is used to keep track of which space is in use and which isn't for a particular area of a disk. All bitmap blocks together keep track of the free space for an entire disk. The location of the first bitmap block is known and all other bitmap blocks are stored in order after the first one.
Field Type Description
bheader struct fsBlockHeader Standard block header.
bitmap ULONG An array of ULONG's. These hold the actual information on which blocks are in use and which aren't.
<pre>
struct fsBitmap {
struct fsBlockHeader bheader;
ULONG bitmap[0];
};
</pre>
Each bit in a bitmap block (except for the block header) represents a single block. If the bit is set than the block is free, and if the bit is clear then it is full. The first ULONG in the bitmap area of the first bitmap block represents blocks 0 through 31 on the disk. Bit 31 of this ULONG is block 0, 30 is block 1, and so on. Bit 0 of the first ULONG represents block 31.
Below is a table to clarify how bitmaps work even further. The first column is the bitmap block number, the second column is the number of the ULONG in the bitmap array. The third column is the bit number in this ULONG, and the last column is the block which this specific bit, in this specific bitmap block represents.
We'll assume here that a bitmap block has room for 120 ULONG's (meaning there is room for storing 32 * 120 bits).
<pre>
Bitmap block ULONG number Bit number Block represented
1 (first) 0 31 0
1 0 30 1
... ... ... ...
1 0 1 30
1 0 0 31
1 1 31 32
... ... ... ...
1 2 31 64
1 2 30 65
... ... ... ...
1 119 0 3839
2 0 31 3840
2 0 30 3841
... ... ... ...
</pre>
The last bitmap block doesn't need to be completely used. The unused bits (which belong to blocks which do not exist) all have to be clear, to indicate that these blocks are in use.
The fsObjectContainer structure is used to hold a variable number of fsObjects structures (Objects) which have the same parent directory. Each ObjectContainer must contain at least one Object. If there is space in the ObjectContainer not used by the variable number of Objects then that space is zero filled. Objects always start at 2-byte boundaries, which means sometimes a padding byte is inserted between two Objects.
Field Type Description
bheader struct fsBlockHeader Standard block header.
parent NODE The node number of the parent Object, or 0 if this object has no parent (which is only the case for the Root directory).
next BLCK The next ObjectContainer belonging to this directory, or zero if it is the last in the chain.
previous BLCK The previous ObjectContainer belonging to this directory, or zero if it is the first ObjectContainer in this directory.
object struct fsObject A variable number of fsObject structures. The number of structures depends on the individual sizes of each fsObject structure and the blocksize. These structures are located directly after each other with at most 1 byte of padding between them to get the structures aligned on a 2 byte boundary.
<pre>
struct fsObjectContainer {
struct fsBlockHeader bheader;
NODE parent;
BLCK next;
BLCK previous;
struct fsObject object[0];
};
</pre>
fsHashTable is the structure of a HashTable block. It functions much like the hash table found in FFS user directory blocks, except that it is stored in a separate block. This block contains a number of hash-chains (about 120 for a 512 byte block). Each hash-chain is a chain of Nodes. Each Node has a pointer to an Object and a pointer to the next entry in the hash-chain. Using such a hash-chain you can locate an object quickly by only knowing its name.
Field Type Description
bheader struct fsBlockHeader Standard block header.
parent NODE The node number of the directory Object this HashTable block belongs to.
hashentry NODE An array of Nodes. Each Node represents the start of a hash-chain (singly linked). A hash-value is calculated using the name of a file or directory, and this value determines in which chain the Object is linked. If there are no entries in a hash-chain then the hashentry value is zero.
<pre>
struct fsHashTable {
struct fsBlockHeader bheader;
NODE parent;
NODE hashentry[0];
};
</pre>
To calculate the hash-value using a name of an Object as input use these routines:
<pre>
UWORD calchash(UBYTE *name) {
UWORD hash=0;
/* Calculates a hash value over the passed in string.
The end of the string can be either a NUL byte or a
slash. The hash function is the same as the one
used in FastFileSystem set to international mode. */
while(name[hash]!=0 && name[hash]!='/') {
hash++;
}
while(*name!=0 && *name!='/') {
hash=hash*13+upperchar(*name++);
}
return((UWORD)(hash % (UWORD)((blocksize-sizeof(struct fsHashTable))>>2)));
}
UBYTE upperchar(UBYTE c) {
if((c>=224 && c<=254 && c!=247) || (c>='a' && c<='z')) {
c-=32;
}
return(c);
}
</pre>
The BNodeContainer is used to store B-Trees. Currently only one B-Tree is in use by this filesystem and it is used to store the location of file data. The fsBNodeContainer structure contains two other structures. The fsBlockHeader structure and the BTreeContainer structure.
Field Type Description
bheader struct fsBlockHeader Standard block header.
btc struct BTreeContainer Contains information about the B-Tree and its nodes contained in this block.
<pre>
struct fsBNodeContainer {
struct fsBlockHeader bheader;
struct BTreeContainer btc;
};
</pre>
First try and locate the Root block. It should start with "ROOT". SFS has two of these, one at the start of the partition and one at the end. One of the fields contains the block size, which will be the size of all important SFS blocks.
The root block has the root object container, which contains information about files and directories in the root directory. The object
containers basically hold one or more smaller structures that represent files and directories. Scanning them all should give you a list of
files and directories.
The root block also has the root of the Extent B-Tree. This is a standard B-Tree structure (not a binary tree) that is used commonly in
all kinds of system, you can read about how they work on Wikipedia if needed. The B-Tree holds the information about *where* all the data is
located for your files.
To recover your files, I'd do this:
* Find one of the root blocks, if not present, then figure out the block size your disk was using, and scan every block in turn to see if it
looks like an ObjectContainer (check the fsBlockHeader's ID, check if the ownblock number is equal to the block you are currently scanning,
and check its checksum). So if you currently have block 12, and you see a block with the correct id, and ownblock = 12 and its checksum is good,
then that's probably a valid ObjectContainer.
* With all the ObjectContainers found, you can extract filenames and directory names from these, but also the number of their first data
block (in the field data) and the file size. For small files (less than blocksize) this data block will be enough to recover the data.
For larger files, you might be lucky and all the remaining blocks are found after the first one (if the file was defragmented). You can't be
sure of that though so...
* For larger files, you need to find all the BNodeContainers. You could scan these in the same way you found all the ObjectContainers (look for
blocks with the correct id, ownblock number and checksum).
* With all the BNodeContainers found, you can try looking up the first data block of a file in the B-Tree structure. This is a bit complicated
-- the B-Tree consists of non-leaf nodes (blocks that only contain pointers to other B-Tree blocks), the isLeaf flag indicates this. Or it
can be a B-Tree leaf block. The leaf blocks contain extra information per entry (see https://hjohn.home.xs4all.nl/SFS/extents.htm)
<pre>
struct fsExtentBNode {
ULONG key;
ULONG next;
ULONG prev;
UWORD blocks;
};
</pre>
The key should be a block of a file (the first of a range), that is 1 to 65535 block long (depending the "blocks" field). If the file is split
up into more parts, then "next" will contain block number of the next range of blocks. You need to look this up again in the B-Tree
structure to find out how large it is.
You can for the most part ignore the other structures (bitmap, admin containers). The fsObjects and B-tree containers is what you'll need to
recover the data.
====Resources====
<pre>
rom/storage/mmakefile.src
rom/storage/storage.conf
rom/storage/storage_device.c
rom/storage/storage_ids.c
rom/storage/storage_init.c
rom/storage/storage_intern.h
rom/storage/storage_mount.c
rom/storage/storage_unit.c
</pre>
<pre>
rom/storage/includes/device.h
rom/storage/includes/unit.h
rom/storage/includes/volume.h
rom/storage/storage_intern.h
</pre>
<pre>
</pre>
*[[Aros/Developer/Docs/Resources/ACPI|acpi.resource]]
*[[Aros/Developer/Docs/Resources/Battclock|battclock.resource]]
*[[Aros/Developer/Docs/Resources/Bootloader|bootloader.resource]]
*[[Aros/Developer/Docs/Resources/Cia|cia.resource]]
*[[Aros/Developer/Docs/Resources/Filesystem|FileSystem.resource]]
*[[Aros/Developer/Docs/Resources/Hostlib|hostlib.resource]]
*[[Aros/Developer/Docs/Resources/Kernel|kernel.resource]]
*[[Aros/Developer/Docs/Resources/Misc|misc.resource]]
*[[Aros/Developer/Docs/Resources/Processor|processor.resource]]
==Debugging Code==
Please use the [http://sourceforge.net/tracker/?group_id=43586&atid=439463 AROS Bug Tracker] if any issues are found.
GRUB Command line list
<pre>
sysdebug
usbdebug - allows to see Poseidon's log in debug output
</pre>
How do I get debugging out of InitResident ? If running i386 hosted on linux sysdebug=initresident on command line.
This way you can enable any of listed flags. sysdebug=all stands for "everything"
Have an executable (crosscompiled C++ code) which has 6 MB size on disk, but after loading it in memory, 250 MB RAM is taken. Any software that would split AROS executable into ELF part which would show actual size values?
readelf -S executable
it will show you all sections in elf file, including sizes and requested alignment.
objdump -h filename
That's will give you a quick overview of the sections and sizes. Ignore all the .debug.* sections.
Would hazard a guess that you have a large .bss section. That's pretty common in C++.
Next step:
nm—size-sort filename | grep ' [bB] '
The last few will be your biggest consumers. Would suggest -C to demangle the symbols... ;)
Suggest profiling the program (just use some printf's in the main loop for time spent in each part), it usually is quite easy to spot slow parts in games or apps.
If someone has '#define IPTR ULONG' somewhere. To see where that define is, redefine IPTR in the source code that fails, just above the line that fails, and the preprocessor will tell you where it was defined first.
===How to setup gdb with AROS/hosted===
Download AROS sources (AROS-xxxxxxxx-source.tar.bz2, where xxxxxxxx is the current date) and AROS contrib sources (AROS-xxxxxxxx-contrib-source) from
Untar-bzip2 and cd to the unpacked archive directory.
> tar -xvjf AROS-xxxxxxxx-source.tar.bz2
> cd AROS-xxxxxxxx-source
Check the link to "contrib" (contrib-source) inside directory, e.g. correct like this:
> rm contrib
> ln -s ../AROS-xxxxxxxx-contrib-source.tar.bz2 contrib
Make sure you have the correct locale setting, otherwise compilation will fail at some point. See [http://aros.sourceforge.net/documentation/developers/compiling.php#setting-the-locale-to-iso8859 here] (or link below) for more on that. You might have to enter this:
> export LANG="en_US.ISO-8859-1"
Now configure for a debug build - see "./configure --help" for more - here are two examples:
> ./configure—enable-debug=stack,modules,symbols
> ./configure—enable-debug=all
You may "make" now, or choose a separate directory for your build (e.g. for easy removal), for example if compiling for i386 architecture you could create a directory like this:
> mkdir linux-i386
> cd linux-i386
> ../AROS/configure—enable-debug=stack,symbols,modules
When done configuring you're ready to go:
> make
Building AROS takes some time - minutes on fast machines (e.g. 2.5 GHz quadcore), up to hours on slower machines.
The result will be AROS Linux hosted with gdb debugging enabled.
See aros.org documentation for more on compiling AROS, including more [http://aros.sourceforge.net/documentation/developers/compiling.php --enable-debug] options.
When finished, enter bin/linux-i386/AROS directory (replace "linux-i386" with your compilation target platform, e.g. linux-x86_64, etc.) inside the unpacked archive directory. This directory contains the required .gdbinit file for properly running AROS inside gdb.
> cd bin/linux-i386/AROS
Run AROS (here: with 128MB of memory) from gdb:
> gdb—args boot/aros-unix -m 128
or
> gdb—args boot/arosboot -m 128
(gdb) r
Watch the shell output - in case AROS complains about "LoadKeyCode2RawKeyTable: Loading "DEVS:Keymaps/X11/keycode2rawkey.table" failed!" you should also see some instructions on how to create a keymap table. (see link above "more on compiling", too.)
Quit gdb, and try default keymap table:
(gdb) q
The program is running. Quit anyway (and kill it)? (y or n) y
> cd ../../..
> make default-x11keymaptable
Re-run AROS, as described above. Try e.g. RAros (= right windows key) + W to open a shell. If this doesn't work you have to create a keymap table yourself, quit gdb again, and make a new keytable:
> make change-x11keymaptable
A window will open. Watch the window's title bar, and follow the instructions.
When done, re-run AROS. RAros + W should now open a shell.
Next, compile your program with gdb support.
When you start GDB is there a warning which says
warning: File "<whatever>/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to ...
If so start gdb with "-ix .gdbinit"
<pre>
Summary - In short:
* build AROS with debugging support (i.e. ./configure --enable-debug=all)
* build your application with debugging support (i.e. option -g)
* run AROS in the GNU debugger (you may use the GUI frontend "ddd" which simplifies usage a bit)
* start your application
* use the commands "findaddr" and "add-symbol-file" as written in the debugging manual
* if the debugger doesn't find the source code of your application use the "dir" command of the debugger.
</pre>
===How to use gdb===
In AROS open a shell, then (in host shell) use CTRL-Z to go into gdb. Use "b Exec_CreatePool" (one of the functions used early on by startup code in programs) to add a breakpoint, then "cont" and gdb will interrupt somewhere early during startup of "program". Use "bt" to show backtrace and "loadseg" for "??" entries. One of them will be for "program". After that you can use "disassemble program".
One thing you need to make sure is that .gdbinit you have in your build directory is the same as in source tree. It has been modified some time ago, but the build system does not refresh it - you need to copy it manually
To recap, please read our debugging [http://aros.sourceforge.net/documentation/developers/debugging.php manual]:
To detect segfaulting when loading, try...
./configure—enable-debug—with-optimization="-O2"
Because crash or no crash may depend on optimization. For newer compilers maybe this helps...
--with-optimization=-"-O2 -fno-strict-aliasing"
One way to make crashes less random (more easily reproducible) is to activate the munging of free memory in rom/exec/freemem.c which is normally commented out:
<pre>
Index: freemem.c
===================================================================
--- freemem.c (revision 34289)
+++ freemem.c (working copy)
@@ -154,11 +154,12 @@
* created with their TCB placed in the tc_MemEntry list. The workaround
* is to avoid munging when FreeMem() is called with task switching disabled.
*/
+
/* DOH! it doesn't work even this way. What's wrong???
- *
- * if ((SysBase->TDNestCnt < 0) && (SysBase->IDNestCnt < 0))
- * MUNGE_BLOCK(memoryBlock, MEMFILL_FREE, byteSize);
*/
+
+ if ((SysBase->TDNestCnt < 0) && (SysBase->IDNestCnt < 0))
+ MUNGE_BLOCK(memoryBlock, MEMFILL_FREE, byteSize);
}
</pre>
Mungwall can be turned on at runtime. Currently this works in all hosted versions. Just specify "mungwall" on kernel command line and it works. It can work on native too. In order to enable it you need to parse kernel command line, and if "mungwall" is present, set EXECF_MungWall bit in IntExecBase.IntFlags.
This needs to be done before the first AllocMem() for obvious reasons. And never reset back this flag! If you change it on a working system, you are doomed.
Hosted ports do the processing in rom/exec/prepareexecbase.c --enable-debug=mungwall option in configure still works but is going obsolete. A kludge in rom/exec/allocmem.c is responsible for this and it needs to be removed when the transition is done.
BTW, on i386-pc port it can be activated by "mungwall" argument on command line, you don't need to rebuild AROS.
New mungwall affects not only AllocMem()/FreeMem(), but also pools. I also tested it with AllocAbs(), seems to work correctly.
Runtime mungwall works on:
* pc-i386
* pc-x86_64
* linux-i386
* linux-x86_64
* darwin-x86
* linux-ppc
Works on all hosted ports, if the port itself is working.
* amiga-m68k
* Not on sam440-ppc and efika-chrp-ppc, even if they would be able to be built at moment. Does not work on (for now, need NVRAM support)
When starting my freshly rebuilt i386-linux-aros which was compiled with full debugging support I get sometimes the error "Program exited with code 0377". Add the following to your .gdbinit:
set follow-fork-mode child
Here are some of the custom AROS gdb functions (defined in ".gdbinit" file) to resolve "in ?? ()" entries in backtrace:
<pre>
#0 0xb7ffd424 in __kernel_vsyscall ()
#1 0xb7e2a657 in sigsuspend () from /lib/libc.so.6
#2 0xb7c63900 in ?? ()
#3 0xb7c640e3 in ?? ()
#4 0xb7c641e0 in ?? ()
</pre>
You can use
loadseg 0xb7c63900
loadframe 2
or
loadbt
and some others. Use "help " for a little help text. If the commands do not work try "loadkick" first.
Use "thistask", "taskready", "taskwait" to get list of AROS tasks. "bttask " shows backtrace of a task which is in ready or in wait queue and "loadseg" to resolve "??" entries in it's backtrace ("loadframe" would not work as it assume current running task).
===Native debugging tools for AROS===
to enable debugging at boot time entering the GRUB menu editing line (E key) and adding "debug=memory" to your boot line, then press Ctrl+X to complete booting.
SYS:Tools/Debug/'''Bifteck'''
Open a shell and enter the line below to run Biftek and grab the debug messages collected in RAM into a text file.
tools/debug/bifteck > ram:debug.txt
and certainly does not open a window. It is a shell tool and only dumps data located from the debug location.
It is therefore important to 'catch' that debug data as soon as possible (before it gets overridden). You should invoke bifteck at the first opportunity before doing anything else. You can use the TO option to store bifteck output to a file or you can pipe it manually to a file.
SYS:Tools/Debug/'''Sashimi''' - displays error messages
One suggestion is to do a bug() debugging. Each time bug() is executed it will be output on sashimi.
You include <aros/debug.h> and place bug("something\n"); in your source code at location though which control passes.
To get the output - open an aros shell
SYS:Tools/Debug/sashimi > RAM:out.txt
'''Ctrl C''' to end the output to the RAM Disk.
# open shell, and type
# ram: (to switch to ram drive)
# System:Tools/Debug/Sashimi > mylogfile.txt
# open AHI prefs using wanderer (or use another opened shell)
# play test sound
# close AHI prefs
# shell still open with Sashimi running: press ctrl-c to break Sashimi and return to prompt.
# in shell: copy mylogfile.txt System: (or to your required location)
SYS:Utilities/'''Snoopy''' - monitors OS function calls, run "Sashimi" to see Snoopy's output
SYS:Tools/'''WiMP''' - the Window (and Screens) Manipulation Program
You can use the -E option of gcc to find out how preprocessor macros are expanded.
===Errors===
crash in strcasecmp usually means that one of its arguments is NULL.
empty space between these two names, prossibly some invisible character
Old Amiga [http://www.amigacoding.com/index.php?title=Guru_codes&redirect=no Guru Codes]
If the crash is in intuition. Sometimes, if it relates to text, a null pointer sets it off.
an uninitialised pointer can have any address (this is a common fault).
Compiling on 64bit, Many old code would not properly typecast when doing pointer-integer conversions and thus at least throw a warning. This can easily be located and fixed.
[http://www.aros.org/cs/documentation/developers/app-dev/portable.php Portable code]
* Use texteditor or some tool to replace all "ULONG" with "IPTR" and "LONG" with "SIPTR" in the sources.
* Fix (change IPTR/SIPTR back to ULONG/LONG) the few places which really rely on ULONG/LONG being exactly 32 bit. That's for things like pixel (ARGB) buffers, structs written/read to disk, colormaps, but probably not much else.
Then again, many current compilers also throw a warning when you try to assign a pointer value to an integer and the integer is possibly too small. This happens under .NET for example when a 64 bit pointer is assigned to something like an ULONG - so exactly the case which you described.
=== Example ===
<syntaxhighlight lang="c">
/* 1. Header for your name,date,purpose of program.
2. Pre-processor directives. This will include the #includes for files you want to add.
3. Includes for function prototypes if necessary.
4. Main()
Create Pointers for Libraries and any Window you want to open.
5. Open necessary libraries.
6. Check if open exit program if fail.
7. Open a window exit program if fail.
8. Add your program
9. Close Window
10 Close Libraries.
11 End Program. */
/* standard os included headers <.h> */
#include <dos/dos.h>
#include <dos/dosasl.h>
#include <dos/dosextens.h>
#include <dos/exall.h>
#include <dos/rdargs.h>
#include <exec/memory.h>
#include <exec/types.h>
#include <utility/utility.h>
#include <intuition/intuition.h>
/* define as unresolved external references (proto/xxx.h) and compiler will link to auto(matically) open library */
#include <proto/arossupport.h>
#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/cybergraphics.h>
#include <proto/datatypes.h>
#include <proto/icon.h>
#include <workbench/workbench.h>
#include <workbench/icon.h>
#include <datatypes/pictureclass.h>
#include <proto/muimaster.h>
#include <libraries/mui.h>
#include proto/bsdsocket.h
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* my own headers ".h" */
#define CTRL_C (SetSignal(0L,0L) & SIGBREAKF_CTRL_C)
#define isDir(fib) ((fib)->fib_DirEntryType >= 0)
#define ARG_TEMPLATE "FILE/A,ALL/S,QUIET/S,W=WIDTH/N,H=HEIGHT/N,M=METHOD,DEFTOOL"
int main(void)
{
return retval;
} /* main */
</syntaxhighlight>
<syntaxhighlight lang="c">
</syntaxhighlight>
If you used c++, there is not yet c++ support in our shared library system.
The easiest way to create / compile a shared library would be to use the AROS build system but the libraries can be created manually. You have to create a ROMTAG structure and some header files.
A shared library is built with the %build_module macro with a line like this:
%build_module mmake=MetaTarget modname=mylib modtype=library files=SourceFiles
This macro can build different AROS module types, like devices, Zune classes, HIDDs, etc.
<pre>
##begin config
version 1.0
##end config
##begin functionlist
void func1(LONG a, LONG b)
int func2(char *s, ULONG a)
##end functionlist
</pre>
Alternatively,
<pre>
#ifndef LIB_H
#define LIB_H
#define __NOLIBBASE__
#include <exec/libraries.h>
#include <exec/semaphores.h>
#include <dos/dos.h>
#ifdef __AROS__
//#include <aros/debug.h>
#define reg(x)
#define __saveds
#endif
#define USESYSBASE struct ExecBase *SysBase = Base->My_SysBase;
struct MyTestBase
{
struct Library My_Test_Lib;
struct ExecBase *My_SysBase;
APTR My_SegList;
int testint;
};
#endif
</pre>
<pre>
/*--------------------------------------------------------------------------*/
/* Resident header written for mytest.library */
/*--------------------------------------------------------------------------*/
#define __NOLIBBASE__
#define VERSION 1
#define REVISION 0
#define LIBHEADNAME mytest
#define LIBHEADNAMESTR "mytest"
#define COMPDATE "04.10.2015"
#define VERS "1.0"
#define LIBBASETYPE struct MyTestBase
#define LIBBASETYPEPTR LIBBASETYPE *
#include <aros/debug.h>
#include <exec/exec.h>
#include <proto/exec.h>
#include <exec/resident.h>
#include <exec/nodes.h>
#include <exec/libraries.h>
#include <aros/symbolsets.h>
#include "lib.h"
const UBYTE lib_name[] = LIBHEADNAMESTR ".library";
const UBYTE lib_id[] = "$VER: " LIBHEADNAMESTR ".library " VERS " (" COMPDATE ") by ALB42\n";
extern const APTR FuncTable[];
AROS_UFP3 (LIBBASETYPEPTR, InitLib,
AROS_UFPA(LIBBASETYPEPTR, Base, D0),
AROS_UFPA(BPTR, seglist, A0),
AROS_UFPA(struct ExecBase *, sysbase, A6)
);
static struct LibInitStruct
{
IPTR LibSize;
const APTR *FuncTable;
const struct DataTable *DataTable;
APTR InitFunc;
}
const LibInitStruct =
{
sizeof(LIBBASETYPE),
FuncTable,
NULL,
(APTR)InitLib
};
const struct Resident romtag =
{
RTC_MATCHWORD, /* match word */
(APTR)&romtag, /* back pointer */
(APTR)(&romtag + 1), /* skip pointer */
RTF_AUTOINIT | RTF_EXTENDED,/* flags */
VERSION, /* version */
NT_LIBRARY, /* type of module */
0, /* init priority */
(STRPTR)lib_name, /* module name */
(STRPTR)lib_id + 6,
(APTR)&LibInitStruct,
REVISION, NULL
};
AROS_UFH3 (LIBBASETYPEPTR, InitLib,
AROS_UFHA(LIBBASETYPEPTR, Base, D0),
AROS_UFHA(BPTR, seglist, A0),
AROS_UFHA(struct ExecBase *, sysbase, A6)
)
{
AROS_USERFUNC_INIT
Base->My_SegList = seglist;
Base->My_SysBase = (APTR)sysbase;
Base->testint = 0;
USESYSBASE
bug("InitLib\n");
if (!set_open_libraries())
{
set_close_libraries();
return NULL;
}
return Base;
AROS_USERFUNC_EXIT
}
AROS_LH1(LIBBASETYPEPTR, LibOpen,
AROS_LHA (ULONG, version, D0),
LIBBASETYPEPTR, Base, 1, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibOpen\n");
(void)version;
Base->My_Test_Lib.lib_OpenCnt++;
return Base;
AROS_LIBFUNC_EXIT
}
__saveds APTR LibExpungeInternal(LIBBASETYPE *Base reg(a6))
{
USESYSBASE
APTR seglist;
bug("LibExpungeInternal\n");
if (Base->My_Test_Lib.lib_OpenCnt)
{
return 0;
}
seglist = Base->My_SegList;
Forbid();
Remove((struct Node*)Base);
Permit();
FreeMem((APTR)Base - Base->My_Test_Lib.lib_NegSize, (LONG)Base->My_Test_Lib.lib_PosSize +
(LONG)Base->My_Test_Lib.lib_NegSize);
set_close_libraries();
return seglist;
}
AROS_LH0(BPTR, LibClose,
LIBBASETYPEPTR, Base, 2, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibClose\n");
if (!(--Base->My_Test_Lib.lib_OpenCnt))
{
return LibExpungeInternal(Base);
}
return 0;
AROS_LIBFUNC_EXIT
}
AROS_LH1(BPTR, LibExpunge,
AROS_LHA(LIBBASETYPEPTR, Base, D0),
struct ExecBase *, sysBase, 3, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
(void)sysBase;
USESYSBASE
bug("LibExpunge\n");
return LibExpungeInternal(Base);
AROS_LIBFUNC_EXIT
}
AROS_LH0(LIBBASETYPEPTR, LibReserved,
LIBBASETYPEPTR, Base, 4, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibReserved\n");
return 0;
//return (APTR)LibReserved();
AROS_LIBFUNC_EXIT
}
// Space for your own functions
// do not forget to update the FuncTable as well
AROS_LH1(int, TestFunction,
AROS_LHA(int, TestValue, D0),
LIBBASETYPEPTR, Base, 5, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("TestFunction\n");
Base->testint = TestValue + Base->testint;
return Base->testint;
AROS_LIBFUNC_EXIT
}
// Functable -> Table of all functions in the Library, in right order - important!
const APTR FuncTable[] =
{
&AROS_SLIB_ENTRY(LibOpen,LIBHEADNAME,1),
&AROS_SLIB_ENTRY(LibClose,LIBHEADNAME,2),
&AROS_SLIB_ENTRY(LibExpunge,LIBHEADNAME,3),
&AROS_SLIB_ENTRY(LibReserved,LIBHEADNAME,4),
&AROS_SLIB_ENTRY(TestFunction,LIBHEADNAME,5),
(void *)-1
};
// AutoInit stuff
void *__PROGRAM_ENTRIES__symbol_set_handler_missing;
void *__LIBS__symbol_set_handler_missing;
// end of AutoInitStuff
</pre>
Makefile
<pre>
VPATH =
CFLAGS = -O2 -g -fomit-frame-pointer -W -Wall -Wno-parentheses
CC = i386-aros-gcc
LD = i386-aros-gcc
LDFLAGS = -nostartfiles -Wl,-Map -Xlinker linkermap
LIBS = -lautoinit -llibinit
STRIP = i386-aros-strip --strip-unneeded --remove-section .comment
OBJS = lib_header.o
all: mytest.library
mytest.library: $(OBJS)
$(LD) $(LDFLAGS) $^ $(LIBS) -o $@
lib_header.o: lib_header.c lib.h
clean:
rm -f *.o *.library *.ppu testlibrary linkermap
</pre>
Porting UNIX library to AROS - dealing with static variables which would make it easy to port such libraries to AROS, keeping the benefits of sharing them on disk, but losing the benefit of actually sharing them in memory.
Our problem arises by the fact we want to share the actual code (the .text section of the library) and constant data, but we need to have per-task .bss and .data sections. If we get rid of our intention to share the .text and .rodata sections, things get quite easy: just load and relocate the library whenever it's open, by whoever it's open. It's like statically linking the library into the executable, except that the final linking is done at runtime.
In the V0 branch, in workbench/hidds/hidd.nouveau was committed pcimock.hidd. This is a pci driver that allows mocking real PCI devices under linux-hosted. The main idea is to be able to run the real hardware driver under linux-hosted with as little changes as possible (some changes will always be needed though unless someone wants to write complete device simulator) so that driver's code paths can be executed and debugged using gdb. This was a very helpful capability when porting nouveau. Now it is externalized from nouveau.hidd and can be used by other people porting drivers. The pcimock.hidd can currently mock 4 different nvidia cards, 1 AGP bridge and also mock irq.hidd.
What's the difference between this driver and the pcilinux.hidd? I used that one to develop many different HW drivers for aros. As far as I understood the intention of pcilinux.hidd it is supposed to get access to real hardware that is running under linux. The pcimock.hidd goal is to mock the hardware. For example my dev box is a PCIE system, but I still would like to run the AGP codes paths in nouveau under linux-hosted to check if they don't seg fault. The other case would be to run codes paths for hardware that the developer does not have (Fermi cards in my case). In the case of pcimock.hidd, the AROS driver's code paths will execute as long as you add proper mocking (for example fill in PCI config area or values for registers in BARs). This is an advantage for ported drivers - the code should already work (since it worked on another system) but there might have been mistakes made during porting which can be detected easily with gdb.
In case you are writing your driver from scratch, pcilinux.hidd hidd will give you more advantage, since you can actually access the real hardware from linux-hosted.
== Misc ==
===APL, MPL, BSD, GPL and LGPL Licences===
The majority of AROS sources in licensed under AROS Public License ([http://aros.sourceforge.net/license.html APL]) which (to a degree) protects us from someone taking AROS sources and not contributing improvements back (for example MorphOS took some AROS source and then contributed changes back)
It is written to allow the use of AROS code in other open source or commercial projects without exception whilst providing a mechanism so that improvements/additions can find their way back to the original source in one form or another.
There are "3rd" party applications used by AROS that do not fall under this license, which are an extra "Contrib" download for convenience.
Anyone can port GPL-ed network and sound drivers as AROSTCP and AHI are GPLed. Direct using (porting) [http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs GPL]-ed code in other parts of AROS (gfx, sata, usb) is not possible because AROS license is not compatible with GPL. You need to utilize permissive licensed code like BSD or MIT/X11.
BSD and MPL license are the closest to APL.
APL however is not so compatible with LGPL/GPL.
LGPL case - you cannot statically combine APL code with LGPL. You can, however thank to LGPL being "lesser" restrictive, use LGPL dynamically loaded libraries in APL codes.
GPL case - you cannot combine APL code with GPL in any way if there is no explicit clause by GPLed code authors allowing that. If you do combine APL with GPL in "bad" ways described above - you have a problem (you violate GPL). This problem might result in everything in AROS becoming GPL or everything running or AROS becoming GPL (here I'm not sure really). The other scenario is that you are not allowed to legally distribute such code at all. To be honest I have grasped how to violate GPL, but I'm still no exactly sure what happens when you violate it (but I'm sure it's not anything nice)
GPL software can run on top of non-GPL "system components" (see system components exception of GPL), but the other way around (non-GPL using GPL) leads to problems. This means applications like scout, or Quake III are ok (in the majority of cases).
Theres no reason GPL drivers cannot be ported - but they cant be in AROS's ROM (requires linking APL code with GPL), nor can AROS depend on them (e.g. they must use existing apis).
If they are launched (dynamically linked) by a user action that is allowed. It is also allowed to distribute such binaries together for convenience.
GPL is not about statical or dynamic linking but is about executing process and function calls.
These components - SFS, isapnp, Zune texteditor, AHi, network drivers, freetype, openuirl, BHFormat, Edit and (" dynamically loaded libraries") are LGPL, not GPL. Mesa/Nouveau stuff is MIT. Some user tools are GPL though.
'''AROS (system)'''
* system components (libraries/classes/devices/etc) cannot be GPL as they would propagate GPL to complete system as well as GPL is not compatible with MPL from which APL is based
* system components can be LGPL v2 or a permissive license (MIT/BSD)
* system applications can be anything you like (but still I would prefer APL or permissive so the code can be reused if needed)
'''Contrib:'''
* no rules - contrib does not impact AROS system since nothing in AROS system depends on contrib.
About stealing code: The chances of this happening is exactly the same whether we are APL or GPL. If any closed-source option wanted to do it, there is no one that can validate otherwise. MorphOS has used some AROS codes, but contributed changes back.
The rationale behind APL is that while it guarantees that the original developer will get the improvements back (to a certain degree - file based), the person who uses the codes does not have to open his original codes. BSD does not guarantee that the original developer gets improvements. GPL requires the person using the codes to open his codes as well.
The copyright holders needs to stay - we just need information from them that the codes are available under APL (for example a checked-in file like in case of Poseidon). We don't do transfer of copyrights.
; Ultimately what can and cannot be done is up to the author(s) - not the licence.
===AROS source code tree===
* http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-trunk.txt
* http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-contrib.txt
Found this interesting (non-GPL) licensing 'anomaly' - to keep in mind for distributors.
Programs that lose their license if sold ("non-profit only" licensed):
contrib/aminet/comm/term/TinyTerminal
contrib/aminet/dev/basic/bwBASIC
contrib/aminet/text/edit/xdme
contrib/fish/aroach
contrib/fish/lotto
contrib/fish/shuffle
contrib/fish/touch
+ cdvdfs.
Here is a list of all the GPL/GPLv2/GPLv3 licenses fossology found, what have explicit licenses in their comments.
excluded LGPL, BSD/GPL dual licensed and programs (such as Prefs/Edit and BHFormat)
<pre>
AROS/rom/dbus/include/ AFL_v2.1 ,GPL_v2+ (supposedly AFL < 3 is GPL incompatible)
AROS/workbench/classes/zune/betterstring/include/ GPL_v2+
AROS/workbench/classes/zune/texteditor/include/ GPL_v2+
AROS/workbench/classes/datatypes/gemimage/ GPL_v2+ GPL
AROS/workbench/classes/datatypes/degas/ GPL_v2+
AROS/workbench/libs/openurl/README: GPL
AROS/workbench/network/smbfs/documentation/ GPL_v2
AROS/workbench/network/smbfs/source_code/ GPL_v2+
AROS/workbench/network/stacks/AROSTCP/bsdsocket/kern/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/mmakefile.src conf.h GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/sys/ CMU ,GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/net/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/api/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/conf/conf.h: GPL_v2
AROS/workbench/network/stacks/AROSTCP/netinclude/net/radix.h: CMU ,GPL_v2
AROS/workbench/devs/AHI/AHI/ GPL_v2+
AROS/workbench/devs/AHI/AddAudioModes/ GPL_v2+ AROS/workbench/devs/AHI/AddAudioModes/COPYING: GPL
AROS/workbench/devs/AHI/Docs/texinfo.tex: GPL_v2+
AROS/workbench/devs/AHI/COPYING: GPL
AROS/workbench/devs/AHI/Drivers/EMU10kx/ GPL_v2+
AROS/workbench/devs/AHI/AHI-Handler/ GPL_v2+
AROS/workbench/devs/networks/rtl8029/ GPL GPL_v2+
AROS/workbench/devs/networks/pcnet32/ GPL GPL_v2+
AROS/workbench/devs/networks/ppp/LEGAL: GPL
AROS/workbench/devs/networks/atheros5000/ GPL_v2+
AROS/workbench/devs/networks/rhine/ GPL_v2+
AROS/workbench/devs/networks/nForce/ GPL_v2+ GPL
AROS/workbench/devs/networks/prism2/ GPL GPL_v2+
AROS/workbench/devs/networks/fec/LEGAL: GPL
AROS/workbench/devs/networks/rtl8139/ GPL GPL_v2+
AROS/workbench/devs/networks/etherlink3/ GPL GPL_v2+
AROS/workbench/devs/networks/intelpro100/ GPL GPL_v2+
AROS/workbench/devs/networks/rtl8169/ GPL GPL_v2+
AROS/workbench/devs/networks/emac/ GPL GPL_v2+
AROS/workbench/devs/networks/rtl8168/ GPL GPL_v2+
AROS/workbench/devs/networks/realtek8180/ GPL_v2+
AROS/workbench/devs/networks/via-rhine/via-rhine.c: GPL_v2+
AROS/workbench/devs/networks/via-rhine/ GPL GPL_v2+
AROS/workbench/devs/networks/e1000/ GPL_v2
AROS/workbench/devs/networks/sis900/ GPL GPL_v2+
</pre>
AHI: it has special provisions (COPYING.DRIVERS). The library is LGPL, preferences software is GPL and drivers can be anything without breaking GPL/LGPL.
Network stack: well, we are long overdue for a new, IPv6 enabled network stack anyway, anyone interested? ;) Seriously though it seems like the glue code is GPL and as all the drivers. However some of the drivers are our own code, so they could be relicensed to LGPL.
Same filter as the AROS trunk list. These should all be libraries or plugins - no programs.
<pre>
contrib/regina/utsname.h: GPL_v2+
contrib/mui/classes/nlist/include/default-align.h: GPL_v2+
contrib/mui/classes/nlist/include/amiga-align.h: GPL_v2+
contrib/mui/classes/BWins/include/MUI/BWin_mcc.h: GPL
contrib/mui/classes/BWins/include/BWin_private_mcc.h: GPL
contrib/mui/classes/BWins/COPYING: GPL_v2
contrib/mui/classes/BWins/MCC_BWins.readme: GPL_v2
contrib/mui/classes/thebar/include/default-align.h: GPL_v2+
contrib/mui/classes/thebar/include/amiga-align.h: GPL_v2+
contrib/gfx/libs/wazp3d/LEGAL: GPL
contrib/gfx/libs/wazp3d/Wazp3D.readme: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d.c: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d_opengl.h: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d_opengl.c: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/Wazp3D.h: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/Wazp3D.c: GPL
contrib/libs/mpega/ GPL_v2+
</pre>
http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-contrib.txt
===Types===
On AROS following rules apply:
<pre>
1. BYTE/UBYTE is 8bit, WORD/UWORD is 16bit, LONG/ULONG is 32bit, QUAD/UQUAD is 64bit, the types are comparable with stdint types (int8_t, int16_t, int32_t, int64_t)
2. IPTR/SIPTR are integer types large enough to fit pointer, that is sizeof(IPTR) = sizeof(APTR) = 4 on 32bit system, and = 8 on 64bit system
3. ti_Data in TagList is large enough to hold a IPTR/APTR type.
4. never store a pointer in integer of type LONG. It may work (if the pointer has upper 32bits clear), but does not have to. Compiler should warn you about that.
5. If you are unsure about point 4, allocate your memory with MEMF_31BIT flag set. But don't expect that AROS internals will do the same.
</pre>
point 4 is actually important.
* UBYTE/BYTE for 8bit
* UWORD/WORD for 16bit
* ULONG/LONG for 32bit
* UQUAD/QUAD for 64bit
<pre>
UBYTE Unsigned 8 bit integer variable (byte).
BYTE Signed 8 bit integer variable (byte).
UWORD Unsigned 16 bit integer variable (word).
WORD Signed 16 bit integer variable (word).
ULONG Unsigned 32 bit integer variable (longword).
LONG Signed 32 bit integer variable (longword).
FLOAT 32 bit IEEE floating point variable.
UQUAD Unsigned 64 bit integer variable.
QUAD Signed 64 bit integer variable.
DOUBLE 64bit IEEE floating point variable.
BOOL Boolean variable, TRUE and FALSE are also defined in exec/types.h.
VOID Void.
APTR A generic pointer for multiple purposes - Arrays.
STRPTR A pointer to a null-terminated string.
IPTR Really important in AROS, the only way to declare a field that can contain both: an integer or a pointer.
</pre>
if you want to write really portable app, you may be interested in standard datatypes defined in C99: int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t, intptr_t, uintptr_t. They are all defined in inttypes.h include file.
In exec/types.h the following short-cuts are typedef'd. They are used often in AROS, so you should nearly always include exec/types.h and soon only they will be removed from sys/_types.h include, all types are now defined in include files named aros/types/xxx.h.
(Preparation for C library split; sys/xxx.h include will only be available there when compiling with POSIX C library)
Compiler specific types, like int and long might change their size. In case of AROS, similar to linux, int remains 32 bit whereas long grows to 64 bits in size.
If you use Amiga-like data types, i.e. BYTE/UBYTE, WORD/UWORD, LONG/ULONG and QUAD/UQUAD or the C99 standard types (uint8_t and so on, see stdint.h include) then you should have less issues to solve than by using types without size guarantee.
Of course, all pointers grow to 64 bytes using 64bit cpu. Most of the code can be just recompiled and will work. In rare cases, where e.g. pointers are casted to integers, a special care must be taken. Especially in the cases, where pointer is casted to LONG/ULONG (this code will break on 64 bit AROS) e.g. '#define IPTR ULONG'.
With compiler delint patches which the majority of them are simple casting issues to make the compiler happy. Notice some of the changes involve introducing double casts. In very recent versions of GCC. Yes, the bulk of the double casts are for converting 32 bit addresses (ie from a 32 bit PCI DMA address register) to a 64 bit pointer. First cast is to IPTR (to expand to 64 bits, and prevent sign extension if the address is above 0x7FFFFFFF), and then to APTR.
ULONG != IPTR except on 32bit .. so if you need to store pointers make sure and use IPTR and not ULONG (which some old code does). For this reason things like Taglist elements are 64bit (since the tag data can be a pointer).
If your passing items on the stack you should use the STACKED attribute to make sure they are correctly aligned (on 64bit all items on the stack are 64bit..)
There is more issues like using "== 0L" causes problems.
===Endian===
*BE
*LE
Use the macros from <endian.h> instead making a guess based upon architecture defines
<pre>
#if _BYTE_ORDER == _BIG_ENDIAN
#elif _BYTE_ORDER == _LITTLE_ENDIAN
#else
+
#error <whatever.h> - Byte order for this architecture is unsupported!
</pre>
===SVN and GIT===
If you want to help develop AROS OS itself, you can
* view current GIT/SVN entries [http://aros.sourceforge.net/ Aros Org website] or [https://github.com/aros-development-team/AROS Github], [https://github.com/ezrec older ezrec mirror], [https://github.com/michalsc/AROS/ older mirror], [https://trac.aros.org/trac/timeline TRAC], [],
* awaiting update [http://repo.or.cz/w/AROS.git git repo], [http://www.ohloh.net/p/aros/commits ohloh] or [https://svn.aros.org/svn/aros/trunk/ svn repo] and access [Git version git://repo.or.cz/AROS.git here],
* deprecated [https://www.gitorious.org/aros/aros/commit/a7fda9e ARIX commits] or [https://gitorious.org/aros/aros GIT old]
If you have SVN access (early 2015 introduced a new SVN server, create a new account at trac aros org) and/or have obtained the source [http://aros.sourceforge.net/download.php AROS site] - you can compile the current build tools/environment using:
> make development
and follow this [http://aros.sourceforge.net/documentation/developers/compiling.php#building procedure] or [https://github.com/apiraino/aros_guide Guide]
https://trac.aros.org/trac#Developing
If you plan on contributing back changes, please post information about such changes first on this [http://mail.aros.org/mailman/listinfo/aros-dev/ mailing list] for more experience developers can validate whether they are correct.
Then there are the nightly build machines. They svn update before the build and run configure as one of the next steps. autoconf might be added to the nightly build scripts.
Our build relies on packages downloaded from Internet (SDL for example) - it always worked this way. The minimal requirement (when just building core AROS) is binutils and gcc. If you build contrib as well, you need many more packages to be downloaded.
https://gitorious.org/aros/aros/commits/crosstools-II
git://gitorious.org/aros/aros.git
Branch crosstools-II there is only one commit on top of ABI_V1
<pre>
../../aros-src/AROS/configure --enable-ccache
--with-portssources=~/aros/Sources --target=pc-x86_64
--with-aros-toolchain-install=/home/weissms/media/data/aros/test/crosstools/pc-x86_64
</pre>
and
<pre>
../../aros-src/AROS/configure --enable-ccache
--with-portssources=~/aros/Sources --target=pc-i386
--with-aros-toolchain-install=/home/weissms/media/data/aros/test/crosstools/pc-i386
</pre>
build OK.
:''More information: [[Aros/Developer/Maintainer|AROS Maintainer Docs]]''
===SDI Calls===
Integrate the 'SDI'-headers to allow easier porting to all amiga-like platforms.
<pre>
PUTCHARPROTO( PutTheChar, char c, struct SPrintfStream *s )
{
// REAL CODE
}
</pre>
have "SDI_compiler.h" and "SDI_hook.h" included
its more organized like
#include SDI/SDI_hook.h
than
#include SDI_hook.h
option 1 --- i also use when back porting from amiga's..
<pre>
#ifdef __AROS__
#include SDI/SDI_hook.h
#else
#include SDI_hook.h
#endif
</pre>
also
you can add the -i include/sdi/ location if you do not want to add or edit any files.
Defining HOOKPROTO to IPTR name(struct IClass * cl, Object * obj, Msg msg); solved the problem
A MUI application most likely needs only the HOOKPROTOxxx SDI macros. They are compatible with AROS, only the attributes (hook, object attribute) must be given in the right order. examine compiler/include/aros/symbolsets.h (AROS_LIBREQ)
compiling mui stuff for aros setting -std=gnu99 is necessary (i have had -std=c99 most of the time).
===Locale with Flexcat===
Most languages have a locale, but not every app is localized, the only thing needed is to translate the "catalog" files. It is a case of locating the correct catalog and saving the translated version.
For every app that lacks of your language catalog and is localized anyway, you should find (in the sources) files related to locale:
* file.cd = catalog descriptor, contains base msg, with internal language (usually english)
* language.ct = catalog translation, contains every translated msg, indexed as in the file.cd.
Compare with other localized apps... Then, "make my_app-catalogs" should create and install your translated catalogs. ex : for, saying, sys:prefs/wanderer:
on root of AROS sources, type:
"make workbench-prefs-wanderer-catalogs"
then (if you changed the .cd file):
"make workbench-prefs-wanderer"
For apps not localized, you have to adapt their code to support it, if it is possible...
noticed the original .cd file has many (//) strings at the end of any voice, so added them also to the .ct file.
That (//) is only for cd files. I'm highly recommending to use FlexCat for updating ct files, e.g. like this:
flexcat app.cd deutsch.ct newctfile deutsch.ct
You'll get error checking and new entries are marked in the resulting ct file.
When editing .ct files, only change those lines containing translation and perhaps version string, nothing else.
The rest is up to the relevant tool, flexcat. In order to update your translation, type in the following in your shell:
flexcat xyz.cd xyz.ct NEWCTFILE xyz_upd.ct COPYMSGNEW
This way you will not only make sure you have correct translation file but flexcat also pre-fills newly added strings with "*** NEW *** text. Even better tool for checking cd/ct/catalog files is catcheck, but this one is sadly only available for AmigaOS/68k...
Some languages have variations, like portugues from portugal and portugues from brasil differs...
This is the way to go. I will have a look at language files, but basically if those two languages differ you have to do two separated set of translation files, yes.
(you could create a brazilian slang language localization too)
* At system level localization for one language is a dot language file.
(ex: locale:languages/klingon.language)
* At app level localization is a dot catalog file
(ex: locale:catalogs/klingon/system/libs/dos.catalog)
* At sources level, the dot ct file, and "$language" dot cd files and some building framework.
(ex: catalogs/my_app.ct catalogs/klingon.cd catalogs/mmakefile.src support.c support.h)
Please, use Flexcat to generate CT files:
FlexCat wanderer.cd NEWCTFILE=deutsch.ct
Then fill the first 2 lines with something useful:
<pre>
## version $VER: wanderer.catalog 1.1 (9.2.2006)
## language deutsch
</pre>
You can even update the CT-File: (This adds the new strings)
FlexCat wanderer.cd deutsch.ct NEWCTFILE=deutsch.ct
To compile a catalog you only need the .cd file and your translation (.ct file):
FlexCat multiview.cd deutsch.ct CATALOG=MultiView.catalog
[http://murks-ide.svn.sourceforge.net/viewvc/murks-ide/trunk/src/Catalogs/flexcat_linux?revision=100 Linux version of FlexCat]
: [http://aros.sourceforge.net/documentation/developers/app-dev/localization.php#localization-for-non-developers More information]
A script which compares the required version (i.e. the version which an application/module etc. tries to open) with the version of the existing CT files. The result is in this table:
https://github.com/aros-translation-team/translations/wiki/Progress
The following cases are highlighted:
n/a i.e. CT misses at all
version in existing CT file is lower than the required version
It might be a bit difficult to participate if you haven't worked with Git before but alternatively you can send your CT files to our Slack channel.
When the ct file has been generated via flexcat (flexcat keyshow.cd NEWCTFILE=spanish.ct) it has the following header:
---------------------------------------------------------------------------------------------------------------
## version $VER: <name>.catalog <ver>.<rev> (04.01.2021)
## language nolanguage
## codeset 0
;
---------------------------------------------------------------------------------------------------------------
Those values <ver>.<rev> are the version and revision of the CT file for the languaje or are the values of the application being localized?
The <ver> part must match with version which the application tries to open. You can find the value either in the column "Required Version" in the table which I've linked above, our you can look in the git repository. For keyshow it would be https://github.com/aros-translation-team/keyshow. You can find in the file "catalog_version.h" the right version number.
The <rev> part starts for new CT files with 0 and should be increased every time the CT file is updated.
Updated several files and created a few more that were missing on the spanish catalog.
The catalogs are in Git repositories at https://github.com/aros-translation-team
a) You tell me your Github user name. I'll invite you. You can work directly with the Git repositories.
b) You create Github forks of the catalog repositories and create pull requests.
c) You send the CT files to mrustler gmx de
===C Utils Misc===
The AROS source uses at several places the __DATE__ macro to fill the date entry of a $VER tag. Problem is that c:version doesn't understand that date format (e.g. "May 21, 2011"). As a result the output of e.g.
> "version c:shell full" contains "(null)". Is extending the version command to understand the format of __DATE__ the right solution for that problem?
AmigaOs compilers should use __AMIGADATE__ macro or similar form, if it isn't implemented it could be emulated in makefile: -D__AMIGADATE__=\"$(shell date "+%d.%m.%Y")\"
BTW. I think DD.MM.YYYY is better format than "Month DD YYY" because "Month DD YYY" is not localized in any way.
"strnicmp" shouldn't work with NULL pointers
The Situation:
compiled a linklib using c++ object files (using the c++ cross compiler).
compiled a C stub that uses the linklib (using the c++ cross compiler).
Try to link them together (using the c++ cross compiler) with C object
files (using the normal target c compiler) that need to use -nostartup
= cant do because using the c++ files pulls in arosc (for stdio etc.) -
so wants to have the autoinit stuff present.
What can I do about this??
If it is possible to manually open it then what do I need to do exactly?
=== ENV ===
The philosophy behind ENV: is that keeping configuration files there allows you to 'Use' preferences by keeping a copy in ENVARC: intact. However in some cases (like this one) it is not required.
99% of the time that statement is true (not required) for pretty much every file in ENV: or do people change their default icons - and prefs settings - every boot?
There seem to be a bad habit of late with developers changing things to reflect their own personal preference when the change isn't actually necessary - It would be nice if people could refrain from doing that in the tree without at least discussing it on the dev-list first (and with good reasoning unless they committed said work in the first place..)
We're not keen on the pollution of the "S:" dir: it's meant to be for scripts. What's wrong with "ENV:"?
Only the fact that it takes up RAM. I understand that for PCs with several gigabytes of RAM this is
irrelevant. But let's remember about other machines. The philosophy behind ENV: is that keeping configuration files there allows you to 'Use' preferences by keeping a copy in ENVARC: intact.
However in some cases (like this one) it is not required.
How about implementing in the style of HappyENV then? RAM-disk handler that falls through to reading from ENVARC: if there is no such file stored in it already. Removes RAM usage for unchanged files, removes the need to copy ENVARC to ENV in startup-sequence.
Shouldn't be too hard to make from AmberRAM, or even just extend AmberRAM to provide this service.
Is it feasable to build a special version of AmberRAM handling ENV: that will try and copy the requested file from ENVARC: if it isnt found in ENV: ?
Additionaly it could mark closed "files" as untouched - and expunge them from ENV: after a period of time to free up additional RAM:, or when the system is running low on free memory?
Silenty disappearing files may not be a good plan. Would be nice if the following would work:
ASSIGN :ENV SYS:Prefs/Env-Arc ADD
ASSIGN :ENV RAM:ENV ADD
Where new files put in ENV: end up in RAM:ENV, and opening files looks in RAM:ENV first, then SYS:Prefs/Env-Arc
Well - that's essentially what im proposing but without the assigns - or need for a RAM:ENV directory.
Adding it as a feature of AmberRAM sounds like the most memory efficient way (one handler to load in RAM) but that's only if it is possible to make it handle ENV: additionally to RAM:, and if it is even possible to add the proposed functionality (...and how to make it enable it when accessing ENV:).
===(AS)MP support===
If one has to recompile software for SMP multi core, is there any thing special one has to do to get software to run?
Use task.resource if you need to query information about what tasks are running, and clear msgports completely when they are allocated.
Most code should not need Forbid. Use Semaphores, Messages etc. to sync your own code.
Accessing system structures is a different thing. Use the proper API whenever possible.
How single structures will be protected in the future is still a moving target, at least it is not documented. And you should never use undocumented stuff
Ideas on for SMP multi-core
Another suggestion is ... Forbid/Permit function calls are meant to halt multitasking so as no other task could intervene with what ever the calling task is doing, e.g. setting semaphores. Disable/Enable calls are meant to halt interrupts and as a side effect they also halt task switching.
One option is to make it compulsory to protect shared resources with semaphores and forbid the use of simple Forbid() calls as to protect something. Setting semaphore should be done if possible with atomic instructions (check and alter in one instruction). Or make the second concurrent ObtainSemaphore call halt the second calling task and force if possible a task switch which ever gives better results.
Semaphores could store the owning tasks task pointer instead of boolean to make things easier.
As long as the CPU initiates the DMA transfers through the OS, and the OS ensures that the transferred memory is within the region accessible to the user initiating the transfer, everything is fine. The CPU is the conductor, and the CPU by that has the control of which DMA transfer is initiated and which is not.
All you need to do is to write device drivers reasonable. Hint: CachePreDMA and CachePostDMA exist.
All the Os has to do is to verify that the memory regions to be transferred are valid, and prohibit direct access to the DMA control registers from user space. None of these algorithms imply huge costs.
The current OS design doesn't really allow virtual memory in first place, Forbid() is again the problem.
[http://www.tbs-software.com/guide/index.php?guide=autodocs.doc%2Fmemory.doc&node=1 memory.library API] seem to low level. IMHO the programs should not know how the swapping is implemented. I would just go for one new memory flag
MEMF_SWAPPABLE that indicates that a certain memory region or a whole memory pool won't be accessed during Forbid()/Permit() etc. It only solves part of the problem, it only implements virtual memory and not memory protection. For the latter you need to be able make certain memory inaccessible by other programs, some memory read-only for one task and read-write for other tasks, etc. And I think this should be done in the same Address Space in order to avoid you constantly need to swap between different address spaces.
So to summarize, if there are programs using this API we may provide a wrapper layer to get them working but I am not convinced this API should be the reference API with whom to provide VM to AROS programs.
=== Variadic ===
variadic functions (i.e. functions with an arbitrary amount of arguments).
<pre>
#include <stdarg.h>
[...]
char * STDARGS GetKeyWord(int value, char *def, ...)
{
[...]
va_list va;
[...]
va_start(va, def);
[...]
va_end (args);
</pre>
Please keep with using stdarg rather than having va casted to a LONG * type and varargs handled manually. Doing so, prevents tons of casting, where a simple va_arg can be used. So, string = *((char **) args) instead of string=va_arg(va, char *).
<pre>
#include <stdio.h>
#include <stdarg.h>
int printf (const char * format, ...)
{
int retval;
va_list args;
va_start (args, format);
retval = vfprintf (stdout, format, args);
va_end (args);
fflush (stdout);
return retval;
} /* printf */
</pre>
Couldn't find varargs.h or stdarg.h. and have no use for AROS_SLOWSTACKHOOKS or AROS_SLOWSTACKTAGS.
GCC looks for stdarg.h in a different place:
/bin/linux-i386/tools/lib/gcc/i386-aros/4.2.2/include/stdarg.h
Here is a path for a "normal" header:
bin/linux-i386/tools/lib/gcc/i386-aros/4.2.2/../../../../i386-aros/sys-include/aros/system.h
The use of vararg.h isn't supported by newer gcc versions. If you want your code to run on architectures that pass part of variadic arguments in a number of registers you need to use AROS_SLOWSTACK macros. Otherwise your program will not work on powerpc and x86_64 ports.
Of course the SLOWSTACK stuff is not needed in a function that can use va_list, va_start, va_arg and va_end. It's only needed if you want to write functions like DoMethod or similar.
#include <stdarg.h>
should be enough no matter if you do cross or native compiling. If it does not work, something is wrong and should be corrected.
Stdarg.h is here, Development:lib/gcc/i386-aros/4.2.2/include/
...which is part of the compiler's default include paths. In other words, #include <stdarg.h> works out of the box, indeed. (sorry, I should have just tried it before invoking "search" or "find"...)
furthermore, myprintf() as shown above won't work, because...
printf(format, args);
...is wrong - the second argument does not match printf() prototype, it expects a argument list, but args is of type va_list (obviously) - so one has to use...
vfprintf(stdout, format, args);
...instead, just like in the original printf(), and add fflush(stdout).
additionally, one could use...
int myarg = va_arg(args, int);
...between va_start() and va_end() to access individual arguments, where each call to va_arg() returns an argument casted to the desired type (here: "int") from the list given (here: "args") and advances to the next one.
wrapping up vfprintf() and modifying the format string now is a major speedup! no more backslash-n typing! this has been haunting me for years!
On MOS and AmigaOS, the NewObject variadic function is kept in the static library. It takes most of the parameters on the stack - thanks to that the implementation of NewObject calls the NewObjectA function. Everything works perfect, and the typical MUI macros may be easily used.
This, however, is not the case when you compile for AROS. Here, NewObject is a variadic macro, not a function. Thanks such approach we do not need any custom compiler in case of systems, where the arguments of variadic functions are passed partially through registers and partially through the stack (This is the case of PPC and x86_64, this is also the reason why both OS4 and MOS require specially patched compilers).
Since NewObject is a macro, the gcc's preprocessor expects the list of macros arguments enclosed within parentheses. In MUI macros it is not the case. Imagine the following test code:
<pre>
#define foo(a,b) ((a)+(b))
int loosy_function(int a, int b)
{
return foo(a,b);
}
</pre>
This will compile and work, but the following piece of code:
<pre>
#define foo(a,b) ((a)+(b))
#define END )
int loosy_function(int a, int b)
{
return foo(a,b END;
}
</pre>
will fail with the error: unterminated argument list invoking macro "foo"
There are two ways of fixing your issue. Either create your new objects outside this huge MUI constructions, and in there use just a pointer, or get rid of the "End" macro and exchange it with "TAG_DONE)".
Badly written software is, for example, casting va_list to an APTR or even doing so as if va_list were a plain table of function arguments. Such code needs to be fixed because it has very few chances to work anywhere but on author's machine ;)
The problem is nOt that they assume sizeof(APTR) == 4, its that they often do not use APTR, and use ULONG to store pointers exclusively. If the code used APTR/IPTR as it should - most of the "problems" wouldn't exist.
It would also help if people would start using variadic arguments properly. Many coders do assumptions which shall never be made. Instead, they should consider using stdarg.h file and all the va_* functions :)
===ABI===
In the head of our SVN repository there are now only 3 directories:
<pre>
admin/
branches/
trunk/
</pre>
We have added two extra dirs there: tags and imports
As discussed when we branch ABI V0 and [[Aros/Developer/ABIv1|ABI V1]] it would also be good to introduce tags. Normally this is done in a directory in the repository called tags. Currently we don't have this directory there. (We do have branches/tags that is a hack I have done because one doesn't have write access in the top directory. I think this directory is not clean and should be removed).
The second directory I would introduce is an imports directory for implementing vendor branches as discussed in the svn [http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html book]. Currently we use code from several different projects and that code is stored inside the AROS tree; we seem to have problems with keeping this code up to date and merge our changes upstream. Maintainers of up stream projects like the MUI classes etc. have complained about this (to put it lightly).
Introducing these vendor branches would make it easier to see what changes we have made and make patches to be sent upstream and make it easier to import newer upstream versions of their code. Although can't "copy" the vendor branch into the main branch because it's already there, so start with a "merge".
Yes, the first step to make the code already in the repository compatible with the vendor branches will be the most difficult. The best way to do it the following way:
* first import the version on which the current AROS code is based into the vendor branch
* then import the new version over it in the vendor branch
* finally merge the difference between these two version in the AROS code present in the repository.
For example, place NList directly under vendor and not in a subdirectory like "contrib/zune/classes".
Actually after we have a stable [http://aros.sourceforge.net/documentation/developers/specifications/drafts/abiv1.php ABIv1 (2012 or later)]. We need to move away as much as possible from the contrib directory to some other repositories. The reasons are ...
* The AROS repository should be for the core AROS code.
* other contrib projects should be tried to be compiled for all Amiga-like OSes.
* The release scheme for AROS and the other programs should not have to be aligned.
* Binary versions should be provided on aros-archives and on aminet and/or OS4Depot to install them. (Some clever programs should maybe be provided to make the life of distribution developers easier).
* avoid parallel forks of programs for AROS and the other amiga OSes.
If there is really a need for a place for hosting AROS projects we may investigate setting up such a server but then including bug tracking, governance, maillist, etc. for each project separately. I personally think there are already enough places like sourceforge, google code, savannah, etc. where people can go for hosting such projects.
==Links==
* http://amigadocs.hokstad.com
* http://amigadocs.hokstad.com/doku.php?id=dev-links
In the future...?
*AROS 64bit - SMP, Vulkan with OpenGL compability layer
*AROS 32bit - keep for historic reasons
What would you like to see implemented in AROS?
ABIv1 completed, SMP (x86_64), SendMsg()/GetMsg() to support memory protection between target and destination, in that order. Michal Schulz and Jason McMullan have been toying with the question "What are the minimal changes needed to the AmigaOS 3.1 API to support SMP"? The answer so far seems to be "few, but subtle". For example, SysBase->ThisTask is no longer meaningful on SMP, but FindTask(NULL) is. Disable() and Forbid() are shockingly bad on performance, but adding a spinlock semaphore mode to SignalSemaphore will help new code on SMP.
Leveraging a 'common' OS with a lot of machine support (Linux, MacOS, Windows, QNX, etc.) is something that AROS has been doing for quite a long time, and it is the biggest strength of AROS. This AROS experience and programming model, in the same way the Google's Android layers on top of Linux, or MacOS X layers on top of the Darwin/BSD kernel, as a first step
* The graphics + layers subsystem could be implemented as a shim on top of a OpenGL ES implementation (ie on any modern Linux system, or the RaspberryPI's hardware, MacOS X, etc).
- This also allows every window to be on its own 3D surface with backing store, allowing Wanderer (or a Commodity)
rearrange/zoom/animate app windows without having to send a pile or refreshes to them
* Use OpenAL as the sound backend
* AROSTCP would be a thin layer over the native OS's TCP/IP stack
* dos.library, poseidon.library, and input.device would be slim shims over the native APIs
* If we move to loading all libraries' into the application's task space, instead of a single global instance of the library, this will allow SMP and MMU more easily.
- Yes, it will require a lot of work in the libraries to make this transition
- Yes, I do think it will be worth it in the end.
* A 'fat binary' install format (or, maybe LLVM bytecode) that can be 'flattend' to the target architecture on installation.
So, what would this 'AROS of the future' look like?
* AmigaOS 3.x style API, with certain 'fundamental changes' to message passing
* Uses the underlying OS' device drivers, so more AROS developer effort can go to user-visible features and bugfixes
* Allows AROS applications to run side-by-side with the OS's native apps
And why would anyone want to program on such a system?
* AROS applications would run on any system that has the AROS Framework installed
* AROS applications are pixel-for-pixel the same on all platforms.
* Develop with the knowledge that you are guaranteed OpenGL and OpenAL, and the rest of the AROS Framework
an option for mmake to dump its dependency of metatarget in a graphviz[*] input file. This should make it possible to visualize the dependencies and hopefully be inspiration for cleaning up some mess, circular or unneeded dependencies and so on.
AmigaOS gcc 9 [https://franke.ms/amiga/gcc.wiki Old versions] able to create binaries for AmigaOS and [https://eab.abime.net/showthread.php?t=93813 Upgrading gcc versions]
=== AI ===
Please see discussion of the [https://arosworld.org/infusions/forum/viewthread.php?thread_id=1933&rowstart=0 Aros world thread] [https://opencode.ai/ opencode], [https://openrouter.ai/models?categories=programming new opencode models], [https://axrt.org/media/aros-ui-ai.mp4 AI ui],
*DeepSeek V4 Flash - very good model, use it daily but prehaps a small monthly fee payable
*Ring 2.6 - good model but pricing small
Multimodal
Context
Prompt
<---
Model <---> Agent ---> End user
engine
Gemini LMStudio
Qwen Comfyui
etc
Recent, self hosting local models on laptops, mini pcs, laptops or desktops with [https://www.youtube.com/watch?v=oqvZJf5Vz7U quantization] (compressed) so reducing memory to run on 8Gb VRAM (very low size models) but for better performance more VRAM is needed for text based tasks. For smaller models, very specific prompting and chatting (iterations) for very smaller sections of your overall application as lots of supervision needed for the code produced
Ability increases by the amount of ram (more for better quality) and the memory bandwidth (how fast) but
Total VRAM should be greater than Model size (in Gbytes), context length (you set Gbytes taken) and KV cache - everything a trade off
<pre>
Small Limited Okay Better Bigger Best
1-2B 3B 7B 20B 30B model size
Q2 Q2 Q4 Q6 Q8 compressing
4GB 8GB 16GB 32GB 64GB VRAM needed
</pre>
Roughly...
*DDR4 Pi5 about 17GB/s
*DDR5 about 40Gb/s
*DDR6 about 90Gb/s about Jetson Orin Nano level
*Strix Halo about 210Gb/s
*DGX Spark about 220Gb/s
* MacBook M3 base 100GB/s Pro 150GB/s Max 200Gb/s unified memory
* MacBook M4 base 120Gb/s Pro 170Gb/s Max 250Gb/s
* MacBook M5 base 140Gb/s
* MacBook M6 base 160Gb/s Pro 180Gb/s Max
* [https://www.youtube.com/watch?v=jMnMrivvAWo Mac Studio] Max 400Gb/s to Ultra 800Gb/s
*[https://lmstudio.ai/download LMstudio single gpu],
128Gb
*[ gpt-oss-120b] 70Gb model
64Gb
*[HauHau 3.6 35B]
*[ muse-glimmer]
32Gb
Alibaba Cloud's [ Qwen] team series of large language models LLMs
*[ Qwen-3.8-35B A3B]
*[ Qwen-3.8-27B]
*[ Qwen-3.6-27B]
16Gb
*[ Qwen 3.8 27B GSQ ACO GGUF]
*[ Yue2 music creation]
*[ Suno]
8Gb
*[ glm-ocr]
*[ medGemma]
*[ qwen 3.5-4b]
*[https://github.com/sipeed/picoclaw picoclaw claude]
*[ DeepSeek R1]
*[ Qwen 3.5 9B Q4]
*[ Qwen 2.5 14b Coder]
*[ gpt-oss-20b 4Q]
Simple laptop
*[ mini CPM5-2B] for simple user interfaces of single c file apps as long as robust explicit clear instruction given
*[ Spark X2.5]
For the full experience
#Training learning using 1+ high end GPUs at least 16GB VRAM per GPU card or 64Gb+ of unified, 16Core CPU with at least 64Gb of RAM system memory
#Inference with custom asics or GPUs
For ever bigger LLMs needs one of the below but with settings adjusting
*[https://ollama.com/download Ollama single gpu]
*[https://github.com/ggml-org/llama.cpp/releases llama.CPP multi gpus],
*[ VLM multiple gpus],
*[ MiniMax H3] for audio and video but gpu 8Gb+
*[https://github.com/ideogram-oss/ideogram4 ideogram4]
*[https://github.com/calesthio/OpenMontage OpenMontage]
*[https://github.com/jamiepine/voicebox voicebox]
*[ Chatterbox] with neural watermark
*[ Index-TTS]
*[ Qwen3-TTS]
*[ Omnivoice]
*[ faster-qwen3]
*[ dots.tts]
Multimedia
*[ Kimi K3],
Refactor
*[ Devstral-small-2 256K context]
FIM - Fill in the middle
Mistral Codestral-2 for 64Gb+ unified
<pre>
Text to Audio --\
Text to Video --/ Reference Video --> Video and Audio output
</pre>
Agent = Model + Harness
Agentic
Harnesses like [ Claude Code] [ Cursor] [ ] could help models. [https://github.com/deepseek-ai/deepseek-harness Deepseek] etc allows many models to reside inside but also everything is a plugin, including the model adapter, the tool registry, the session log, and the agent loop itself, so each is replaceable from configuration
MoE mixture of experts model
==References==
{{reflist}}
{{status|50%}}
{{BookCat}}
5d0fcusgo3dw79l6nkr8505vr3qnzy1
4672201
4672200
2026-09-24T18:18:38Z
Jeff1138
301139
4672201
wikitext
text/x-wiki
{{ArosNav}}
==A technical overview of AROS==
Google translation [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs French], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Hindi], [http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Chinese],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Russian],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pt&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Portuguese]
{{Uncited}}
AROS,<ref>[http://aros.sourceforge.net/download.php References and sources]</ref> like AmigaOS (TM), is a [[w:Message passing|message-passing]], [[w:Preemption (computing)|preemptive]] [[w:Multitasking|multitasking]] [[w:Operating system|OS]].
It uses [[w:Reentrant (subroutine)|re-entrant]] shared libraries to save memory space.
AROS is based around an executive library kernel (Exec) and two other libraries:
* Exec (the "kernel", which is not a kernel in the modern sense),
* Intuition (graphics and GUI, integrated into the system) and
* AmigaDOS (Disk Operating System, the Metacomco's Tripos modified to work with Exec).
The design philosophies of AmigaDOS and Intuition are rather different, the former adopting a C-like API and the latter creating an [http://www.basden.demon.co.uk/amiga/amiga.oo.html object-oriented], message passing aware environment for the programmer. The system base is the only absolute address in AmigaOS (located at 0x00000004) this does differ with AROS as AROS SysBase is automatically provided (no $4) but everything else is dynamically loaded. The OS is well known for delivering high performance due to its close connections with the hardware, while simultaneously having the flexibility to support re-targetable graphics (Cybergraphics) and retargetable audio subsystems (AHI).
: Diagram showing relationships of libraries to system needed
Remember, AROS is a [http://en.wikibooks.org/wiki/Aros/Developer/ABIv1 research] operating system, and while all contributions to the base AROS code are welcome, please contact the dev list first for any core changes. Writing applications for AROS does not have this requirement.
While AROS appears and feels almost feature complete, it is still [[Aros/Developer/IncompleteAPIs|missing a small number of functions]] from the Amiga API.
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1201 This thread provides] information for setup, [http://www.aros.org/documentation/developers/index.php documentation] and whether you are interested in core OS changes and/or writing/porting software apps
*you compile directly under AROS, which can be running on either real hardware, virtual hardware
*in hosted mode under linux/window, cross-compile from that host OS (save your files as ISO-8859-15 encoding instead of UTF-8) [https://github.com/BlitterStudio/aros-compiler-docker Docker images]
'''The repository''' for 64bit and 32bit ABIv1 all hardware platforms is [https://github.com/aros-development-team/AROS current development version].
There are many forks of this so that developers can work on their own and forward changes at a later date as discussed on the dev forum
64bit PC is one of two hardware platform with another fork called [https://github.com/deadwood2/AROS abiv11] which is used for Aros One x64 PC
32bit PC is the other fork [https://github.com/deadw00d/AROS/tree/alt-abiv0 repository for current stable PC version ABIv0 with backported ABIv1 features is located which is used on AROS One and Icaros x86 32bit based distros] this is for historic reasons
Any [https://github.com/aros-development-team/AROS/issues bugs / issues can be added for ABIv1 issues]. The two individual PC forks have their own issues tab on their github webpages
We have a [https://arosdevteam.slack.com/archives/CUFV48U3H slack here], discord on [https://discord.gg/UKp9qdEBuQ Discord@AmigaDev],
==Software Development for AROS==
===Programming languages===
====Common to all====
'The Developer Environment', which primarily supports C/C++ code, there are other scripting programming languages available
:[[Aros/User/DOS|DOS]]
:[[Aros/Developer/Docs/LUA|LUA]]
:REXX [[Aros/Developer/Docs/Rexx|Regina (AROS' ARexx)]]
====Needs to be compiled/ported====
::[[Aros/Developer/Docs/LLVM|LLVM]]
::Python [ Info], [],
::[https://ae.arosworld.org/index.php?board=11.0 FreePascal FPC Aros-Exec thread], [https://archives.arosworld.org/index.php?function=browse&cat=development/language fpc arm here is very old and will not work], FreePascal for AROS has its own [http://fpcaroswiki.alb42.de/ Wikibook],
::[http://sourceforge.net/projects/xamos/ X-Amos Basic]
::[http://sdlbasic.sourceforge.net/ SDLBasic] ([https://archives.arosworld.org/index.php?function=browse&cat=development/language ])
::[[Aros/Developer/Basic/Basic4SDL|Basic4SDL]] ([https://archives.arosworld.org/index.php?function=browse&cat=development/language ])
::[http://alvyn.sourceforge.net/ Alvyn] ([http://www.dusabledanslherbe.eu/AROSPage/MISC.14.html download])
::[http://www.airsoftsoftwair.com/ Hollywood when enough users warrant a port - paid one time fee language]
::[[Aros/Developer/Docs/E|AmigaE Portable E]]
====Hardware Restricted====
'''Basic'''
:[http://amos.pspuae.com/AmosProManual/contents/c1.html '''Amos Pro'''] [http://amos.pspuae.com/index.php?action=forum#1 compatible] [http://www.amigacoding.com/index.php/Main_Page commands] (all incomplete)
:'''Blitz Basic''' [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=46537#forumpost46537 none on AROS]
:: [http://www.amiforce.de/main.php Amiblitz] on amiga(TM) emulator
:'''Amiga Basic'''
:: [ ACEBasic]
'''Misc'''
:Ruby [http://www.ruby-lang.org/en Info]/[https://archives.arosworld.org/index.php?function=browse&cat=development/language Ruby 32bit PC],
===Where to get the C/C++ Environment===
If you want to develop for AROS, its generally easier to be running linux hosted AROS development environment especially for C++, cross compiling the code. That's how most developers now are doing it. g++ is used to compile owb web browser as well as some other AROS software. If you were hoping for a rich set of C++ libraries or classes defined for the OS feature set, you might be disappointed.
AROS Native compiling is possible, but you're much more likely to run into the odd bug(s) in the dev environment since it gets little testing and fixing by other developers.
Is there a sftp software or scp over ssh available?
Maybe. At least the security part would be handled by [https://github.com/jens-maus/amissl amissl] [https://archives.arosworld.org/index.php?function=browse&cat=network/misc port]. [https://github.com/BlitterStudio/dopus5 DOpus5] has recently added sftp support. See here for a [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1974&highlight=ssh&pid=12073#post_12073 ssh scp client]
[https://arosdevteam.slack.com/join/shared_invite/enQtOTc4Mzg0NDIzNzQ0LWQ2NWZmNmMwNGIwNGEyNTgxNzU3MGFjMTk3ZThmOTQ1MTVjMzhmNTllYWQ0ZTUxMjBjMGE0Y2VjMDJmNTc5MzI#/shared-invite/email Slack Dev Forum]
====Cross compilers from Windows or Linux====
*Windows WSL2 walkthrough can be [https://arosnews.github.io/how-to-cross-compile-aros-hosted-wsl/ found here]
you want to build AROS. No problem.
Here are instructions for PC 64-bit:
https://github.com/deadw00d/AROS/blob/master/INSTALL.md
Here are instructions for PC 32-bit:
https://github.com/deadw00d/AROS/blob/alt-abiv0/INSTALL.md
And as always has been the case you can use the contrib archive to 'obtain' the development directory which contains the /native/ AROS gcc compiler and tools. That compiler is used to build AROS itself but can be used outside the AROS build process by providing --sysroot with indicated directory to cross compile for AROS.
'''64 bit'''
'''32 bit'''
A good option for multiple OS is [https://axrt.org/index.php?tab=download-aros AxRuntime lets developers compile their Amiga API-based applications as Linux binaries being able to utilize modern development tools available on Linux, like IDEs, debuggers, profilers, etc]
Older 32bit guides for Linux hosted compiler
Please install these packages before moving to next step. Below is a reference list for Debian-based distributions. Reference build system was Ubuntu 18.04/20.04 amd64.
subversion git-core gcc g++ make gawk bison flex bzip2 netpbm autoconf automake libx11-dev libxext-dev libc6-dev liblzo2-dev libxxf86vm-dev libpng-dev gcc-multilib libsdl1.2-dev byacc python-mako libxcursor-dev cmake zsh mingw64
Do all of these operations under home directory of your user or another directory where your user has write permissions.
Specifically, in a section "Linux-i386", be sure first to build the cross-compiler (toolchain-alt-abiv0-i386) and only then AROS itself (alt-abiv0-linux-i386).
Clone & build
<pre>
$ mkdir myrepo
$ cd myrepo
$ git clone https://github.com/deadw00d/AROS.git AROS
$ cd AROS
$ git checkout alt-abiv0
$ cd ..
$ cp ./AROS/scripts/rebuild.sh .
$ ./rebuild.sh
</pre>
Now to the build selection below - Linux-i386
Select toolchain-alt-abiv0-i386 - Select alt-abiv0-linux-i386 (DEBUG)
Start AROS by:
<pre>
$ cd alt-abiv0-linux-i386/bin/linux-i386/AROS
$ ./Arch/linux/AROSBootstrap
</pre>
Pc-i386 Select toolchain-alt-abiv0-i386 (if not built yet) - Select alt-abiv0-pc-i386
ISO image available in alt-abiv0-pc-i386/distfiles
Now that we have linux-hosted build, we can resume native (option 2).
Run ./rebuild.sh and selection option 2. Wait until it finished, then:
<pre>
$ cd alt-abiv0-pc-i386
$ make
</pre>
Now
<pre>
$ make bootiso
</pre>
Now, your compiler is located in toolchain-alt-abiv0-i386 directory and named i386-aros-gcc. Includes are in alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development/include and libraries are in alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development.lib.
This is how then can be passed to the compiler:
/home/xxx/toolchain-alt-abiv0-i386/i386-aros-gcc --sysroot /home/xxx/alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development -L/home/xxx/alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development/lib
../toolchain-alt-abiv0-i386/i386-aros-gcc --sysroot bin/linux-i386/AROS/Development local/helloworld/helloworld.c -o local/helloworld/helloworld
Another method was using Debian like distros and download the [https://archives.arosworld.org/index.php?function=browse&cat=development/cross gimmearos.sh script] to setup the developer environment by downloading necessary packages ... The gimmearos script is a good start in that direction, building the cross compilers and hosted AROS environment, but gimmearos.sh might be out of date or not be completely compatible with any given linux distro.
In order to do that, you have to compile AROS yourself. Download AROS source archive not contrib. Compile AROS by entering the main directory
./configure
make
([http://http://developers.aros.org/documentation/compiling.html More on compiling AROS]). The result will be a basic AROS system without development tools.
To compile C++ on Linux, type 'make gnu-contrib-crosstools', creating the cross-compilers in ./bin/linux-i386/tools/, named i386-aros-gcc, etc.
'''Note''': Currently, to make the cross compilers usable copy 'collect-aros' from tools/ to tools/i386-aros/bin/. At the moment the cross compilers if used from the Linux command line will only find it when it's there.
If you want to compile native compilers (the Developer Environment), type 'make contrib-gnu-gcc', creating native compilers in AROS' System:Development/bin directory.
When the output needs to be stripped <code>--strip-unneeded --remove-section .comment</code>
The Obj-C backend should build out of the box.
Open contrib/gnu/gcc/mmakefile.src and search for the line which contains "--enable-languages" and add "objc" to the list of languages that follows it.
--enable-languages=c,c++,objc
Better make it—enable-languages=c,c++,objc,obj-c++
ObjC++ is broken as soon as you try to use exceptions, but that might change in future GCC versions and it does not hurt having it there already.
Do you need a cross-compiler or a real compiler? In the first case you can get away with just downloading the proper gcc archive, apply the patch and proceed with the normal gcc build. In the case of a real cross-compiler then when downloading the contrib sources, also need to download the normal sources, place the contrib sources into a directory called contrib, need to install autoconf+automake+perl+python, call ./configure, cd into the subdirectory and type make.
to rebuild GCC with host == build == target == i386-pc-aros. So just get the vanilla sources and apply the patches without bothering about the build system?
[https://vmwaros.blogspot.com/2019/10/a-pre-configured-development-machine.html pre-configured VM environment vmware virtual machine to develop AROS and AROS software]
====Native compilers for AROS====
Namely gcc for C or g++ for C++ are supplied with the [[Aros/Developer/Docs#The Developer Environment|Developer Environment]], which is already '''setup''' and part of any current AROS distribution like AROS One or the nightlies
* Current GCC 6.5 (32bit) though moving to 10.5 and 15.1 (64bit)
* Older software components. GNU GCC 4.x GNU BinUtils, GNU Fileutils 4.x, GNU Textutils and others usually deprecated
On single partition systems and the Boot ISO, the AROS Developer environment is installed under "SYS:Development/". Systems with multiple partitions - such as a Work: partition - tend to install it to there instead, however it can be installed manually to any location. Please remember, if moving, that you will need to correct the Development packages 'install location' env variable to point to the new locations root - look in SYS:S/startup-sequence.
<pre>
Assign Development: SYS:Development
Assign C: Development:bin ADD
</pre>
In the aros build instructions. you need to check out contrib and/or ports into your AROS source directory, as subdirs. then, assuming you are building in an external build dir, as you should, you simply configure and "make contrib" for instance or whatever submodule you might want to build.
===Beginners Tutorials in C C++===
As AROS is [http://eab.abime.net/showthread.php?t=29856 C based] API compatible to AmigaOS 3.x, so most of the information on programming C on the Amiga applies to AROS as well. Please note that there is a lot of AmigaOS 1.3 (1985-1989) and [https://www.markround.com/amigaguide AmigaOS AOS 2.x (1990-1992)] information around but OS3.1 is recommended but limited in amount.
Brief overview of what is required to write AROS Applications
# Using [[Aros/Developer/Docs/Libraries/Intuition|Intuition]] for basic screens/windows
# Using graphics within windows via 8bit [[Aros/Developer/Docs/Libraries/Graphics|graphics]] and so onto 15-16-24bit [[Aros/Developer/Docs/Libraries/CGFX|cybergraphx]]
# Load and save work to [[Aros/Developer/Docs/Libraries/DOS|dos]] disk drives
# Using the [[Aros/Developer/Zune|ZUNE GUI Environment]]
Writing native games require this extra information
# Using [[Aros/Developer/AHIDrivers|AHI audio hardware independent API]]
# Using USB joystick/joypad with the Poseidon USB stack through [[Aros/Developer/Docs/Libraries/LowLevel|LowLevel]] library
Additional features that could be added later
# Adding additional [[Aros/Developer/Docs/Libraries/Locale|Locale]] language translations to your program
# Adding a [[Aros/Developer/Docs/Rexx|AREXX/Regina]] port to your application
# Executing Amiga(TM) [[Aros/User/DOS|DOS]] commands from your application
# Using [[Aros/Developer/Docs/Libraries/Icon|icons]] (.info files) and icon tooltypes (stack, version, and program startup options)
# Local couch or IP based SANA2 networking co-op multi player gaming support
Most AmigaOS programming books are nowadays very much out of date as most are from the late 1980s and do not cover later amigaOS releases like 3.1 for example, Rob Peck's book "Programmer's Guide to the Amiga". The Amiga ROM Kernel manuals aka RKMs like Libraries (3rd edition), Devices (), the AmigaDOS manual (3rd edition) and the Style Guide may have their uses. There are some reference examples from AmigaMail and Devcon notes (available again on an Amiga developers CD 2.1).
For Arexx then "The Amiga Programmer's Guide to ARexx" by Eric Giguere, which was published by Commodore is useful as well as an "Arexx Cookbook".
* Beginners C Guide [http://www.iu.hio.no/~mark/CTutorial/CTutorial.html C Tutorial],
* [http://www.pjhutchison.org/tutorial/amiga_c.html Amiga based but interesting]
* [http://thecguru.com/ C for beginners],
* [http://fresh2refresh.com/c/c-basic-program/ C programming basics] for students,
* [https://www.edx.org/courses Free Online course] from American Universities
* Reference Amiga [http://amigadev.elowar.com/ API reference].
* AROS based c source can be found [[Aros/Developer/Docs/Examples|here]] and lots of example code can be found inside [https://github.com/aros-development-team AROS sources] themselves and from the contrib section of the archives from [https://github.com/aros-development-team/contrib Aros site], and study the AROS applications source code, e.g. the test programs from the Tests drawer (folder/directory). Take a look at the code of some smaller AROS programs might be a better and more up to date
When you upload your builds, please write the architecture (like i386-aros, x86_64-aros, aarch64-aros etc.) in the archive name
and it is also advisable to write in the field "Requirements" the ABI (ABIv1 leave blank, for PC fork 64bit ABIv11 ends in v11, 32bit ends in , Arm Pi ends )
===Compiling C/C++ Code===
Native, although we have a IDE Integrated Development Environment (Murks), it does lack a debugger. Whilst others use a combination of a text editor and shell to edit code. Most though use an AROS hosted on Linux to take advantage of the better GCC tools like GDB and various IDEs.
Open shell - its a menu option at the top left of Wanderer (desktop). Or by using the right Win key and w (or F12 and w) within the directory with the source code. Type in
sh
to change the amiga shell into a unix shell. You can then type in ls (unix equivalent to amiga dir). Take a look [http://en.wikibooks.org/wiki/Linux_commands here] for more commands.
For a single file program-name.c or program-name.cpp
gcc -o program-name program-name.c
or
g++ -o program-name program-name.cpp
or
g++ -o test -Wall -g main.cc texturelib.cpp xmodelib.cc -lsdl -lgl
To close the shell, click on the top left-hand corner to close (twice). Once to get back the aros shell and then again to close finally. Use [http://freshmeat.net/projects/cksfv/ cksfv] as a test.
Some source code requires the addition of Amiga API libraries, like dos, which you can flag at the compile time as
gcc -o julia.exe julia.c -ldos
For DOS use -ldos as example and if you are compiling mui codes it will be -lmui or intuition -lintuition. Other missing symbols are due to linker libraries being necessary for linking in functions that aren't in the standard C libraries. For example some source code would need added
-lz or -lm or -lpng or -larosc etc.
use this in unix line command mode to search for 'search-item' in many .c files (*.cpp for c++, etc.)
grep -l 'search-item' *.c
If the program is not executable, try using parameter fno-common
"Delete #?.o"? Or if you are using abcshell then "rm *.o"
:''More information: [[Aros/Developer/Porting software]]''
=== How to make Apps have AROS 64-bit specific support code ===
[http://www.aros.org/cs/documentation/developers/app-dev/portable.php Portable code]
AROS64 already uses 64bit addressing, it just doesn't setup the MMU for more than 4GB physical memory currently.
When porting software to AROS64 it is "mostly" a case of converting ULONG's that are used to store pointers, into IPTR's instead, etc. Another quirk, is making sure items on the stack are the correct size by using the STACKED attribute for them.
* Use texteditor or some tool to replace all "ULONG" with "IPTR" and "LONG" with "SIPTR" in the sources.
compiling mui stuff for aros setting -std=gnu99 is necessary, had -std=c99 usually
A MUI application most likely needs only the HOOKPROTOxxx SDI macros. They are compatible with AROS, only the attributes (hook, object attribute) must be given in the right order.
crash which suggest memory corruption. From my experience porting from 32-bit to 64-bit these kinds of errors can happen if a pointer is passed somewhere via ULONG variable. Then half of the pointer is cut.
To generate this error, please run AROSBootstrap with -m 1024. This will allocate heap to 64-bit address space which will make these errors immediatelly visible. These types of crashes are hard to debug. Disabled as little code as possible to stop corruption from occurring and then try to read from the code where it can be broken
Crashing in tslf_freevec is another symptom of memory corruption and these memory corruptions will manifest differently on different setups.
==Coding conventions==
As the AROS core source is a shared developer experience, there are rules regarding structure and style. When it comes to your creating your own app and coding, the structure and style should be your own, i.e. you should enjoy what you do and do it so that you can understand what is going on.
===Layout===
<syntaxhighlight lang="c">
static void 1st_function()
{
program
exit(0);
}
int main(void)
{
1st_function();
2nd_function();
3rd_function();
return 0;
}
</syntaxhighlight>
<syntaxhighlight lang="c">
struct Screen * openscreen(void);
struct Window *openwindow(struct Screen *screen, const char *title, LONG x, LONG y, LONG w, LONG h);
VOID 1st_function();
VOID 2nd_function();
int main(int argc, char **argv)
{
program
return 0;
} /* main */
VOID 1st_function()
{
}
VOID 2nd_function()
{
}
</syntaxhighlight>
===General style===
This code is used by many people and therefore you should keep some things in mind when you submit source code:
* Keep things simple
* Keep the source clean
* Always know what you are doing, if not flag it and describe what needs to be done...
* Explain clearly/simply what you are doing
* Remember that you write code once but that it is read many times by many people
===Comments===
AROS uses some of the comments in the source to generate the documentation. Therefore it's necessary to keep a certain format so the tools can find their information. Other comments are ignored but they should explain what you thought when you wrote the code. If you really can't think of an explanation, then don't write the code a second time like this:
<pre>
/* This adds 1 to t */
t ++;
</pre>
What we think of is this:
<pre>
/* Go on with next element */
t ++;
</pre>
===Formatting===
This is only '''IMPORTANT''' if you are going to work on the core AROS code or contrib but not applications which may reside outside like on AROS Archives or other websites.
<syntaxhighlight lang="c">
{
/* a */
struct RastPort * rp;
int a;
/* b */
rp = NULL;
a = 1;
/* c */
if (a == 1)
printf ("Init worked\n");
/* d */
if
(
!(rp = Get_a_pointer_to_the_RastPort
(
some
, long
, arguments
)
)
||
a <= 0
)
{
printf ("Something failed\n");
return FAIL;
}
/* e */
a = printf ("My RastPort is %p, a=%d\n"
, rp
, a
);
return OK;
}
</syntaxhighlight>
Looks ugly, eh ? :-) Ok, here are the rules:
<pre>
If several lines contain similar code, put similar things below each other (see a and b);
Put spaces between operands and operators
Put braces {}, brackets [] and parentheses () below each other (d) if there is much code between.
Brackets and parentheses may be in one line if the code between is small (c)
Indent by 4 Spaces. Two indent levels may be abbreviated by one tab.
</pre>
'''Before committing please normalize the indentation - if you have a mixture of tabs and spaced - please always use spaces, 1 tab = 4 spaces.'''
The reasons for this are:
# While some editors can use an arbitrary sizes for tabs, it's a bit complicated to tell another editor which tab size was used by the one used to write the code.
# Most code in AROS was written this way and your code should look like the rest.
# You can print this code on any printer without special tools to "fix" the tabs.
# Most editors have smart tabs which do exactly this. If your editor doesn't, write a bug report.
If you have a function with many arguments (d, e) you should put the parentheses in lines of their own and each argument in one line (d) or put the first argument behind the opening parentheses (e) and each following argument in a line of its own with the comma in front. The closing parentheses is in a line of its own and aligned with the beginning of the expression (i.e. the a and not the opening parentheses or the printf()).
Use a single blank line to separate logical blocks. Large comments should have a blank line before and after them, small comments should be put before the code they explain with only one blank line before them.
If you see any TABS in AROS core sources then the suggestion is to "detab the file and commit that separately" either before or afterwards from making functionality changes. Make two commits instead of one. This makes it easier for others to see the real changes instead of having to dig through multiple lines of irrelevant diffs.
===Eliminating Global Variables===
i.e. pass variables to functions (local scope) or classes making it easier to track and debug your code.
Any time you find that you need a particular thing in 'a lot of different places', chances are that all those places are conceptually related, and so you can create a class, a namespace, a function, or some other higher-level organizational unit to represent that relationship. This makes the program easier to understand.
Bad Designs
* All variables are global.
* There are no standalone functions, only sub-procedures which act on the global variables.
* Every sub-procedure is at least 500 lines to several thousand
* Every sub-procedure has more than one task to perform
* Copy-paste is preferred to writing methods, AND subtle changes are made in the middle of the code
Good Designs
* structure program into functions (C or basic) - top-down procedural approach
* put in class(es) (freepascal or C++) - the object is fixed and you use methods to access the object
<pre>
class String_List
{
private:
list<string> m_List; // member
public:
void read_strings() { /* read strings into m_List */ }
void print_strings() { /* write contents of m_List to stdout */ }
void sort_strings() { /* sort contents of m_List */ }
void sort_strings_reverse() { /* reverse-sort contents of m_List */ }
void unique_strings() { /* remove duplicate strings */ }
};
int main()
{
String_List myList; // local
myList.read_strings();
myList.sort_strings();
myList.print_strings();
myList.sort_strings_reverse();
myList.print_strings();
myList.unique_strings();
myList.print_strings();
return 0;
}
</pre>
This way it is very easy to replace the list with new list for debugging purposes, or replacing the methods without replacing the list, when you want different results. You only have to replace the content of the local variables.
So create the structure that matches your data (linked lists, trees, arrays, etc.) and what to do with them (sorting, searching, etc.)
<pre>
.h usually contain #define #include typedef enum struct extern screen and window definitions (data structures)
.c should contains functions and algorithms
</pre>
One way to look at it is that menu headings act as the .c file and sub-menu headings as functions.
When you start a project, you place a couple of declarations in the include file. As the project continues, you place more and more declarations in the include file, some of which refer to or contain previous declarations. Before you know it, you have a real mess on your hands. The majority of your source files have knowledge of the data structures and directly reference elements from the structures.
Making changes in an environment where many data structures directly refer to other data structures becomes, at best, a headache. Consider what happens when you change a data structure.
Use good variables names to help clarify code and only comment when you need to explain why a certain programming approach was made.
You're Refactoring Legacy Code, you see a global, you want to get rid of it. How do you do this?
Exactly what to do depends on how the global is used. The first step is to find all uses of the global throughout the code, and get a feel for what the significance of the variable is and how it relates to the rest of the program. Pay particular attention to the "lifetime" of the variable (when it gets initialized, when it is first used, when it is last used, how it gets cleaned up). Then, you will probably make the global a data member of a class (for OO languages), or you will write some get/set functions. Converting to the Singleton Pattern is common, but you may discover that it makes more sense for the data element to be a member of an existing singleton, or maybe even an instance variable.
# Create a basic read method, either as a class or a global function. Replace all reads with the access method, but leave the variable defined as a global.
# Review each of the writes to the method and extract action functions one at a time. Unless two operations are coded identically in the original code, extract each write access separately.
# Change the variable scope from global to local.
# Analyze similar action functions to determine if any can be merged, i.e., there are no functional differences in the results of the function, just differences in the implementation details.
# Review the calls to the read method and see if a more complex functionality should be applied. Follow the approach for writes and unless implementations are identical, create separate access functions.
# Analyze the access functions for duplication.
As returning variables by "passing by value" are forgotten, so "passing by reference" is often used instead. The reference is a pointer to the variable so the value is remembered when returned.
Alternatives
* Hidden Globals
* Singleton Pattern
* Database or TupleSpace
* Context Object
* Dependency Injection
* Stateful Procedures
==AROS/AmigaOS APIs and Docs==
<pre>
Library:
- Private data structure
- Many public access methods
Device:
- Private data structure
- Two (BeginIO/AbortIO) access methods
Resource:
- Public data structure
- *NO* access methods
</pre>
And, being Amiga OS-compatible, there are exceptions to all of these.
===System Libraries===
The [http://developers.aros.org/ AROS Guide To Libraries] can be used as a guide to individual commands and old Dev Docs are used in application programming.
Amiga/Aros styles libraries are very different from windows and linux libs. Typical .so/dll libraries are foreign to most Amiga-like OS
*[[Aros/Developer/Docs/Libraries/AROSC|arosc.library]]
*[[Aros/Developer/Docs/Libraries/AmigaGuide|amigaguide.library]]
*[[Aros/Developer/Docs/Libraries/ASL|asl.library]]
*[[Aros/Developer/Docs/Libraries/Bullet|bullet.library]]
*[[Aros/Developer/Docs/Libraries/BSDsocket|bsdsocket.library]]
*[[Aros/Developer/Docs/Libraries/CAMD|camd.library]]
*[[Aros/Developer/Docs/Libraries/Codesets|codesets.library]]
*[[Aros/Developer/Docs/Libraries/CGFX|cybergraphics.library]]
*[[Aros/Developer/Docs/Libraries/CGXVIDEO|cgxvideo.library]]
*[[Aros/Developer/Docs/Libraries/Commodities|commodities.library]]
*[[Aros/Developer/Docs/Libraries/DataTypes|datatypes.library]]
*[[Aros/Developer/Docs/Libraries/DiskFont|diskfont.library]]
*[[Aros/Developer/Docs/Libraries/DOS|dos.library]]
*[[Aros/Developer/Docs/Libraries/Exec|exec.library]]
*[[Aros/Developer/Docs/Libraries/Expansion|expansion.library]]
*[[Aros/Developer/Docs/Libraries/FreeType2|freetype.library]]
*[[Aros/Developer/Docs/Libraries/GadTools|gadtools.library]]
*[[Aros/Developer/Docs/Libraries/Graphics|graphics.library]]
*[[Aros/Developer/Docs/Libraries/Icon|icon.library]]
*[[Aros/Developer/Docs/Libraries/Identify|identify.library]]
*[[Aros/Developer/Docs/Libraries/IFFParse|iffparse.library]]
*[[Aros/Developer/Docs/Libraries/Intuition|intuition.library]]
*[[Aros/Developer/Docs/Libraries/Keymap|keymap.library]]
*[[Aros/Developer/Docs/Libraries/Layers|layers.library]]
*[[Aros/Developer/Docs/Libraries/Locale|locale.library]]
*[[Aros/Developer/Docs/Libraries/LowLevel|lowlevel.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEESingBas|mathieeesingbas.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEEDoubBas|mathieeedoubbas.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEESingTrans|mathieeesingtrans.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEEDoubTrans|mathieeedoubtrans.library]]
*[[Aros/Developer/Docs/Libraries/Mathtrans|mathtrans.library]]
*[[Aros/Developer/Docs/Libraries/MUIMaster|muimaster.library]]
*[[Aros/Developer/Docs/Libraries/Partition|partition.library]]
*[[Aros/Developer/Docs/Libraries/PopUpMenu|popupmenu.library]]
*[[Aros/Developer/Docs/Libraries/OOP|oop.library]]
*[[Aros/Developer/Docs/Libraries/Regina|regina.library]]
*[[Aros/Developer/Docs/Libraries/Reqtools|reqtools.library]]
*[[Aros/Developer/Docs/Libraries/RexxSysLib|rexxsyslib.library]]
*[[Aros/Developer/Docs/Libraries/ScreenNotify|screennotify.library]]
*[[Aros/Developer/Docs/Libraries/TTEngine|ttengine.library]]
*[[Aros/Developer/Docs/Libraries/Thread|thread.library]]
*[[Aros/Developer/Docs/Libraries/Utility|utility.library]]
*[[Aros/Developer/Docs/Libraries/Xadmaster|xadmaster.library]]
*[[Aros/Developer/Docs/Libraries/Workbench|workbench.library]]
*[https://github.com/aros-development-team/AROS/commit/c82e86b8480277998014cc327b56c7664023a52f ClassAct Reaction boopsi class]
===AROS Subsystems===
# [[Aros/Developer/Zune|Zune MUI compatible GUI]]
# [[Aros/Developer/AROSAppPackages|AROS Application Packages]]
# AHI Audio Drivers - [[Aros/Developer/AHIDrivers|Usage]]/[[Aros/Developer/AHIDriversDev|Development]]
# AROSTCP Sana2 Network Interface Drivers - [[Aros/Developer/NICDrivers|Usage]]/[[Aros/Developer/NICDriversDev|Development]]
# [[Aros/Developer/AmiSSL|AmiSSL]]
# gfx.hidd/cybergraphics Video Drivers - [[Aros/Developer/GfxDrivers|Usage]]/[[Aros/Developer/GfxDriversDev|Development]]
# IO Device Drivers - [[Aros/Developer/IODeviceDrivers|Usage]]/[[Aros/Developer/IODeviceDriversDev|Development]]
# USB Device Drivers - [[Aros/Developer/USBDrivers|Usage]]/[[Aros/Developer/USBDriversDev|Development]]
# PCI Device Drivers - [[Aros/Developer/PCIDrivers|Usage]]/[[Aros/Developer/PCIDriversDev|Development]]
# [http://www.libsdl.org/ SDL] [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2013&pid=13333#post_13333 SDL2 coding usage], [https://github.com/search?q=repo%3Aaros-development-team%2Fcontrib%20SDL2&type=code SDL2 commits], [https://github.com/aros-development-team/contrib/commit/c62c3c425c35bac19dadc23be092b0b13a66c76c SDL3 initial commit], []
# [[w:Gallium3D|Gallium 3D]] [http://www.mesa3d.org/ openGL aka Mesa] - [[Aros/Developer/OpenGL|Usage]]/[[Aros/Developer/OpenGLDev|Development]] [http://www.swiftless.com/opengltuts.html Swfitless]
# A small subset of GTK2 through [http://sourceforge.net/projects/gtk-mui/ MUI-GTK]
# Cairo 2D Engine - [[Aros/Developer/Cairo|Usage]]/[[Aros/Developer/Cairo|Development]]
# [[Aros/Developer/Scalos|Scalos desktop API and plugin modules]]
# [[Aros/Developer/VHI|VHI video driver]]
====HIDDs====
*[[Aros/Developer/Docs/HIDD/HIDDClass|hiddclass.hidd]]
*[[Aros/Developer/Docs/HIDD/Graphics|graphics.hidd]]
*[[Aros/Developer/Docs/HIDD/VesaGfx|vesagfx.hidd]]
*[[Aros/Developer/Docs/HIDD/ATI|radeon.hidd]]
*[[Aros/Developer/Docs/HIDD/NVidia|nvidia.hidd]]
*[[Aros/Developer/Docs/HIDD/Nouveau|nouveau.hidd]]
*[[Aros/Developer/Docs/HIDD/Kbd|kbd.hidd]]
*[[Aros/Developer/Docs/HIDD/Mouse|mouse.hidd]]
*[[Aros/Developer/Docs/HIDD/i2c|i2c.hidd]]
*[[Aros/Developer/Docs/HIDD/IRQ|irq.hidd (deprecated)]]
*[[Aros/Developer/Docs/HIDD/PCI|pci.hidd]]
*[[Aros/Developer/Docs/HIDD/PCIPC|pcipc.hidd]]
*[[Aros/Developer/Docs/HIDD/Serial|serial.hidd]]
*[[Aros/Developer/Docs/HIDD/Thunderbolt|thunderbolt.hidd]]
https://github.com/aros-development-team/AROS/commit/4f02ea691799aff3a01f60cfa5f9182c82fc57a8
HIDD are used for device/peripheral low level hardware support drivers. The HIDD system is split up into a collection of classes with a strict inheritance hierarchy. A HIDD class implements a device driver for a single device or in rare cases a group of devices and provides an interface for other programs and devices to access.
In order to maintain portability of interfaces across a wide range of hardware this interface will in general not present the raw interface to the underlying hardware. Instead it will present a generic interface that describes many different hardware implementations. This allows for the best reuse of both interfaces and code.
HIDD API is heavyweight though. You need to open a HIDD library, open oop.library, instantiate an object (even if there's no object); and object calls are more costly compared to plain library calls.
Basically your task is to implement a subclass of hidd.ata.bus for your hardware. just implementing the XXXATA__Hidd_ATABus__xxxxxx methods for the Amiga chipset - and appropriate versions of the interface_xxx.c file(s). pretty much everything in probe.c could be ignored - just write a replacement scan for relevant amiga devices and store whatever info you need in the bus data? only the "SUPPORT_LEGACY" blocks might be related.
You do not need to depend on PCI API. PCI is just a way to discover the hardware on PCs, etc.
<hidd/pci.h> includes (at some depth) <interface/HW.h>, which defines IID_HW. This comes from the 'generic' HIDD class in:
rom/hidds/hidd/hiddclass.conf
did not split up HIDD and HW because they are always used in pair. It's the same as hidd/pci.h bringing definition for: PCI, PCIDriver and PCIDevice. PCI is actually PCIHW, just the name was not changed for backwards compatibility reasons. HW is a 'hub' where HIDD instances plug in.
ATA HIDD aoHidd_ATABus_Use32Bit value is completely ignored unless ata.device first detects correct command line parameter.
Yes. Unfortunately I was unable to find any comment in code or svn history with explanations. Looked at Linux source, there 32-bit PIO is also controller driver's property. Some of them enable it, some don't.
Actually, switching the default to ON should be safe. ata.device is fail-safe at this because during IDENTIFY command it validates upper 16 bits, and if they appear to be zeroes in all 128 longwords, then 32-bit mode is switched off. But, nevertheless, I know how tricky hardware can be, so I decided not to change original behavior. If you think it's wrong in some cases, then it's possible to add one more attribute like aHidd_ATABus_Default32Bit. If set to YES, then this means that 32-bit PIO is safe to use by default.
====Devices====
*[[Aros/Developer/Docs/Devices/ATA|ata.device]]
*[[Aros/Developer/Docs/Devices/Console|console.device]]
*[[Aros/Developer/Docs/Devices/Narrator|narrator.device]]
*[[Aros/Developer/Docs/Devices/Printer|printer.device]]
*[[Aros/Developer/Docs/Devices/Trackdisk|trackdisk.device]]
*[[Aros/Developer/Docs/Devices/AmberRAM|amberram.device]]
*[[Aros/Developer/Docs/Devices/Timer|timer.device]]
*[[Aros/Developer/Docs/Devices/|.device]]
The Amiga used [[Aros/Developer/Docs/Devices|Devices]] to communicate with [http://aros-exec.org/modules/newbb/viewtopic.php?start=0&topic_id=3475&viewmode=flat&order=ASC additional hardware]. AROS has replaced these hardware devices with hidd equivalents but some are still retained for backwards compatibility.
Local libraries/devices/handlers,etc. are supposed to override the ones in ROM if their version is higher than the one in ROM.
Here is the list of commands exec default:
{| class="wikitable"
| CMD_CLEAR
| Purge the buffer of the device
|----
| CMD_READ
| Playback Control
|----
| CMD_STOP
| Stopped the activity of the device
|----
| CMD_FLUSH
| Empty the queue of commands
|----
| CMD_RESET
| Reset a device
|----
| CMD_WRITE
| Playback Control
|----
| CMD_INVALID
| Create an error
|----
| CMD_UPDATE
| Gets updated device
|----
| CMD_START
| Will restart the device
|----
|}
While most other "stuff you communicate with" in AmigaOS are devices <ref>AMIGA ROM Kernel Reference Manual: Devices, 3rd Edition. Commodore-Amiga, Inc. Addison-Wesley, 1991. {{ISBN|0-201-56775-X}}</ref> that share a [http://gega.homelinux.net/AmigaDevDocs/ common base interface]. [[Aros/Developer/Docs/Devices1.3|OS 1.3 Device Drivers]].
====Handlers====
:[[Aros/Developer/Docs/Handlers/Pipe|pipe.handler]]
:[[Aros/Developer/Docs/Handlers/Port|port.handler]]
:[[Aros/Developer/Docs/Handlers/SFS|sfs.handler]]
:[[Aros/Developer/Docs/Handlers/FAT|fat.handler]]
:[[Aros/Developer/Docs/Handlers/PFS|pfs.handler]]
:[[Aros/Developer/Docs/Handlers/NTFS|fuse.handler]]
:[[Aros/Developer/Docs/Handlers/FFS|ffs.handler]]
filesystem handlers have their own separate system consisting of completely differently structured messages that dos.library use to pass requests (for things like reading, writing, getting directory contents etc.) to them. AROS originally went with implementing filesystem handlers as devices, which might arguably be more consistent with the rest of the AmigaOS API but which is quite incompatible with AmigaOS itself. However, it made it far harder to port filesystems and the gains were comparatively small, and so there's been a long standing goal of fixing this incompatibility. It has now, June 2011, been reintroduced to all AROS flavors.
are argstr and argsize valid for the handler startup environment?
DOS/RunHandler() calls DOS/CreateNewProcTags(), and then CallEntry() (in rom/dos/exit.c) to start the handler, so yes, argstr and argsize are *present* in the call signature of the handler.
Granted, argstr will be NULL and argsize 0, but those values *are* passed to the handler function using:
<pre>
AROS_UFC3(ULONG, entry,
AROS_UFCA(STRPTR, argptr, A0),
AROS_UFCA(ULONG, argsize, D0),
AROS_UFCA(struct ExecBase *, SysBase, A6));
</pre>
Creating your own [without the whole build tree http://pagesperso-orange.fr/franck.charlet/temp/radeon.zip] and then
<pre>
make stub
make
make install
</pre>
SFS has two Root blocks, one at the start and one at the end of the disk. The Root blocks both contain the same information. They hold various information about the disk structure and have the locations of some important blocks used by the filesystem.
The Root ObjectContainer contains the Root directory Object. The name of this Object is the name of the volume. It is identical to a normal directory Object.
The Bitmap is used to keep track of free space. Each bit in a bitmap represents a single block. A set bit indicates a free block and a cleared bit a used block.
AdminSpaceContainers are used to keep track of space which has been reserved for storing administration blocks. Only the Bitmap, the Root blocks and the actual data stored in files aren't stored in administration space. Administration space is allocated in chunks of 32 blocks at a time. A single AdminSpaceContainer can hold information about a large number of such areas each of which has its own little bitmap of 32 bits.
Extents are stored in a B-Tree. The Root block holds a pointer to the root of the Extent B-Tree. Extents keep track of space in use by a specific file. Each fragment a file consists of has its own Extent. Extents are in a double linked list. The list can be used to locate the next or previous fragment of a file.
Below is the standard block header. This header is found before EVERY type of block used in the filesystem, except data blocks. The id field is used to check if the block is of the correct type when it is being referred to using a BLCK pointer. The checksum field is the SUM of all LONGs in a block plus one, and then negated. When applying a checksum the checksum field itself should be set to zero. The checking a checksum the checksum is okay if the result of the checksum equals zero. The ownblock BLCK pointer points to the block itself. This field is an extra safety check to ensure we are using a valid block.
Field Type Description
id ULONG The id field is used to identify the type of block we are dealing with. It is used to make sure that when referencing a block we got a block of the correct type. The id consist of 4 bytes and each blocktype has its own unique foure letter code.
checksum ULONG This field contains the sum of all longs in this block, plus one and then negated. The checksum can be used to check if the block hasn't been corrupted in any way.
ownblock BLCK Points to itself, or in other words, this field contains the block number of this block. This is yet another way to check whether or not a block is valid.
<pre>
struct fsBlockHeader {
ULONG id;
ULONG checksum;
BLCK ownblock;
};
</pre>
The algorithm to calculate the checksum of a block:
<pre>
ULONG calcchecksum(struct fsBlockHeader *block, LONG blocksize} {
ULONG *data=(ULONG *)block;
ULONG checksum=1;
block->checksum=0;
while(blocksize>0) {
checksum+=*data++;
blocksize-=4;
}
return(-checksum);
}
</pre>
A Root block contains very important information about the structure of a SFS disk. It has information on the location and size of the disk, the blocksize used, locations of various important blocks, version information and some filesystem specific settings.
A SFS disk has two Root blocks; one located at the start of the partition and one at the end. On startup the filesystem will check both Roots to see if it is a valid SFS disk. If either one is missing SFS can still continue (although at the moment it won't).
A Root block could be missing on purpose. For example, if you extend the partition at the end (adding a few MB's) then SFS can detect this with the information stored in the Root block located at the beginning (since only the end-offset has changed). Same goes for the other way around, as long as you don't change start and end point at the same time.
When a Root block is missing because the partition has been made a bit larger, then SFS will in the future be able to resize itself without re-formatting the disk.
Field Type Description
bheader struct fsBlockHeader Standard block header.
version UWORD The version of the filesystem block structure. You can check this field to identify what version of the filesystem your dealing with it and to see if you can handle this structure correctly. Don't try to interpret the disk's structure when this field contains an unknown version number!
sequencenumber UWORD Used to identify which Root block was written last in case the sequencenumber on both Root blocks don't match.
datecreated ULONG Creation date of this volume. This is the date when the disk was last formatted and will never be changed.
bits UBYTE Various settings, see below.
<pre>
pad1 UBYTE Reserved, leave zero.
pad2 UWORD Reserved, leave zero.
reserved1 ULONG[2] Reserved, leave zero.
firstbyteh ULONG High 32-bits of a 64-bit number. This is the first byte of our partition relative to the start of the disk.
firstbyte ULONG Low 32-bits of a 64-bit number.
lastbyteh ULONG High 32-bits of a 64-bit number. This is the last byte (exclusive) of our partition relative to the start of the disk.
lastbyte ULONG Low 32-bits of a 64-bit number.
totalblocks ULONG The total number of blocks this partition consists of.
blocksize ULONG The size of a block of this partition.
reserved2 ULONG[2] Reserved, leave zero.
reserved3 ULONG[8] Reserved, leave zero.
bitmapbase BLCK Block number of the start of the Bitmap.
adminspacecontainer BLCK Block number of the first AdminSpaceContainer.
rootobjectcontainer BLCK Block number of the ObjectContainer which contains the root of the disk (this is where the volume name is stored).
extentbnoderoot BLCK Block number of the root of the Extent B-Tree.
reserved4 ULONG[4] Reserved, leave zero.
</pre>
<pre>
struct fsRootBlock {
struct fsBlockHeader bheader;
UWORD version;
UWORD sequencenumber;
ULONG datecreated;
UBYTE bits;
UBYTE pad1;
UWORD pad2;
ULONG reserved1[2];
ULONG firstbyteh;
ULONG firstbyte;
ULONG lastbyteh;
ULONG lastbyte;
BLCK totalblocks;
ULONG blocksize;
ULONG reserved2[2];
ULONG reserved3[8];
BLCK bitmapbase;
BLCK adminspacecontainer;
BLCK rootobjectcontainer;
BLCK extentbnoderoot;
ULONG reserved4[4];
};
</pre>
AdminSpaceContainers are used to store the location and bitmap of each administration space. The AdminSpaceContainers are located in a double linked list and they contain an array of fsAdminSpace structures. There is one fsAdminSpace structure for every administration space on disk.
Field Type Description
bheader struct fsBlockHeader Standard block header.
next BLCK The next AdminSpaceContainer, or zero if it is the last in the chain.
previous BLCK The previous AdminSpaceContainer, or zero if it is the first AdminSpaceContainer.
bits UBYTE The number of bits in each in the bits ULONG in the fsAdminSpace structure.
pad1 UBYTE Reserved, leave zero.
pad2 UWORD Reserved, leave zero.
adminspace struct fsAdminSpace An array of fsAdminSpace structures. The size of the array is determined by the current blocksize.
<pre>
struct fsAdminSpaceContainer {
struct fsBlockHeader bheader;
BLCK next;
BLCK previous;
UBYTE bits;
UBYTE pad1;
UWORD pad2;
struct fsAdminSpace adminspace[0];
};
</pre>
Field Type Description
space BLCK The first block of an administration space.
bits ULONG A small bitmap which is used to determine which blocks in an administration space are already in use. The number of bits in this bitmap is determined by the bits field in the AdminSpaceContainer.
<pre>
struct fsAdminSpace {
BLCK space;
ULONG bits;
};
</pre>
The fsBitmap structure is used for Bitmap blocks. A bitmap block is used to keep track of which space is in use and which isn't for a particular area of a disk. All bitmap blocks together keep track of the free space for an entire disk. The location of the first bitmap block is known and all other bitmap blocks are stored in order after the first one.
Field Type Description
bheader struct fsBlockHeader Standard block header.
bitmap ULONG An array of ULONG's. These hold the actual information on which blocks are in use and which aren't.
<pre>
struct fsBitmap {
struct fsBlockHeader bheader;
ULONG bitmap[0];
};
</pre>
Each bit in a bitmap block (except for the block header) represents a single block. If the bit is set than the block is free, and if the bit is clear then it is full. The first ULONG in the bitmap area of the first bitmap block represents blocks 0 through 31 on the disk. Bit 31 of this ULONG is block 0, 30 is block 1, and so on. Bit 0 of the first ULONG represents block 31.
Below is a table to clarify how bitmaps work even further. The first column is the bitmap block number, the second column is the number of the ULONG in the bitmap array. The third column is the bit number in this ULONG, and the last column is the block which this specific bit, in this specific bitmap block represents.
We'll assume here that a bitmap block has room for 120 ULONG's (meaning there is room for storing 32 * 120 bits).
<pre>
Bitmap block ULONG number Bit number Block represented
1 (first) 0 31 0
1 0 30 1
... ... ... ...
1 0 1 30
1 0 0 31
1 1 31 32
... ... ... ...
1 2 31 64
1 2 30 65
... ... ... ...
1 119 0 3839
2 0 31 3840
2 0 30 3841
... ... ... ...
</pre>
The last bitmap block doesn't need to be completely used. The unused bits (which belong to blocks which do not exist) all have to be clear, to indicate that these blocks are in use.
The fsObjectContainer structure is used to hold a variable number of fsObjects structures (Objects) which have the same parent directory. Each ObjectContainer must contain at least one Object. If there is space in the ObjectContainer not used by the variable number of Objects then that space is zero filled. Objects always start at 2-byte boundaries, which means sometimes a padding byte is inserted between two Objects.
Field Type Description
bheader struct fsBlockHeader Standard block header.
parent NODE The node number of the parent Object, or 0 if this object has no parent (which is only the case for the Root directory).
next BLCK The next ObjectContainer belonging to this directory, or zero if it is the last in the chain.
previous BLCK The previous ObjectContainer belonging to this directory, or zero if it is the first ObjectContainer in this directory.
object struct fsObject A variable number of fsObject structures. The number of structures depends on the individual sizes of each fsObject structure and the blocksize. These structures are located directly after each other with at most 1 byte of padding between them to get the structures aligned on a 2 byte boundary.
<pre>
struct fsObjectContainer {
struct fsBlockHeader bheader;
NODE parent;
BLCK next;
BLCK previous;
struct fsObject object[0];
};
</pre>
fsHashTable is the structure of a HashTable block. It functions much like the hash table found in FFS user directory blocks, except that it is stored in a separate block. This block contains a number of hash-chains (about 120 for a 512 byte block). Each hash-chain is a chain of Nodes. Each Node has a pointer to an Object and a pointer to the next entry in the hash-chain. Using such a hash-chain you can locate an object quickly by only knowing its name.
Field Type Description
bheader struct fsBlockHeader Standard block header.
parent NODE The node number of the directory Object this HashTable block belongs to.
hashentry NODE An array of Nodes. Each Node represents the start of a hash-chain (singly linked). A hash-value is calculated using the name of a file or directory, and this value determines in which chain the Object is linked. If there are no entries in a hash-chain then the hashentry value is zero.
<pre>
struct fsHashTable {
struct fsBlockHeader bheader;
NODE parent;
NODE hashentry[0];
};
</pre>
To calculate the hash-value using a name of an Object as input use these routines:
<pre>
UWORD calchash(UBYTE *name) {
UWORD hash=0;
/* Calculates a hash value over the passed in string.
The end of the string can be either a NUL byte or a
slash. The hash function is the same as the one
used in FastFileSystem set to international mode. */
while(name[hash]!=0 && name[hash]!='/') {
hash++;
}
while(*name!=0 && *name!='/') {
hash=hash*13+upperchar(*name++);
}
return((UWORD)(hash % (UWORD)((blocksize-sizeof(struct fsHashTable))>>2)));
}
UBYTE upperchar(UBYTE c) {
if((c>=224 && c<=254 && c!=247) || (c>='a' && c<='z')) {
c-=32;
}
return(c);
}
</pre>
The BNodeContainer is used to store B-Trees. Currently only one B-Tree is in use by this filesystem and it is used to store the location of file data. The fsBNodeContainer structure contains two other structures. The fsBlockHeader structure and the BTreeContainer structure.
Field Type Description
bheader struct fsBlockHeader Standard block header.
btc struct BTreeContainer Contains information about the B-Tree and its nodes contained in this block.
<pre>
struct fsBNodeContainer {
struct fsBlockHeader bheader;
struct BTreeContainer btc;
};
</pre>
First try and locate the Root block. It should start with "ROOT". SFS has two of these, one at the start of the partition and one at the end. One of the fields contains the block size, which will be the size of all important SFS blocks.
The root block has the root object container, which contains information about files and directories in the root directory. The object
containers basically hold one or more smaller structures that represent files and directories. Scanning them all should give you a list of
files and directories.
The root block also has the root of the Extent B-Tree. This is a standard B-Tree structure (not a binary tree) that is used commonly in
all kinds of system, you can read about how they work on Wikipedia if needed. The B-Tree holds the information about *where* all the data is
located for your files.
To recover your files, I'd do this:
* Find one of the root blocks, if not present, then figure out the block size your disk was using, and scan every block in turn to see if it
looks like an ObjectContainer (check the fsBlockHeader's ID, check if the ownblock number is equal to the block you are currently scanning,
and check its checksum). So if you currently have block 12, and you see a block with the correct id, and ownblock = 12 and its checksum is good,
then that's probably a valid ObjectContainer.
* With all the ObjectContainers found, you can extract filenames and directory names from these, but also the number of their first data
block (in the field data) and the file size. For small files (less than blocksize) this data block will be enough to recover the data.
For larger files, you might be lucky and all the remaining blocks are found after the first one (if the file was defragmented). You can't be
sure of that though so...
* For larger files, you need to find all the BNodeContainers. You could scan these in the same way you found all the ObjectContainers (look for
blocks with the correct id, ownblock number and checksum).
* With all the BNodeContainers found, you can try looking up the first data block of a file in the B-Tree structure. This is a bit complicated
-- the B-Tree consists of non-leaf nodes (blocks that only contain pointers to other B-Tree blocks), the isLeaf flag indicates this. Or it
can be a B-Tree leaf block. The leaf blocks contain extra information per entry (see https://hjohn.home.xs4all.nl/SFS/extents.htm)
<pre>
struct fsExtentBNode {
ULONG key;
ULONG next;
ULONG prev;
UWORD blocks;
};
</pre>
The key should be a block of a file (the first of a range), that is 1 to 65535 block long (depending the "blocks" field). If the file is split
up into more parts, then "next" will contain block number of the next range of blocks. You need to look this up again in the B-Tree
structure to find out how large it is.
You can for the most part ignore the other structures (bitmap, admin containers). The fsObjects and B-tree containers is what you'll need to
recover the data.
====Resources====
<pre>
rom/storage/mmakefile.src
rom/storage/storage.conf
rom/storage/storage_device.c
rom/storage/storage_ids.c
rom/storage/storage_init.c
rom/storage/storage_intern.h
rom/storage/storage_mount.c
rom/storage/storage_unit.c
</pre>
<pre>
rom/storage/includes/device.h
rom/storage/includes/unit.h
rom/storage/includes/volume.h
rom/storage/storage_intern.h
</pre>
<pre>
</pre>
*[[Aros/Developer/Docs/Resources/ACPI|acpi.resource]]
*[[Aros/Developer/Docs/Resources/Battclock|battclock.resource]]
*[[Aros/Developer/Docs/Resources/Bootloader|bootloader.resource]]
*[[Aros/Developer/Docs/Resources/Cia|cia.resource]]
*[[Aros/Developer/Docs/Resources/Filesystem|FileSystem.resource]]
*[[Aros/Developer/Docs/Resources/Hostlib|hostlib.resource]]
*[[Aros/Developer/Docs/Resources/Kernel|kernel.resource]]
*[[Aros/Developer/Docs/Resources/Misc|misc.resource]]
*[[Aros/Developer/Docs/Resources/Processor|processor.resource]]
==Debugging Code==
Please use the [http://sourceforge.net/tracker/?group_id=43586&atid=439463 AROS Bug Tracker] if any issues are found.
GRUB Command line list
<pre>
sysdebug
usbdebug - allows to see Poseidon's log in debug output
</pre>
How do I get debugging out of InitResident ? If running i386 hosted on linux sysdebug=initresident on command line.
This way you can enable any of listed flags. sysdebug=all stands for "everything"
Have an executable (crosscompiled C++ code) which has 6 MB size on disk, but after loading it in memory, 250 MB RAM is taken. Any software that would split AROS executable into ELF part which would show actual size values?
readelf -S executable
it will show you all sections in elf file, including sizes and requested alignment.
objdump -h filename
That's will give you a quick overview of the sections and sizes. Ignore all the .debug.* sections.
Would hazard a guess that you have a large .bss section. That's pretty common in C++.
Next step:
nm—size-sort filename | grep ' [bB] '
The last few will be your biggest consumers. Would suggest -C to demangle the symbols... ;)
Suggest profiling the program (just use some printf's in the main loop for time spent in each part), it usually is quite easy to spot slow parts in games or apps.
If someone has '#define IPTR ULONG' somewhere. To see where that define is, redefine IPTR in the source code that fails, just above the line that fails, and the preprocessor will tell you where it was defined first.
===How to setup gdb with AROS/hosted===
Download AROS sources (AROS-xxxxxxxx-source.tar.bz2, where xxxxxxxx is the current date) and AROS contrib sources (AROS-xxxxxxxx-contrib-source) from
Untar-bzip2 and cd to the unpacked archive directory.
> tar -xvjf AROS-xxxxxxxx-source.tar.bz2
> cd AROS-xxxxxxxx-source
Check the link to "contrib" (contrib-source) inside directory, e.g. correct like this:
> rm contrib
> ln -s ../AROS-xxxxxxxx-contrib-source.tar.bz2 contrib
Make sure you have the correct locale setting, otherwise compilation will fail at some point. See [http://aros.sourceforge.net/documentation/developers/compiling.php#setting-the-locale-to-iso8859 here] (or link below) for more on that. You might have to enter this:
> export LANG="en_US.ISO-8859-1"
Now configure for a debug build - see "./configure --help" for more - here are two examples:
> ./configure—enable-debug=stack,modules,symbols
> ./configure—enable-debug=all
You may "make" now, or choose a separate directory for your build (e.g. for easy removal), for example if compiling for i386 architecture you could create a directory like this:
> mkdir linux-i386
> cd linux-i386
> ../AROS/configure—enable-debug=stack,symbols,modules
When done configuring you're ready to go:
> make
Building AROS takes some time - minutes on fast machines (e.g. 2.5 GHz quadcore), up to hours on slower machines.
The result will be AROS Linux hosted with gdb debugging enabled.
See aros.org documentation for more on compiling AROS, including more [http://aros.sourceforge.net/documentation/developers/compiling.php --enable-debug] options.
When finished, enter bin/linux-i386/AROS directory (replace "linux-i386" with your compilation target platform, e.g. linux-x86_64, etc.) inside the unpacked archive directory. This directory contains the required .gdbinit file for properly running AROS inside gdb.
> cd bin/linux-i386/AROS
Run AROS (here: with 128MB of memory) from gdb:
> gdb—args boot/aros-unix -m 128
or
> gdb—args boot/arosboot -m 128
(gdb) r
Watch the shell output - in case AROS complains about "LoadKeyCode2RawKeyTable: Loading "DEVS:Keymaps/X11/keycode2rawkey.table" failed!" you should also see some instructions on how to create a keymap table. (see link above "more on compiling", too.)
Quit gdb, and try default keymap table:
(gdb) q
The program is running. Quit anyway (and kill it)? (y or n) y
> cd ../../..
> make default-x11keymaptable
Re-run AROS, as described above. Try e.g. RAros (= right windows key) + W to open a shell. If this doesn't work you have to create a keymap table yourself, quit gdb again, and make a new keytable:
> make change-x11keymaptable
A window will open. Watch the window's title bar, and follow the instructions.
When done, re-run AROS. RAros + W should now open a shell.
Next, compile your program with gdb support.
When you start GDB is there a warning which says
warning: File "<whatever>/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to ...
If so start gdb with "-ix .gdbinit"
<pre>
Summary - In short:
* build AROS with debugging support (i.e. ./configure --enable-debug=all)
* build your application with debugging support (i.e. option -g)
* run AROS in the GNU debugger (you may use the GUI frontend "ddd" which simplifies usage a bit)
* start your application
* use the commands "findaddr" and "add-symbol-file" as written in the debugging manual
* if the debugger doesn't find the source code of your application use the "dir" command of the debugger.
</pre>
===How to use gdb===
In AROS open a shell, then (in host shell) use CTRL-Z to go into gdb. Use "b Exec_CreatePool" (one of the functions used early on by startup code in programs) to add a breakpoint, then "cont" and gdb will interrupt somewhere early during startup of "program". Use "bt" to show backtrace and "loadseg" for "??" entries. One of them will be for "program". After that you can use "disassemble program".
One thing you need to make sure is that .gdbinit you have in your build directory is the same as in source tree. It has been modified some time ago, but the build system does not refresh it - you need to copy it manually
To recap, please read our debugging [http://aros.sourceforge.net/documentation/developers/debugging.php manual]:
To detect segfaulting when loading, try...
./configure—enable-debug—with-optimization="-O2"
Because crash or no crash may depend on optimization. For newer compilers maybe this helps...
--with-optimization=-"-O2 -fno-strict-aliasing"
One way to make crashes less random (more easily reproducible) is to activate the munging of free memory in rom/exec/freemem.c which is normally commented out:
<pre>
Index: freemem.c
===================================================================
--- freemem.c (revision 34289)
+++ freemem.c (working copy)
@@ -154,11 +154,12 @@
* created with their TCB placed in the tc_MemEntry list. The workaround
* is to avoid munging when FreeMem() is called with task switching disabled.
*/
+
/* DOH! it doesn't work even this way. What's wrong???
- *
- * if ((SysBase->TDNestCnt < 0) && (SysBase->IDNestCnt < 0))
- * MUNGE_BLOCK(memoryBlock, MEMFILL_FREE, byteSize);
*/
+
+ if ((SysBase->TDNestCnt < 0) && (SysBase->IDNestCnt < 0))
+ MUNGE_BLOCK(memoryBlock, MEMFILL_FREE, byteSize);
}
</pre>
Mungwall can be turned on at runtime. Currently this works in all hosted versions. Just specify "mungwall" on kernel command line and it works. It can work on native too. In order to enable it you need to parse kernel command line, and if "mungwall" is present, set EXECF_MungWall bit in IntExecBase.IntFlags.
This needs to be done before the first AllocMem() for obvious reasons. And never reset back this flag! If you change it on a working system, you are doomed.
Hosted ports do the processing in rom/exec/prepareexecbase.c --enable-debug=mungwall option in configure still works but is going obsolete. A kludge in rom/exec/allocmem.c is responsible for this and it needs to be removed when the transition is done.
BTW, on i386-pc port it can be activated by "mungwall" argument on command line, you don't need to rebuild AROS.
New mungwall affects not only AllocMem()/FreeMem(), but also pools. I also tested it with AllocAbs(), seems to work correctly.
Runtime mungwall works on:
* pc-i386
* pc-x86_64
* linux-i386
* linux-x86_64
* darwin-x86
* linux-ppc
Works on all hosted ports, if the port itself is working.
* amiga-m68k
* Not on sam440-ppc and efika-chrp-ppc, even if they would be able to be built at moment. Does not work on (for now, need NVRAM support)
When starting my freshly rebuilt i386-linux-aros which was compiled with full debugging support I get sometimes the error "Program exited with code 0377". Add the following to your .gdbinit:
set follow-fork-mode child
Here are some of the custom AROS gdb functions (defined in ".gdbinit" file) to resolve "in ?? ()" entries in backtrace:
<pre>
#0 0xb7ffd424 in __kernel_vsyscall ()
#1 0xb7e2a657 in sigsuspend () from /lib/libc.so.6
#2 0xb7c63900 in ?? ()
#3 0xb7c640e3 in ?? ()
#4 0xb7c641e0 in ?? ()
</pre>
You can use
loadseg 0xb7c63900
loadframe 2
or
loadbt
and some others. Use "help " for a little help text. If the commands do not work try "loadkick" first.
Use "thistask", "taskready", "taskwait" to get list of AROS tasks. "bttask " shows backtrace of a task which is in ready or in wait queue and "loadseg" to resolve "??" entries in it's backtrace ("loadframe" would not work as it assume current running task).
===Native debugging tools for AROS===
to enable debugging at boot time entering the GRUB menu editing line (E key) and adding "debug=memory" to your boot line, then press Ctrl+X to complete booting.
SYS:Tools/Debug/'''Bifteck'''
Open a shell and enter the line below to run Biftek and grab the debug messages collected in RAM into a text file.
tools/debug/bifteck > ram:debug.txt
and certainly does not open a window. It is a shell tool and only dumps data located from the debug location.
It is therefore important to 'catch' that debug data as soon as possible (before it gets overridden). You should invoke bifteck at the first opportunity before doing anything else. You can use the TO option to store bifteck output to a file or you can pipe it manually to a file.
SYS:Tools/Debug/'''Sashimi''' - displays error messages
One suggestion is to do a bug() debugging. Each time bug() is executed it will be output on sashimi.
You include <aros/debug.h> and place bug("something\n"); in your source code at location though which control passes.
To get the output - open an aros shell
SYS:Tools/Debug/sashimi > RAM:out.txt
'''Ctrl C''' to end the output to the RAM Disk.
# open shell, and type
# ram: (to switch to ram drive)
# System:Tools/Debug/Sashimi > mylogfile.txt
# open AHI prefs using wanderer (or use another opened shell)
# play test sound
# close AHI prefs
# shell still open with Sashimi running: press ctrl-c to break Sashimi and return to prompt.
# in shell: copy mylogfile.txt System: (or to your required location)
SYS:Utilities/'''Snoopy''' - monitors OS function calls, run "Sashimi" to see Snoopy's output
SYS:Tools/'''WiMP''' - the Window (and Screens) Manipulation Program
You can use the -E option of gcc to find out how preprocessor macros are expanded.
===Errors===
crash in strcasecmp usually means that one of its arguments is NULL.
empty space between these two names, prossibly some invisible character
Old Amiga [http://www.amigacoding.com/index.php?title=Guru_codes&redirect=no Guru Codes]
If the crash is in intuition. Sometimes, if it relates to text, a null pointer sets it off.
an uninitialised pointer can have any address (this is a common fault).
Compiling on 64bit, Many old code would not properly typecast when doing pointer-integer conversions and thus at least throw a warning. This can easily be located and fixed.
[http://www.aros.org/cs/documentation/developers/app-dev/portable.php Portable code]
* Use texteditor or some tool to replace all "ULONG" with "IPTR" and "LONG" with "SIPTR" in the sources.
* Fix (change IPTR/SIPTR back to ULONG/LONG) the few places which really rely on ULONG/LONG being exactly 32 bit. That's for things like pixel (ARGB) buffers, structs written/read to disk, colormaps, but probably not much else.
Then again, many current compilers also throw a warning when you try to assign a pointer value to an integer and the integer is possibly too small. This happens under .NET for example when a 64 bit pointer is assigned to something like an ULONG - so exactly the case which you described.
=== Example ===
<syntaxhighlight lang="c">
/* 1. Header for your name,date,purpose of program.
2. Pre-processor directives. This will include the #includes for files you want to add.
3. Includes for function prototypes if necessary.
4. Main()
Create Pointers for Libraries and any Window you want to open.
5. Open necessary libraries.
6. Check if open exit program if fail.
7. Open a window exit program if fail.
8. Add your program
9. Close Window
10 Close Libraries.
11 End Program. */
/* standard os included headers <.h> */
#include <dos/dos.h>
#include <dos/dosasl.h>
#include <dos/dosextens.h>
#include <dos/exall.h>
#include <dos/rdargs.h>
#include <exec/memory.h>
#include <exec/types.h>
#include <utility/utility.h>
#include <intuition/intuition.h>
/* define as unresolved external references (proto/xxx.h) and compiler will link to auto(matically) open library */
#include <proto/arossupport.h>
#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/cybergraphics.h>
#include <proto/datatypes.h>
#include <proto/icon.h>
#include <workbench/workbench.h>
#include <workbench/icon.h>
#include <datatypes/pictureclass.h>
#include <proto/muimaster.h>
#include <libraries/mui.h>
#include proto/bsdsocket.h
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* my own headers ".h" */
#define CTRL_C (SetSignal(0L,0L) & SIGBREAKF_CTRL_C)
#define isDir(fib) ((fib)->fib_DirEntryType >= 0)
#define ARG_TEMPLATE "FILE/A,ALL/S,QUIET/S,W=WIDTH/N,H=HEIGHT/N,M=METHOD,DEFTOOL"
int main(void)
{
return retval;
} /* main */
</syntaxhighlight>
<syntaxhighlight lang="c">
</syntaxhighlight>
If you used c++, there is not yet c++ support in our shared library system.
The easiest way to create / compile a shared library would be to use the AROS build system but the libraries can be created manually. You have to create a ROMTAG structure and some header files.
A shared library is built with the %build_module macro with a line like this:
%build_module mmake=MetaTarget modname=mylib modtype=library files=SourceFiles
This macro can build different AROS module types, like devices, Zune classes, HIDDs, etc.
<pre>
##begin config
version 1.0
##end config
##begin functionlist
void func1(LONG a, LONG b)
int func2(char *s, ULONG a)
##end functionlist
</pre>
Alternatively,
<pre>
#ifndef LIB_H
#define LIB_H
#define __NOLIBBASE__
#include <exec/libraries.h>
#include <exec/semaphores.h>
#include <dos/dos.h>
#ifdef __AROS__
//#include <aros/debug.h>
#define reg(x)
#define __saveds
#endif
#define USESYSBASE struct ExecBase *SysBase = Base->My_SysBase;
struct MyTestBase
{
struct Library My_Test_Lib;
struct ExecBase *My_SysBase;
APTR My_SegList;
int testint;
};
#endif
</pre>
<pre>
/*--------------------------------------------------------------------------*/
/* Resident header written for mytest.library */
/*--------------------------------------------------------------------------*/
#define __NOLIBBASE__
#define VERSION 1
#define REVISION 0
#define LIBHEADNAME mytest
#define LIBHEADNAMESTR "mytest"
#define COMPDATE "04.10.2015"
#define VERS "1.0"
#define LIBBASETYPE struct MyTestBase
#define LIBBASETYPEPTR LIBBASETYPE *
#include <aros/debug.h>
#include <exec/exec.h>
#include <proto/exec.h>
#include <exec/resident.h>
#include <exec/nodes.h>
#include <exec/libraries.h>
#include <aros/symbolsets.h>
#include "lib.h"
const UBYTE lib_name[] = LIBHEADNAMESTR ".library";
const UBYTE lib_id[] = "$VER: " LIBHEADNAMESTR ".library " VERS " (" COMPDATE ") by ALB42\n";
extern const APTR FuncTable[];
AROS_UFP3 (LIBBASETYPEPTR, InitLib,
AROS_UFPA(LIBBASETYPEPTR, Base, D0),
AROS_UFPA(BPTR, seglist, A0),
AROS_UFPA(struct ExecBase *, sysbase, A6)
);
static struct LibInitStruct
{
IPTR LibSize;
const APTR *FuncTable;
const struct DataTable *DataTable;
APTR InitFunc;
}
const LibInitStruct =
{
sizeof(LIBBASETYPE),
FuncTable,
NULL,
(APTR)InitLib
};
const struct Resident romtag =
{
RTC_MATCHWORD, /* match word */
(APTR)&romtag, /* back pointer */
(APTR)(&romtag + 1), /* skip pointer */
RTF_AUTOINIT | RTF_EXTENDED,/* flags */
VERSION, /* version */
NT_LIBRARY, /* type of module */
0, /* init priority */
(STRPTR)lib_name, /* module name */
(STRPTR)lib_id + 6,
(APTR)&LibInitStruct,
REVISION, NULL
};
AROS_UFH3 (LIBBASETYPEPTR, InitLib,
AROS_UFHA(LIBBASETYPEPTR, Base, D0),
AROS_UFHA(BPTR, seglist, A0),
AROS_UFHA(struct ExecBase *, sysbase, A6)
)
{
AROS_USERFUNC_INIT
Base->My_SegList = seglist;
Base->My_SysBase = (APTR)sysbase;
Base->testint = 0;
USESYSBASE
bug("InitLib\n");
if (!set_open_libraries())
{
set_close_libraries();
return NULL;
}
return Base;
AROS_USERFUNC_EXIT
}
AROS_LH1(LIBBASETYPEPTR, LibOpen,
AROS_LHA (ULONG, version, D0),
LIBBASETYPEPTR, Base, 1, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibOpen\n");
(void)version;
Base->My_Test_Lib.lib_OpenCnt++;
return Base;
AROS_LIBFUNC_EXIT
}
__saveds APTR LibExpungeInternal(LIBBASETYPE *Base reg(a6))
{
USESYSBASE
APTR seglist;
bug("LibExpungeInternal\n");
if (Base->My_Test_Lib.lib_OpenCnt)
{
return 0;
}
seglist = Base->My_SegList;
Forbid();
Remove((struct Node*)Base);
Permit();
FreeMem((APTR)Base - Base->My_Test_Lib.lib_NegSize, (LONG)Base->My_Test_Lib.lib_PosSize +
(LONG)Base->My_Test_Lib.lib_NegSize);
set_close_libraries();
return seglist;
}
AROS_LH0(BPTR, LibClose,
LIBBASETYPEPTR, Base, 2, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibClose\n");
if (!(--Base->My_Test_Lib.lib_OpenCnt))
{
return LibExpungeInternal(Base);
}
return 0;
AROS_LIBFUNC_EXIT
}
AROS_LH1(BPTR, LibExpunge,
AROS_LHA(LIBBASETYPEPTR, Base, D0),
struct ExecBase *, sysBase, 3, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
(void)sysBase;
USESYSBASE
bug("LibExpunge\n");
return LibExpungeInternal(Base);
AROS_LIBFUNC_EXIT
}
AROS_LH0(LIBBASETYPEPTR, LibReserved,
LIBBASETYPEPTR, Base, 4, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibReserved\n");
return 0;
//return (APTR)LibReserved();
AROS_LIBFUNC_EXIT
}
// Space for your own functions
// do not forget to update the FuncTable as well
AROS_LH1(int, TestFunction,
AROS_LHA(int, TestValue, D0),
LIBBASETYPEPTR, Base, 5, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("TestFunction\n");
Base->testint = TestValue + Base->testint;
return Base->testint;
AROS_LIBFUNC_EXIT
}
// Functable -> Table of all functions in the Library, in right order - important!
const APTR FuncTable[] =
{
&AROS_SLIB_ENTRY(LibOpen,LIBHEADNAME,1),
&AROS_SLIB_ENTRY(LibClose,LIBHEADNAME,2),
&AROS_SLIB_ENTRY(LibExpunge,LIBHEADNAME,3),
&AROS_SLIB_ENTRY(LibReserved,LIBHEADNAME,4),
&AROS_SLIB_ENTRY(TestFunction,LIBHEADNAME,5),
(void *)-1
};
// AutoInit stuff
void *__PROGRAM_ENTRIES__symbol_set_handler_missing;
void *__LIBS__symbol_set_handler_missing;
// end of AutoInitStuff
</pre>
Makefile
<pre>
VPATH =
CFLAGS = -O2 -g -fomit-frame-pointer -W -Wall -Wno-parentheses
CC = i386-aros-gcc
LD = i386-aros-gcc
LDFLAGS = -nostartfiles -Wl,-Map -Xlinker linkermap
LIBS = -lautoinit -llibinit
STRIP = i386-aros-strip --strip-unneeded --remove-section .comment
OBJS = lib_header.o
all: mytest.library
mytest.library: $(OBJS)
$(LD) $(LDFLAGS) $^ $(LIBS) -o $@
lib_header.o: lib_header.c lib.h
clean:
rm -f *.o *.library *.ppu testlibrary linkermap
</pre>
Porting UNIX library to AROS - dealing with static variables which would make it easy to port such libraries to AROS, keeping the benefits of sharing them on disk, but losing the benefit of actually sharing them in memory.
Our problem arises by the fact we want to share the actual code (the .text section of the library) and constant data, but we need to have per-task .bss and .data sections. If we get rid of our intention to share the .text and .rodata sections, things get quite easy: just load and relocate the library whenever it's open, by whoever it's open. It's like statically linking the library into the executable, except that the final linking is done at runtime.
In the V0 branch, in workbench/hidds/hidd.nouveau was committed pcimock.hidd. This is a pci driver that allows mocking real PCI devices under linux-hosted. The main idea is to be able to run the real hardware driver under linux-hosted with as little changes as possible (some changes will always be needed though unless someone wants to write complete device simulator) so that driver's code paths can be executed and debugged using gdb. This was a very helpful capability when porting nouveau. Now it is externalized from nouveau.hidd and can be used by other people porting drivers. The pcimock.hidd can currently mock 4 different nvidia cards, 1 AGP bridge and also mock irq.hidd.
What's the difference between this driver and the pcilinux.hidd? I used that one to develop many different HW drivers for aros. As far as I understood the intention of pcilinux.hidd it is supposed to get access to real hardware that is running under linux. The pcimock.hidd goal is to mock the hardware. For example my dev box is a PCIE system, but I still would like to run the AGP codes paths in nouveau under linux-hosted to check if they don't seg fault. The other case would be to run codes paths for hardware that the developer does not have (Fermi cards in my case). In the case of pcimock.hidd, the AROS driver's code paths will execute as long as you add proper mocking (for example fill in PCI config area or values for registers in BARs). This is an advantage for ported drivers - the code should already work (since it worked on another system) but there might have been mistakes made during porting which can be detected easily with gdb.
In case you are writing your driver from scratch, pcilinux.hidd hidd will give you more advantage, since you can actually access the real hardware from linux-hosted.
== Misc ==
===APL, MPL, BSD, GPL and LGPL Licences===
The majority of AROS sources in licensed under AROS Public License ([http://aros.sourceforge.net/license.html APL]) which (to a degree) protects us from someone taking AROS sources and not contributing improvements back (for example MorphOS took some AROS source and then contributed changes back)
It is written to allow the use of AROS code in other open source or commercial projects without exception whilst providing a mechanism so that improvements/additions can find their way back to the original source in one form or another.
There are "3rd" party applications used by AROS that do not fall under this license, which are an extra "Contrib" download for convenience.
Anyone can port GPL-ed network and sound drivers as AROSTCP and AHI are GPLed. Direct using (porting) [http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs GPL]-ed code in other parts of AROS (gfx, sata, usb) is not possible because AROS license is not compatible with GPL. You need to utilize permissive licensed code like BSD or MIT/X11.
BSD and MPL license are the closest to APL.
APL however is not so compatible with LGPL/GPL.
LGPL case - you cannot statically combine APL code with LGPL. You can, however thank to LGPL being "lesser" restrictive, use LGPL dynamically loaded libraries in APL codes.
GPL case - you cannot combine APL code with GPL in any way if there is no explicit clause by GPLed code authors allowing that. If you do combine APL with GPL in "bad" ways described above - you have a problem (you violate GPL). This problem might result in everything in AROS becoming GPL or everything running or AROS becoming GPL (here I'm not sure really). The other scenario is that you are not allowed to legally distribute such code at all. To be honest I have grasped how to violate GPL, but I'm still no exactly sure what happens when you violate it (but I'm sure it's not anything nice)
GPL software can run on top of non-GPL "system components" (see system components exception of GPL), but the other way around (non-GPL using GPL) leads to problems. This means applications like scout, or Quake III are ok (in the majority of cases).
Theres no reason GPL drivers cannot be ported - but they cant be in AROS's ROM (requires linking APL code with GPL), nor can AROS depend on them (e.g. they must use existing apis).
If they are launched (dynamically linked) by a user action that is allowed. It is also allowed to distribute such binaries together for convenience.
GPL is not about statical or dynamic linking but is about executing process and function calls.
These components - SFS, isapnp, Zune texteditor, AHi, network drivers, freetype, openuirl, BHFormat, Edit and (" dynamically loaded libraries") are LGPL, not GPL. Mesa/Nouveau stuff is MIT. Some user tools are GPL though.
'''AROS (system)'''
* system components (libraries/classes/devices/etc) cannot be GPL as they would propagate GPL to complete system as well as GPL is not compatible with MPL from which APL is based
* system components can be LGPL v2 or a permissive license (MIT/BSD)
* system applications can be anything you like (but still I would prefer APL or permissive so the code can be reused if needed)
'''Contrib:'''
* no rules - contrib does not impact AROS system since nothing in AROS system depends on contrib.
About stealing code: The chances of this happening is exactly the same whether we are APL or GPL. If any closed-source option wanted to do it, there is no one that can validate otherwise. MorphOS has used some AROS codes, but contributed changes back.
The rationale behind APL is that while it guarantees that the original developer will get the improvements back (to a certain degree - file based), the person who uses the codes does not have to open his original codes. BSD does not guarantee that the original developer gets improvements. GPL requires the person using the codes to open his codes as well.
The copyright holders needs to stay - we just need information from them that the codes are available under APL (for example a checked-in file like in case of Poseidon). We don't do transfer of copyrights.
; Ultimately what can and cannot be done is up to the author(s) - not the licence.
===AROS source code tree===
* http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-trunk.txt
* http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-contrib.txt
Found this interesting (non-GPL) licensing 'anomaly' - to keep in mind for distributors.
Programs that lose their license if sold ("non-profit only" licensed):
contrib/aminet/comm/term/TinyTerminal
contrib/aminet/dev/basic/bwBASIC
contrib/aminet/text/edit/xdme
contrib/fish/aroach
contrib/fish/lotto
contrib/fish/shuffle
contrib/fish/touch
+ cdvdfs.
Here is a list of all the GPL/GPLv2/GPLv3 licenses fossology found, what have explicit licenses in their comments.
excluded LGPL, BSD/GPL dual licensed and programs (such as Prefs/Edit and BHFormat)
<pre>
AROS/rom/dbus/include/ AFL_v2.1 ,GPL_v2+ (supposedly AFL < 3 is GPL incompatible)
AROS/workbench/classes/zune/betterstring/include/ GPL_v2+
AROS/workbench/classes/zune/texteditor/include/ GPL_v2+
AROS/workbench/classes/datatypes/gemimage/ GPL_v2+ GPL
AROS/workbench/classes/datatypes/degas/ GPL_v2+
AROS/workbench/libs/openurl/README: GPL
AROS/workbench/network/smbfs/documentation/ GPL_v2
AROS/workbench/network/smbfs/source_code/ GPL_v2+
AROS/workbench/network/stacks/AROSTCP/bsdsocket/kern/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/mmakefile.src conf.h GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/sys/ CMU ,GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/net/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/api/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/conf/conf.h: GPL_v2
AROS/workbench/network/stacks/AROSTCP/netinclude/net/radix.h: CMU ,GPL_v2
AROS/workbench/devs/AHI/AHI/ GPL_v2+
AROS/workbench/devs/AHI/AddAudioModes/ GPL_v2+ AROS/workbench/devs/AHI/AddAudioModes/COPYING: GPL
AROS/workbench/devs/AHI/Docs/texinfo.tex: GPL_v2+
AROS/workbench/devs/AHI/COPYING: GPL
AROS/workbench/devs/AHI/Drivers/EMU10kx/ GPL_v2+
AROS/workbench/devs/AHI/AHI-Handler/ GPL_v2+
AROS/workbench/devs/networks/rtl8029/ GPL GPL_v2+
AROS/workbench/devs/networks/pcnet32/ GPL GPL_v2+
AROS/workbench/devs/networks/ppp/LEGAL: GPL
AROS/workbench/devs/networks/atheros5000/ GPL_v2+
AROS/workbench/devs/networks/rhine/ GPL_v2+
AROS/workbench/devs/networks/nForce/ GPL_v2+ GPL
AROS/workbench/devs/networks/prism2/ GPL GPL_v2+
AROS/workbench/devs/networks/fec/LEGAL: GPL
AROS/workbench/devs/networks/rtl8139/ GPL GPL_v2+
AROS/workbench/devs/networks/etherlink3/ GPL GPL_v2+
AROS/workbench/devs/networks/intelpro100/ GPL GPL_v2+
AROS/workbench/devs/networks/rtl8169/ GPL GPL_v2+
AROS/workbench/devs/networks/emac/ GPL GPL_v2+
AROS/workbench/devs/networks/rtl8168/ GPL GPL_v2+
AROS/workbench/devs/networks/realtek8180/ GPL_v2+
AROS/workbench/devs/networks/via-rhine/via-rhine.c: GPL_v2+
AROS/workbench/devs/networks/via-rhine/ GPL GPL_v2+
AROS/workbench/devs/networks/e1000/ GPL_v2
AROS/workbench/devs/networks/sis900/ GPL GPL_v2+
</pre>
AHI: it has special provisions (COPYING.DRIVERS). The library is LGPL, preferences software is GPL and drivers can be anything without breaking GPL/LGPL.
Network stack: well, we are long overdue for a new, IPv6 enabled network stack anyway, anyone interested? ;) Seriously though it seems like the glue code is GPL and as all the drivers. However some of the drivers are our own code, so they could be relicensed to LGPL.
Same filter as the AROS trunk list. These should all be libraries or plugins - no programs.
<pre>
contrib/regina/utsname.h: GPL_v2+
contrib/mui/classes/nlist/include/default-align.h: GPL_v2+
contrib/mui/classes/nlist/include/amiga-align.h: GPL_v2+
contrib/mui/classes/BWins/include/MUI/BWin_mcc.h: GPL
contrib/mui/classes/BWins/include/BWin_private_mcc.h: GPL
contrib/mui/classes/BWins/COPYING: GPL_v2
contrib/mui/classes/BWins/MCC_BWins.readme: GPL_v2
contrib/mui/classes/thebar/include/default-align.h: GPL_v2+
contrib/mui/classes/thebar/include/amiga-align.h: GPL_v2+
contrib/gfx/libs/wazp3d/LEGAL: GPL
contrib/gfx/libs/wazp3d/Wazp3D.readme: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d.c: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d_opengl.h: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d_opengl.c: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/Wazp3D.h: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/Wazp3D.c: GPL
contrib/libs/mpega/ GPL_v2+
</pre>
http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-contrib.txt
===Types===
On AROS following rules apply:
<pre>
1. BYTE/UBYTE is 8bit, WORD/UWORD is 16bit, LONG/ULONG is 32bit, QUAD/UQUAD is 64bit, the types are comparable with stdint types (int8_t, int16_t, int32_t, int64_t)
2. IPTR/SIPTR are integer types large enough to fit pointer, that is sizeof(IPTR) = sizeof(APTR) = 4 on 32bit system, and = 8 on 64bit system
3. ti_Data in TagList is large enough to hold a IPTR/APTR type.
4. never store a pointer in integer of type LONG. It may work (if the pointer has upper 32bits clear), but does not have to. Compiler should warn you about that.
5. If you are unsure about point 4, allocate your memory with MEMF_31BIT flag set. But don't expect that AROS internals will do the same.
</pre>
point 4 is actually important.
* UBYTE/BYTE for 8bit
* UWORD/WORD for 16bit
* ULONG/LONG for 32bit
* UQUAD/QUAD for 64bit
<pre>
UBYTE Unsigned 8 bit integer variable (byte).
BYTE Signed 8 bit integer variable (byte).
UWORD Unsigned 16 bit integer variable (word).
WORD Signed 16 bit integer variable (word).
ULONG Unsigned 32 bit integer variable (longword).
LONG Signed 32 bit integer variable (longword).
FLOAT 32 bit IEEE floating point variable.
UQUAD Unsigned 64 bit integer variable.
QUAD Signed 64 bit integer variable.
DOUBLE 64bit IEEE floating point variable.
BOOL Boolean variable, TRUE and FALSE are also defined in exec/types.h.
VOID Void.
APTR A generic pointer for multiple purposes - Arrays.
STRPTR A pointer to a null-terminated string.
IPTR Really important in AROS, the only way to declare a field that can contain both: an integer or a pointer.
</pre>
if you want to write really portable app, you may be interested in standard datatypes defined in C99: int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t, intptr_t, uintptr_t. They are all defined in inttypes.h include file.
In exec/types.h the following short-cuts are typedef'd. They are used often in AROS, so you should nearly always include exec/types.h and soon only they will be removed from sys/_types.h include, all types are now defined in include files named aros/types/xxx.h.
(Preparation for C library split; sys/xxx.h include will only be available there when compiling with POSIX C library)
Compiler specific types, like int and long might change their size. In case of AROS, similar to linux, int remains 32 bit whereas long grows to 64 bits in size.
If you use Amiga-like data types, i.e. BYTE/UBYTE, WORD/UWORD, LONG/ULONG and QUAD/UQUAD or the C99 standard types (uint8_t and so on, see stdint.h include) then you should have less issues to solve than by using types without size guarantee.
Of course, all pointers grow to 64 bytes using 64bit cpu. Most of the code can be just recompiled and will work. In rare cases, where e.g. pointers are casted to integers, a special care must be taken. Especially in the cases, where pointer is casted to LONG/ULONG (this code will break on 64 bit AROS) e.g. '#define IPTR ULONG'.
With compiler delint patches which the majority of them are simple casting issues to make the compiler happy. Notice some of the changes involve introducing double casts. In very recent versions of GCC. Yes, the bulk of the double casts are for converting 32 bit addresses (ie from a 32 bit PCI DMA address register) to a 64 bit pointer. First cast is to IPTR (to expand to 64 bits, and prevent sign extension if the address is above 0x7FFFFFFF), and then to APTR.
ULONG != IPTR except on 32bit .. so if you need to store pointers make sure and use IPTR and not ULONG (which some old code does). For this reason things like Taglist elements are 64bit (since the tag data can be a pointer).
If your passing items on the stack you should use the STACKED attribute to make sure they are correctly aligned (on 64bit all items on the stack are 64bit..)
There is more issues like using "== 0L" causes problems.
===Endian===
*BE
*LE
Use the macros from <endian.h> instead making a guess based upon architecture defines
<pre>
#if _BYTE_ORDER == _BIG_ENDIAN
#elif _BYTE_ORDER == _LITTLE_ENDIAN
#else
+
#error <whatever.h> - Byte order for this architecture is unsupported!
</pre>
===SVN and GIT===
If you want to help develop AROS OS itself, you can
* view current GIT/SVN entries [http://aros.sourceforge.net/ Aros Org website] or [https://github.com/aros-development-team/AROS Github], [https://github.com/ezrec older ezrec mirror], [https://github.com/michalsc/AROS/ older mirror], [https://trac.aros.org/trac/timeline TRAC], [],
* awaiting update [http://repo.or.cz/w/AROS.git git repo], [http://www.ohloh.net/p/aros/commits ohloh] or [https://svn.aros.org/svn/aros/trunk/ svn repo] and access [Git version git://repo.or.cz/AROS.git here],
* deprecated [https://www.gitorious.org/aros/aros/commit/a7fda9e ARIX commits] or [https://gitorious.org/aros/aros GIT old]
If you have SVN access (early 2015 introduced a new SVN server, create a new account at trac aros org) and/or have obtained the source [http://aros.sourceforge.net/download.php AROS site] - you can compile the current build tools/environment using:
> make development
and follow this [http://aros.sourceforge.net/documentation/developers/compiling.php#building procedure] or [https://github.com/apiraino/aros_guide Guide]
https://trac.aros.org/trac#Developing
If you plan on contributing back changes, please post information about such changes first on this [http://mail.aros.org/mailman/listinfo/aros-dev/ mailing list] for more experience developers can validate whether they are correct.
Then there are the nightly build machines. They svn update before the build and run configure as one of the next steps. autoconf might be added to the nightly build scripts.
Our build relies on packages downloaded from Internet (SDL for example) - it always worked this way. The minimal requirement (when just building core AROS) is binutils and gcc. If you build contrib as well, you need many more packages to be downloaded.
https://gitorious.org/aros/aros/commits/crosstools-II
git://gitorious.org/aros/aros.git
Branch crosstools-II there is only one commit on top of ABI_V1
<pre>
../../aros-src/AROS/configure --enable-ccache
--with-portssources=~/aros/Sources --target=pc-x86_64
--with-aros-toolchain-install=/home/weissms/media/data/aros/test/crosstools/pc-x86_64
</pre>
and
<pre>
../../aros-src/AROS/configure --enable-ccache
--with-portssources=~/aros/Sources --target=pc-i386
--with-aros-toolchain-install=/home/weissms/media/data/aros/test/crosstools/pc-i386
</pre>
build OK.
:''More information: [[Aros/Developer/Maintainer|AROS Maintainer Docs]]''
===SDI Calls===
Integrate the 'SDI'-headers to allow easier porting to all amiga-like platforms.
<pre>
PUTCHARPROTO( PutTheChar, char c, struct SPrintfStream *s )
{
// REAL CODE
}
</pre>
have "SDI_compiler.h" and "SDI_hook.h" included
its more organized like
#include SDI/SDI_hook.h
than
#include SDI_hook.h
option 1 --- i also use when back porting from amiga's..
<pre>
#ifdef __AROS__
#include SDI/SDI_hook.h
#else
#include SDI_hook.h
#endif
</pre>
also
you can add the -i include/sdi/ location if you do not want to add or edit any files.
Defining HOOKPROTO to IPTR name(struct IClass * cl, Object * obj, Msg msg); solved the problem
A MUI application most likely needs only the HOOKPROTOxxx SDI macros. They are compatible with AROS, only the attributes (hook, object attribute) must be given in the right order. examine compiler/include/aros/symbolsets.h (AROS_LIBREQ)
compiling mui stuff for aros setting -std=gnu99 is necessary (i have had -std=c99 most of the time).
===Locale with Flexcat===
Most languages have a locale, but not every app is localized, the only thing needed is to translate the "catalog" files. It is a case of locating the correct catalog and saving the translated version.
For every app that lacks of your language catalog and is localized anyway, you should find (in the sources) files related to locale:
* file.cd = catalog descriptor, contains base msg, with internal language (usually english)
* language.ct = catalog translation, contains every translated msg, indexed as in the file.cd.
Compare with other localized apps... Then, "make my_app-catalogs" should create and install your translated catalogs. ex : for, saying, sys:prefs/wanderer:
on root of AROS sources, type:
"make workbench-prefs-wanderer-catalogs"
then (if you changed the .cd file):
"make workbench-prefs-wanderer"
For apps not localized, you have to adapt their code to support it, if it is possible...
noticed the original .cd file has many (//) strings at the end of any voice, so added them also to the .ct file.
That (//) is only for cd files. I'm highly recommending to use FlexCat for updating ct files, e.g. like this:
flexcat app.cd deutsch.ct newctfile deutsch.ct
You'll get error checking and new entries are marked in the resulting ct file.
When editing .ct files, only change those lines containing translation and perhaps version string, nothing else.
The rest is up to the relevant tool, flexcat. In order to update your translation, type in the following in your shell:
flexcat xyz.cd xyz.ct NEWCTFILE xyz_upd.ct COPYMSGNEW
This way you will not only make sure you have correct translation file but flexcat also pre-fills newly added strings with "*** NEW *** text. Even better tool for checking cd/ct/catalog files is catcheck, but this one is sadly only available for AmigaOS/68k...
Some languages have variations, like portugues from portugal and portugues from brasil differs...
This is the way to go. I will have a look at language files, but basically if those two languages differ you have to do two separated set of translation files, yes.
(you could create a brazilian slang language localization too)
* At system level localization for one language is a dot language file.
(ex: locale:languages/klingon.language)
* At app level localization is a dot catalog file
(ex: locale:catalogs/klingon/system/libs/dos.catalog)
* At sources level, the dot ct file, and "$language" dot cd files and some building framework.
(ex: catalogs/my_app.ct catalogs/klingon.cd catalogs/mmakefile.src support.c support.h)
Please, use Flexcat to generate CT files:
FlexCat wanderer.cd NEWCTFILE=deutsch.ct
Then fill the first 2 lines with something useful:
<pre>
## version $VER: wanderer.catalog 1.1 (9.2.2006)
## language deutsch
</pre>
You can even update the CT-File: (This adds the new strings)
FlexCat wanderer.cd deutsch.ct NEWCTFILE=deutsch.ct
To compile a catalog you only need the .cd file and your translation (.ct file):
FlexCat multiview.cd deutsch.ct CATALOG=MultiView.catalog
[http://murks-ide.svn.sourceforge.net/viewvc/murks-ide/trunk/src/Catalogs/flexcat_linux?revision=100 Linux version of FlexCat]
: [http://aros.sourceforge.net/documentation/developers/app-dev/localization.php#localization-for-non-developers More information]
A script which compares the required version (i.e. the version which an application/module etc. tries to open) with the version of the existing CT files. The result is in this table:
https://github.com/aros-translation-team/translations/wiki/Progress
The following cases are highlighted:
n/a i.e. CT misses at all
version in existing CT file is lower than the required version
It might be a bit difficult to participate if you haven't worked with Git before but alternatively you can send your CT files to our Slack channel.
When the ct file has been generated via flexcat (flexcat keyshow.cd NEWCTFILE=spanish.ct) it has the following header:
---------------------------------------------------------------------------------------------------------------
## version $VER: <name>.catalog <ver>.<rev> (04.01.2021)
## language nolanguage
## codeset 0
;
---------------------------------------------------------------------------------------------------------------
Those values <ver>.<rev> are the version and revision of the CT file for the languaje or are the values of the application being localized?
The <ver> part must match with version which the application tries to open. You can find the value either in the column "Required Version" in the table which I've linked above, our you can look in the git repository. For keyshow it would be https://github.com/aros-translation-team/keyshow. You can find in the file "catalog_version.h" the right version number.
The <rev> part starts for new CT files with 0 and should be increased every time the CT file is updated.
Updated several files and created a few more that were missing on the spanish catalog.
The catalogs are in Git repositories at https://github.com/aros-translation-team
a) You tell me your Github user name. I'll invite you. You can work directly with the Git repositories.
b) You create Github forks of the catalog repositories and create pull requests.
c) You send the CT files to mrustler gmx de
===C Utils Misc===
The AROS source uses at several places the __DATE__ macro to fill the date entry of a $VER tag. Problem is that c:version doesn't understand that date format (e.g. "May 21, 2011"). As a result the output of e.g.
> "version c:shell full" contains "(null)". Is extending the version command to understand the format of __DATE__ the right solution for that problem?
AmigaOs compilers should use __AMIGADATE__ macro or similar form, if it isn't implemented it could be emulated in makefile: -D__AMIGADATE__=\"$(shell date "+%d.%m.%Y")\"
BTW. I think DD.MM.YYYY is better format than "Month DD YYY" because "Month DD YYY" is not localized in any way.
"strnicmp" shouldn't work with NULL pointers
The Situation:
compiled a linklib using c++ object files (using the c++ cross compiler).
compiled a C stub that uses the linklib (using the c++ cross compiler).
Try to link them together (using the c++ cross compiler) with C object
files (using the normal target c compiler) that need to use -nostartup
= cant do because using the c++ files pulls in arosc (for stdio etc.) -
so wants to have the autoinit stuff present.
What can I do about this??
If it is possible to manually open it then what do I need to do exactly?
=== ENV ===
The philosophy behind ENV: is that keeping configuration files there allows you to 'Use' preferences by keeping a copy in ENVARC: intact. However in some cases (like this one) it is not required.
99% of the time that statement is true (not required) for pretty much every file in ENV: or do people change their default icons - and prefs settings - every boot?
There seem to be a bad habit of late with developers changing things to reflect their own personal preference when the change isn't actually necessary - It would be nice if people could refrain from doing that in the tree without at least discussing it on the dev-list first (and with good reasoning unless they committed said work in the first place..)
We're not keen on the pollution of the "S:" dir: it's meant to be for scripts. What's wrong with "ENV:"?
Only the fact that it takes up RAM. I understand that for PCs with several gigabytes of RAM this is
irrelevant. But let's remember about other machines. The philosophy behind ENV: is that keeping configuration files there allows you to 'Use' preferences by keeping a copy in ENVARC: intact.
However in some cases (like this one) it is not required.
How about implementing in the style of HappyENV then? RAM-disk handler that falls through to reading from ENVARC: if there is no such file stored in it already. Removes RAM usage for unchanged files, removes the need to copy ENVARC to ENV in startup-sequence.
Shouldn't be too hard to make from AmberRAM, or even just extend AmberRAM to provide this service.
Is it feasable to build a special version of AmberRAM handling ENV: that will try and copy the requested file from ENVARC: if it isnt found in ENV: ?
Additionaly it could mark closed "files" as untouched - and expunge them from ENV: after a period of time to free up additional RAM:, or when the system is running low on free memory?
Silenty disappearing files may not be a good plan. Would be nice if the following would work:
ASSIGN :ENV SYS:Prefs/Env-Arc ADD
ASSIGN :ENV RAM:ENV ADD
Where new files put in ENV: end up in RAM:ENV, and opening files looks in RAM:ENV first, then SYS:Prefs/Env-Arc
Well - that's essentially what im proposing but without the assigns - or need for a RAM:ENV directory.
Adding it as a feature of AmberRAM sounds like the most memory efficient way (one handler to load in RAM) but that's only if it is possible to make it handle ENV: additionally to RAM:, and if it is even possible to add the proposed functionality (...and how to make it enable it when accessing ENV:).
===(AS)MP support===
If one has to recompile software for SMP multi core, is there any thing special one has to do to get software to run?
Use task.resource if you need to query information about what tasks are running, and clear msgports completely when they are allocated.
Most code should not need Forbid. Use Semaphores, Messages etc. to sync your own code.
Accessing system structures is a different thing. Use the proper API whenever possible.
How single structures will be protected in the future is still a moving target, at least it is not documented. And you should never use undocumented stuff
Ideas on for SMP multi-core
Another suggestion is ... Forbid/Permit function calls are meant to halt multitasking so as no other task could intervene with what ever the calling task is doing, e.g. setting semaphores. Disable/Enable calls are meant to halt interrupts and as a side effect they also halt task switching.
One option is to make it compulsory to protect shared resources with semaphores and forbid the use of simple Forbid() calls as to protect something. Setting semaphore should be done if possible with atomic instructions (check and alter in one instruction). Or make the second concurrent ObtainSemaphore call halt the second calling task and force if possible a task switch which ever gives better results.
Semaphores could store the owning tasks task pointer instead of boolean to make things easier.
As long as the CPU initiates the DMA transfers through the OS, and the OS ensures that the transferred memory is within the region accessible to the user initiating the transfer, everything is fine. The CPU is the conductor, and the CPU by that has the control of which DMA transfer is initiated and which is not.
All you need to do is to write device drivers reasonable. Hint: CachePreDMA and CachePostDMA exist.
All the Os has to do is to verify that the memory regions to be transferred are valid, and prohibit direct access to the DMA control registers from user space. None of these algorithms imply huge costs.
The current OS design doesn't really allow virtual memory in first place, Forbid() is again the problem.
[http://www.tbs-software.com/guide/index.php?guide=autodocs.doc%2Fmemory.doc&node=1 memory.library API] seem to low level. IMHO the programs should not know how the swapping is implemented. I would just go for one new memory flag
MEMF_SWAPPABLE that indicates that a certain memory region or a whole memory pool won't be accessed during Forbid()/Permit() etc. It only solves part of the problem, it only implements virtual memory and not memory protection. For the latter you need to be able make certain memory inaccessible by other programs, some memory read-only for one task and read-write for other tasks, etc. And I think this should be done in the same Address Space in order to avoid you constantly need to swap between different address spaces.
So to summarize, if there are programs using this API we may provide a wrapper layer to get them working but I am not convinced this API should be the reference API with whom to provide VM to AROS programs.
=== Variadic ===
variadic functions (i.e. functions with an arbitrary amount of arguments).
<pre>
#include <stdarg.h>
[...]
char * STDARGS GetKeyWord(int value, char *def, ...)
{
[...]
va_list va;
[...]
va_start(va, def);
[...]
va_end (args);
</pre>
Please keep with using stdarg rather than having va casted to a LONG * type and varargs handled manually. Doing so, prevents tons of casting, where a simple va_arg can be used. So, string = *((char **) args) instead of string=va_arg(va, char *).
<pre>
#include <stdio.h>
#include <stdarg.h>
int printf (const char * format, ...)
{
int retval;
va_list args;
va_start (args, format);
retval = vfprintf (stdout, format, args);
va_end (args);
fflush (stdout);
return retval;
} /* printf */
</pre>
Couldn't find varargs.h or stdarg.h. and have no use for AROS_SLOWSTACKHOOKS or AROS_SLOWSTACKTAGS.
GCC looks for stdarg.h in a different place:
/bin/linux-i386/tools/lib/gcc/i386-aros/4.2.2/include/stdarg.h
Here is a path for a "normal" header:
bin/linux-i386/tools/lib/gcc/i386-aros/4.2.2/../../../../i386-aros/sys-include/aros/system.h
The use of vararg.h isn't supported by newer gcc versions. If you want your code to run on architectures that pass part of variadic arguments in a number of registers you need to use AROS_SLOWSTACK macros. Otherwise your program will not work on powerpc and x86_64 ports.
Of course the SLOWSTACK stuff is not needed in a function that can use va_list, va_start, va_arg and va_end. It's only needed if you want to write functions like DoMethod or similar.
#include <stdarg.h>
should be enough no matter if you do cross or native compiling. If it does not work, something is wrong and should be corrected.
Stdarg.h is here, Development:lib/gcc/i386-aros/4.2.2/include/
...which is part of the compiler's default include paths. In other words, #include <stdarg.h> works out of the box, indeed. (sorry, I should have just tried it before invoking "search" or "find"...)
furthermore, myprintf() as shown above won't work, because...
printf(format, args);
...is wrong - the second argument does not match printf() prototype, it expects a argument list, but args is of type va_list (obviously) - so one has to use...
vfprintf(stdout, format, args);
...instead, just like in the original printf(), and add fflush(stdout).
additionally, one could use...
int myarg = va_arg(args, int);
...between va_start() and va_end() to access individual arguments, where each call to va_arg() returns an argument casted to the desired type (here: "int") from the list given (here: "args") and advances to the next one.
wrapping up vfprintf() and modifying the format string now is a major speedup! no more backslash-n typing! this has been haunting me for years!
On MOS and AmigaOS, the NewObject variadic function is kept in the static library. It takes most of the parameters on the stack - thanks to that the implementation of NewObject calls the NewObjectA function. Everything works perfect, and the typical MUI macros may be easily used.
This, however, is not the case when you compile for AROS. Here, NewObject is a variadic macro, not a function. Thanks such approach we do not need any custom compiler in case of systems, where the arguments of variadic functions are passed partially through registers and partially through the stack (This is the case of PPC and x86_64, this is also the reason why both OS4 and MOS require specially patched compilers).
Since NewObject is a macro, the gcc's preprocessor expects the list of macros arguments enclosed within parentheses. In MUI macros it is not the case. Imagine the following test code:
<pre>
#define foo(a,b) ((a)+(b))
int loosy_function(int a, int b)
{
return foo(a,b);
}
</pre>
This will compile and work, but the following piece of code:
<pre>
#define foo(a,b) ((a)+(b))
#define END )
int loosy_function(int a, int b)
{
return foo(a,b END;
}
</pre>
will fail with the error: unterminated argument list invoking macro "foo"
There are two ways of fixing your issue. Either create your new objects outside this huge MUI constructions, and in there use just a pointer, or get rid of the "End" macro and exchange it with "TAG_DONE)".
Badly written software is, for example, casting va_list to an APTR or even doing so as if va_list were a plain table of function arguments. Such code needs to be fixed because it has very few chances to work anywhere but on author's machine ;)
The problem is nOt that they assume sizeof(APTR) == 4, its that they often do not use APTR, and use ULONG to store pointers exclusively. If the code used APTR/IPTR as it should - most of the "problems" wouldn't exist.
It would also help if people would start using variadic arguments properly. Many coders do assumptions which shall never be made. Instead, they should consider using stdarg.h file and all the va_* functions :)
===ABI===
In the head of our SVN repository there are now only 3 directories:
<pre>
admin/
branches/
trunk/
</pre>
We have added two extra dirs there: tags and imports
As discussed when we branch ABI V0 and [[Aros/Developer/ABIv1|ABI V1]] it would also be good to introduce tags. Normally this is done in a directory in the repository called tags. Currently we don't have this directory there. (We do have branches/tags that is a hack I have done because one doesn't have write access in the top directory. I think this directory is not clean and should be removed).
The second directory I would introduce is an imports directory for implementing vendor branches as discussed in the svn [http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html book]. Currently we use code from several different projects and that code is stored inside the AROS tree; we seem to have problems with keeping this code up to date and merge our changes upstream. Maintainers of up stream projects like the MUI classes etc. have complained about this (to put it lightly).
Introducing these vendor branches would make it easier to see what changes we have made and make patches to be sent upstream and make it easier to import newer upstream versions of their code. Although can't "copy" the vendor branch into the main branch because it's already there, so start with a "merge".
Yes, the first step to make the code already in the repository compatible with the vendor branches will be the most difficult. The best way to do it the following way:
* first import the version on which the current AROS code is based into the vendor branch
* then import the new version over it in the vendor branch
* finally merge the difference between these two version in the AROS code present in the repository.
For example, place NList directly under vendor and not in a subdirectory like "contrib/zune/classes".
Actually after we have a stable [http://aros.sourceforge.net/documentation/developers/specifications/drafts/abiv1.php ABIv1 (2012 or later)]. We need to move away as much as possible from the contrib directory to some other repositories. The reasons are ...
* The AROS repository should be for the core AROS code.
* other contrib projects should be tried to be compiled for all Amiga-like OSes.
* The release scheme for AROS and the other programs should not have to be aligned.
* Binary versions should be provided on aros-archives and on aminet and/or OS4Depot to install them. (Some clever programs should maybe be provided to make the life of distribution developers easier).
* avoid parallel forks of programs for AROS and the other amiga OSes.
If there is really a need for a place for hosting AROS projects we may investigate setting up such a server but then including bug tracking, governance, maillist, etc. for each project separately. I personally think there are already enough places like sourceforge, google code, savannah, etc. where people can go for hosting such projects.
==Links==
* http://amigadocs.hokstad.com
* http://amigadocs.hokstad.com/doku.php?id=dev-links
In the future...?
*AROS 64bit - SMP, Vulkan with OpenGL compability layer
*AROS 32bit - keep for historic reasons
What would you like to see implemented in AROS?
ABIv1 completed, SMP (x86_64), SendMsg()/GetMsg() to support memory protection between target and destination, in that order. Michal Schulz and Jason McMullan have been toying with the question "What are the minimal changes needed to the AmigaOS 3.1 API to support SMP"? The answer so far seems to be "few, but subtle". For example, SysBase->ThisTask is no longer meaningful on SMP, but FindTask(NULL) is. Disable() and Forbid() are shockingly bad on performance, but adding a spinlock semaphore mode to SignalSemaphore will help new code on SMP.
Leveraging a 'common' OS with a lot of machine support (Linux, MacOS, Windows, QNX, etc.) is something that AROS has been doing for quite a long time, and it is the biggest strength of AROS. This AROS experience and programming model, in the same way the Google's Android layers on top of Linux, or MacOS X layers on top of the Darwin/BSD kernel, as a first step
* The graphics + layers subsystem could be implemented as a shim on top of a OpenGL ES implementation (ie on any modern Linux system, or the RaspberryPI's hardware, MacOS X, etc).
- This also allows every window to be on its own 3D surface with backing store, allowing Wanderer (or a Commodity)
rearrange/zoom/animate app windows without having to send a pile or refreshes to them
* Use OpenAL as the sound backend
* AROSTCP would be a thin layer over the native OS's TCP/IP stack
* dos.library, poseidon.library, and input.device would be slim shims over the native APIs
* If we move to loading all libraries' into the application's task space, instead of a single global instance of the library, this will allow SMP and MMU more easily.
- Yes, it will require a lot of work in the libraries to make this transition
- Yes, I do think it will be worth it in the end.
* A 'fat binary' install format (or, maybe LLVM bytecode) that can be 'flattend' to the target architecture on installation.
So, what would this 'AROS of the future' look like?
* AmigaOS 3.x style API, with certain 'fundamental changes' to message passing
* Uses the underlying OS' device drivers, so more AROS developer effort can go to user-visible features and bugfixes
* Allows AROS applications to run side-by-side with the OS's native apps
And why would anyone want to program on such a system?
* AROS applications would run on any system that has the AROS Framework installed
* AROS applications are pixel-for-pixel the same on all platforms.
* Develop with the knowledge that you are guaranteed OpenGL and OpenAL, and the rest of the AROS Framework
an option for mmake to dump its dependency of metatarget in a graphviz[*] input file. This should make it possible to visualize the dependencies and hopefully be inspiration for cleaning up some mess, circular or unneeded dependencies and so on.
AmigaOS gcc 9 [https://franke.ms/amiga/gcc.wiki Old versions] able to create binaries for AmigaOS and [https://eab.abime.net/showthread.php?t=93813 Upgrading gcc versions]
=== AI ===
Please see discussion of the [https://arosworld.org/infusions/forum/viewthread.php?thread_id=1933&rowstart=0 Aros world thread] [https://opencode.ai/ opencode], [https://openrouter.ai/models?categories=programming new opencode models], [https://axrt.org/media/aros-ui-ai.mp4 AI ui],
*DeepSeek V4 Flash - very good model, use it daily but prehaps a small monthly fee payable
*Ring 2.6 - good model but pricing small
Multimodal
Context
Prompt
<---
Model <---> Agent ---> End user
engine
Gemini LMStudio
Qwen Comfyui
etc
Recent, self hosting local models on laptops, mini pcs, laptops or desktops with [https://www.youtube.com/watch?v=oqvZJf5Vz7U quantization] (compressed) so reducing memory to run on 8Gb VRAM (very low size models) but for better performance more VRAM is needed for text based tasks. For smaller models, very specific prompting and chatting (iterations) for very smaller sections of your overall application as lots of supervision needed for the code produced
Ability increases by the amount of ram (more for better quality) and the memory bandwidth (how fast) but
Total VRAM should be greater than Model size (in Gbytes), context length (you set Gbytes taken) and KV cache - everything a trade off
<pre>
Small Limited Okay Better Bigger Best
1-2B 3B 7B 20B 30B model size
Q2 Q2 Q4 Q6 Q8 compressing
4GB 8GB 16GB 32GB 64GB VRAM needed
</pre>
Roughly...
*DDR4 Pi5 about 17GB/s
*DDR5 about 40Gb/s
*DDR6 about 90Gb/s about Jetson Orin Nano level
*Strix Halo about 210Gb/s
*DGX Spark about 220Gb/s
* MacBook M3 base 100GB/s Pro 150GB/s Max 200Gb/s unified memory
* MacBook M4 base 120Gb/s Pro 170Gb/s Max 250Gb/s
* MacBook M5 base 140Gb/s
* MacBook M6 base 160Gb/s Pro 180Gb/s Max
* [https://www.youtube.com/watch?v=jMnMrivvAWo Mac Studio] Max 400Gb/s to Ultra 800Gb/s
*[https://lmstudio.ai/download LMstudio single gpu],
128Gb
*[ gpt-oss-120b] 70Gb model
64Gb
*[HauHau 3.6 35B]
*[ muse-glimmer]
32Gb
Alibaba Cloud's [ Qwen] team series of large language models LLMs
*[ Qwen-3.8-27B]
*[ Qwen-3.6-35B A3B]
*[ Qwen-3.6-27B]
16Gb
*[ Qwen 3.8 27B GSQ ACO GGUF]
*[ Yue2 music creation]
*[ Suno]
8Gb
*[ glm-ocr]
*[ medGemma]
*[ qwen 3.5-4b]
*[https://github.com/sipeed/picoclaw picoclaw claude]
*[ DeepSeek R1]
*[ Qwen 3.5 9B Q4]
*[ Qwen 2.5 14b Coder]
*[ gpt-oss-20b 4Q]
Simple laptop
*[ mini CPM5-2B] for simple user interfaces of single c file apps as long as robust explicit clear instruction given
*[ Spark X2.5]
For the full experience
#Training learning using 1+ high end GPUs at least 16GB VRAM per GPU card or 64Gb+ of unified, 16Core CPU with at least 64Gb of RAM system memory
#Inference with custom asics or GPUs
For ever bigger LLMs needs one of the below but with settings adjusting
*[https://ollama.com/download Ollama single gpu]
*[https://github.com/ggml-org/llama.cpp/releases llama.CPP multi gpus],
*[ VLM multiple gpus],
*[ MiniMax H3] for audio and video but gpu 8Gb+
*[https://github.com/ideogram-oss/ideogram4 ideogram4]
*[https://github.com/calesthio/OpenMontage OpenMontage]
*[https://github.com/jamiepine/voicebox voicebox]
*[ Chatterbox] with neural watermark
*[ Index-TTS]
*[ Qwen3-TTS]
*[ Omnivoice]
*[ faster-qwen3]
*[ dots.tts]
Multimedia
*[ Kimi K3],
Refactor
*[ Devstral-small-2 256K context]
FIM - Fill in the middle
Mistral Codestral-2 for 64Gb+ unified
<pre>
Text to Audio --\
Text to Video --/ Reference Video --> Video and Audio output
</pre>
Agent = Model + Harness
Agentic
Harnesses like [ Claude Code] [ Cursor] [ ] could help models. [https://github.com/deepseek-ai/deepseek-harness Deepseek] etc allows many models to reside inside but also everything is a plugin, including the model adapter, the tool registry, the session log, and the agent loop itself, so each is replaceable from configuration
MoE mixture of experts model
==References==
{{reflist}}
{{status|50%}}
{{BookCat}}
7uxo1uk7ddxu2r6pub9gt0h9akwvu14
PHP Programming/Commenting and Style
0
70276
4672149
3675743
2026-09-24T15:03:21Z
~2026-51585-89
3626759
/* One-line Comment Issues */ clarified wording
4672149
wikitext
text/x-wiki
<noinclude>{{Nav}}</noinclude>
As you write more complex scripts, you'll see that you '''must''' make it clear to yourself and to others exactly what you're doing and why you're doing it.
Comments and "good" naming can help you make clear and understandable scripts because:
* When writing a script that takes longer than a week, by the time you're done, you won't remember what you did when you started, and you will most likely need to know.
* Any script that is commonly used ''will'' need rewriting sooner or later. Rewriting is much easier (and in many cases, made possible) when you write down what you did.
* If you want to show someone your scripts, they should be nice and neat.
==The comments==
Comments are pieces of code that the PHP parser skips. When the parser spots a comment, it simply keeps going until the end of the comment without doing anything.
PHP offers both one line and multi-line comments.
===One-Line Comments===
One-line comments are comments that start where ever you start them and end at the end of the line.
With PHP, you can use both // and # for your one-line comments (# is not commonly used).
Those are used mainly to tell the reader what you're doing the next few lines.
For example:
<syntaxhighlight lang="php">
//Print the variable $message
echo $message;
</syntaxhighlight>
It's important to understand that a one-line comment doesn't have to 'black out' the whole line, it starts where ever you start it.
So it can also be used to tell the reader what a certain variable does:
<syntaxhighlight lang="php">
$message = ""; //This sets the variable $message to an empty string
</syntaxhighlight>
The ''$message = "";'' is executed, but the rest of the line is not.
====One-line Comment Issues====
* One-line comments end by either:
# a newline (an actual newline, not the \n newline mark ) OR:
# a closing PHP tag of the ?> variety
* If a one-line comment is closed by a closing PHP tag, the rest of the line will not be commented. The following will thus print out "2":
<syntaxhighlight lang="php">// echo "1"; ?> echo "2";
</syntaxhighlight>
===Multi-Line Comments===
This kind of comment can go over as many lines as you'd like, and can be used to state what a [[../functions|function]] or a [[../Classes|class]] does, or just to contain comments too big for one line.
To mark the beginning of a multiline comment, use /* and to end it, use */ .
For example:
<syntaxhighlight lang="php">
/* This is a
multiline comment
And it will close
When I tell it to.
*/
</syntaxhighlight>
You can also use this style of comment to skip over part of a line.
For example:
<syntaxhighlight lang="php">
$message = ""/*this would not be executed*/;
</syntaxhighlight>
Although it is recommended that one does not use this coding style, as it can be confusing in some editors.
====Multi-line Comment Issues====
* An unfinished multi-line comment will result in an error, unless it is starting (not closing) within an already existing multi-line comment block (i.e., it is non-greedy but only operates first on a complete open and close set)
** The following will result in an error: <syntaxhighlight lang="php"> /* test */ */</syntaxhighlight>
** The following will not result in an error: <syntaxhighlight lang="php"> /* test /* */</syntaxhighlight>
* Thus, these multi-line comments cannot be nested (the first block up to "ending first comments" will be commented out, but the following */ will not have any opening /*for it). The following will therefore cause an error:
<syntaxhighlight lang="php">
/*
Starting first comments
/*
Starting Nested comments
Ending nested comments
*/
Ending first comments
*/
</syntaxhighlight>
* One can quickly toggle multiple blocks at a time by combining the styles (though this may not work show as such correctly in a text editor)
Original text with nothing commented out (thus printing "block one block two":
<syntaxhighlight lang="php"><?php
//*
print "block ";
print "one ";
// */
print "block ";
print "two";
?></syntaxhighlight>
After taking out a / on the first line, the first block is commented out, printing only "block two":
<syntaxhighlight lang="php"><?php
/*
print "block ";
print "one ";
// */
print "block ";
print "two";
?></syntaxhighlight>
Since the single line // overrides the multi-line /* .. */ two blocks of code can be switched at the same time back and forth into or out of comment mode.
Original text (printing out only "block one")
<syntaxhighlight lang="php"><?php
//*
print "block";
print "one";
/*/
print "block";
print "two";
// */
?></syntaxhighlight>
After taking out a / on the first line, the first block is commented out and the second block is uncommented, printing out only "block two":
<syntaxhighlight lang="php"><?php
/*
print "block";
print "one";
/*/
print "block";
print "two";
// */
?></syntaxhighlight>
* phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html PHPDocumentor uses multiline comments (albeit with the opening immediately followed by an additional asterisk "/**") and other standardized tags within the comment block to create its automatic documentation. See the website for additional instructions. For example:
<syntaxhighlight lang="php"><?php
/**
* This is my new fancy code...
* @author Dr. Who
* @version 1.0
*/
?></syntaxhighlight>
===Issues with Either Single or Multi-line Comments===
When using multi-line comments with the typical "/" as delimiters in a [[../Regular expressions|regular expression]], it is possible there will be a conflict, as an asterisk at the end of the expression (along with the closing "/" delimiter) could create something that would be parsed as a closer of the comments, thus leaving the succeeding "*/" without an opener:
<syntaxhighlight lang="php"><?php
/*
$subject = "Hi Joe";
$matching = preg_match($subject, '/^Hi.*/');
*/
?></syntaxhighlight>
To avoid the problem, one could:
* Use other regular expression delimiters--delimiters that may be less frequently encountered (and thus also in need of escaping) in most circumstances anyhow (e.g., "@" besides for email matching may be less frequent than "/")
* Use an "if" with an impossible conditional that can:
Avoid regular expression conflicts:
<syntaxhighlight lang="php"><?php
if (0) {
$subject = "Hi Joe";
$matching = preg_match($subject, '/^Hi.*/');
}
?></syntaxhighlight>
and also avoid nesting problems:
<syntaxhighlight lang="php"><?php
if (0) {
if (0) {
print "Hi ";
}
print "Bob";
}
?></syntaxhighlight>
One disadvantage of the "if" method, however, is that it will most likely not be recognized by text editors as far as code coloring (though this may be an advantage for debugging, if one wishes to see more clearly what is inside the commented out block while running tests on the code).
== Styles ==
The PHP coding styles are defined in the {{w|PHP Standard Recommendation}}.
=== Naming ===
Naming your variables, functions and classes correctly is very important to understand the program. By convention, it should be done in {{w|camelCase}} and without any abbreviation.
If you define the following variables:
<syntaxhighlight lang="php">
$var1 = "PHP";
$var2 = 15;
</syntaxhighlight>
They won't say much to anyone. But if you do it like this:
<syntaxhighlight lang="php">
$programmingLanguage = "PHP";
$menuItems = 15;
</syntaxhighlight>
It would be much clearer.
But don't go too far. ''$programmingLanguage'', for example is not a good name. It's too long, and will take you a lot of time to type and can affect clarity. A better name may be ''$progLanguage'', because it's shorter but still understandable. A good naming should avoid to write a comment to mark what every variable does.
For instance, these comments are encumbering the script and should be removed:
<syntaxhighlight lang="php">
// The programming language used to write this script
$progLanguage = "PHP";
// The maximum number of items allowed in your personal menu
$maxMenuItems = 15;
</syntaxhighlight>
==== Magic numbers ====
When using numbers in a program it is important that they have a clear meaning. For instance it's better to define ''$menu_items'' early on instead of using ''15'' repeatedly without telling people what it stands for. The major exception to this is the number 1; often programmers have to add or subtract 1 from some other number to avoid off-by-one errors, so 1 can be used without definition.
When you define numbers early on in their usage it also makes it easier to adjust the values later. Again if we have 15 menu items and we refer to them ten times, it will be a lot easier to adjust the program when we add a 16th menu item; just correct the variable definition and you have updated the code in 10 places.
=== Spacing ===
PHP ignores extra spaces and lines. This means, that even though you could write code like this:
<syntaxhighlight lang="php">
if ($var == 1) {echo "Good";} else {echo "Bad";}
</syntaxhighlight>
It's better like this, which is the PSR-2 form<ref>https://www.php-fig.org/psr/psr-2/</ref>:
<syntaxhighlight lang="php">
if ($var == 1) {
echo "Good";
} else {
echo "Bad";
}
</syntaxhighlight>
Some programmers prefer this way of writing:
<syntaxhighlight lang="php">
if ($var == 1)
{
echo "Good";
}
else
{
echo "Bad";
}
</syntaxhighlight>
You should also use blank lines between different portions of your script.
Instead of
<syntaxhighlight lang="php">
$var = 1;
echo "Welcome!<br />";
echo "How are you today?<br />";
echo "The answer: ";
if ($var == 1) {
echo "Good";
} else {
echo "Bad";
}
</syntaxhighlight>
You could write:
<syntaxhighlight lang="php">
$var = 1;
echo "Welcome!<br />";
echo "How are you today?<br />";
echo "The answer: ";
if ($var == 1) {
echo "Good";
} else {
echo "Bad";
}
</syntaxhighlight>
And the reader will understand that your script first declares a variable, then welcomes the user, and then checks the variable.
== The directives ==
It's possible to define certain PHP compiling behaviors by some directives written in the command <code>declare()</code>.<ref>http://php.net/manual/en/control-structures.declare.php</ref> For example:
<syntaxhighlight lang="php">
declare(encoding = "UTF-8");
</syntaxhighlight>
== References ==
{{Reflist}}
{{Nav}}
0jipkuz36oidwb9g2ebm9wwkznby4r8
PHP Programming/Nuts and Bolts
0
71450
4672148
4661749
2026-09-24T14:55:00Z
~2026-51585-89
3626759
/* Web servers */ deleted extra word
4672148
wikitext
text/x-wiki
<noinclude>{{Nav}}</noinclude>
<div align="center"><div style="border: #77FF77 solid 1px; background: #DDFFDD;{{Text default color}};width: 80%; padding: 5px; text-align: center;">This page makes use of [[Template:Code|Color Code Boxes]]. To leave your feedback regarding this new feature, please click [http://en.wikibooks.org/w/index.php?title=Talk:Programming:PHP&action=edit§ion=19 here].</div></div>
==The Examples==
===Example 1 - Basic arithmetic operators===
This example makes use of the five basic '''operators''' used in mathematical expressions. These are the foundation of all mathematical and string operations performed in PHP.
{|style="text-align:center; width:60em"
|-style="font-size:larger"
| <code>+</code> || <code>-</code> || <code>*</code> || <code>/</code> || <code>=</code>
|-
| add || subtract || multiply || divide || assign
|}
The five mathematical operators all function identically to those found in [[Subject:C++ programming language|C++]] and [[Subject:Java programming language|Java]]
{{Code:PHPHTML
|Examine this example. Each mathematical expression to the right of the ''assign'' operator is evaluated, using the normal order of operations. When the expression has been evaluated, the resultant value is assigned to the variable named to the left of the ''assign'' operator.
|<syntaxhighlight lang="php">
<?php
$x = 25;
$y = 10;
$z = $x + $y;
echo $z;
echo "<br />";
$z = $x/$y;
echo $z;
echo "<br />";
$z = $y*$y*$x;
echo $z - 1250;
echo "<br />";
?>
</syntaxhighlight>
|<pre>35<br />2.5<br />1250<br /></pre>
|<pre>
35
2.5
1250
</pre>
|
}}
{{Code:Tip
|'''Note''': If you are not familiar with (X)HTML, you may not know the purpose of this part of the above code:
|<pre>echo "<br />";</pre>
|Its purpose is to insert an HTML "line break" between the results, causing the browser to display each result on a new line when rendering the page. In the absence of this line, the above code would instead print:
<pre>352.51250</pre>
This is of course not the desired result.
}}
There are two code options that perform the opposite of the assign (<code>=</code>) operator. The keyword <code>null</code> should be used for variable nullification, which is actually used <i>with</i> the assign operator (<code>=</code>) in place of a value. If you want to destroy a variable, the <code>unset()</code> language construct is available.
{{Code:Alt
|Examples:
|<syntaxhighlight lang="php">$variable = null;</syntaxhighlight>
|or
|<syntaxhighlight lang="php">unset($variable);</syntaxhighlight>
|
}}
Apart from that, the powers of 10 can be introduced with the letter "e":
<syntaxhighlight lang="php">
print 2e1; // 20
print 4e-3; // 0.004
</syntaxhighlight>
The number formatting is realized by <code>number_format()</code>: number of decimals, decimal separator and thousand separator. Example:
<syntaxhighlight lang="php">
print number_format(3333.333333, 2, ',', ' '); // 3 333,33
</syntaxhighlight>
=== Example 2 - String concatenation ===
This example demonstrates the ''concatenation'' operator (<code>.</code>), which joins together two strings, producing one string consisting of both parts. It is analogous to the plus (<code>+</code>) operator commonly found in C++ [[C++ Programming/Code/IO/Streams/string|string class]] (''see [[C++ Programming/STL|STL]]''), Java, JavaScript, Python implementations.
{{Code:Basic
|The statement
|<syntaxhighlight lang="php">$string = $string . " " . "All the cool kids are doing it.";</syntaxhighlight>
|prepends the current value of <code>$string</code> (that is "PHP is wonderful and great.") to the literal string " All the cool kids are doing it." and assigns this new string to <code>$string</code>.
}}
{{Code:Output
|
|<syntaxhighlight lang="php">
<?php
$string = "PHP is wonderful and great.";
$string = $string . " " . "All the cool kids are doing it.";
echo $string;
?>
</syntaxhighlight>
|<pre>PHP is wonderful and great. All the cool kids are doing it.</pre>
|
}}
As we all know, or for those new to programming will soon find it, programmers are always searching for "tighter code". Simply put, we pride ourselves in doing the most work with the fewest keystrokes. With that in mind, here's a trick that can save those precious keystrokes: concatenate and assign at the same time. It's easy. Let's take the same example as above.
{{Code:Output
|
|<syntaxhighlight lang="php">
<?php
$string = "PHP is wonderful and great.";
$string .= " " . "All the cool kids are doing it.";
echo $string;
?>
</syntaxhighlight>
|<pre>PHP is wonderful and great. All the cool kids are doing it.</pre>
|
}}
You just saved 8 keystrokes with the exact same output. Big deal? Imagine having to do that with 100 lines of template code like I did recently. Yes, it's a big deal. By the way, if you change the implementation without changing the output, that's known as refactoring. Get comfy with that term. You'll be using it a lot. See more examples of compound assignments below.
===Example 3 - Shortcut operators ===
This snippet demonstrates self-referential shortcut operators. The first such operator is the <code>++</code> operator, which increments <code>$x</code> (using the postfix form) by <code>1</code> giving it the value <code>2</code>. After incrementing <code>$x</code>, <code>$y</code> is defined and assigned the value <code>5</code>.
The second shortcut operator is <code>*=</code>, which takes <code>$y</code> and assigns it the value <code>$y*$x</code>, or <code>10</code>.
After initializing <code>$z</code> to <code>180</code>, the subsequent line performs two shortcut operations. Going by order of operations (see manual page below), <code>$y</code> is decremented (using the prefix form) and divided into <code>$z</code>. <code>$z</code> is assigned to the resulting value, <code>20</code>.
{{Code:Output
|
|<syntaxhighlight lang="php">
<?php
$x = 1;
$x++;
echo $x . " ";
$y = 5;
$y *= $x;
echo $y . " ";
$z = 180;
$z /= --$y;
echo $z;
?></syntaxhighlight>
|<pre>2 10 20</pre>
|
}}
{{Code:Tip
|Note: The expanded version of the above code (without the shortcut operators) looks like this:
|<syntaxhighlight lang="php">
<?php
$x = 1;
$x = $x + 1;
echo $x . " ";
$y = 5;
$y = $y*$x;
echo $y . " ";
$z = 180;
$y = $y - 1;
$z = $z/$y;
echo $z;
?></syntaxhighlight>
|The output is the same as seen in the above example.
}}
==New Concepts==
===Operators===
An operator is any symbol used in an expression used to manipulate data. The seven basic PHP operators are:
* <code>=</code> (assignment)
* <code>+</code> (addition)
* <code>-</code> (subtraction)
* <code>*</code> (multiplication)
* <code>/</code> (division)
* <code>%</code> (modulus)
* <code>.</code> (concatenation)
In addition, each of the above operators can be combined with an assignment operation, creating the operators below:
* <code>+=</code> (addition assignment)
* <code>-=</code> (subtraction assignment)
* <code>*=</code> (multiplication assignment)
* <code>/=</code> (division assignment)
* <code>%=</code> (modulus assignment)
* <code>.=</code> (concatenation assignment)
These operators are used when a variable is added, subtracted, multiplied or divided by a second value and subsequently assigned to itself.
{{Code:Alt
|In other words, the statements
|<syntaxhighlight lang="php">$var = $var + 5;</syntaxhighlight>
|and
|<syntaxhighlight lang="php">$var += 5;</syntaxhighlight>
|are equivalent.
}}
There are also increment and decrement operators in PHP.
* <code>++</code> (increment)
* <code>--</code> (decrement)
These are a special case of the addition and subtraction assignment operators.
{{Code:Output
|This code uses the addition assignment operator to increment and decrement a variable.
|<syntaxhighlight lang="php">
$var = 0;
$var += 1;
echo "The incremented value is $var.\n";
$var -= 1;
echo "The decremented value is $var.\n";
</syntaxhighlight>
|<pre>
The incremented value is 1.
The decremented value is 0.
</pre>
|
}}
While this is perfectly legal in PHP, it is somewhat lengthy for an operation as common as this. It can easily be replaced by the increment operator, shortening the statement.
{{Code:Output
|This code snippet uses the increment and decrement operators to increase and decrease a variable's value by one.
|<syntaxhighlight lang="php">
$var = 3;
$var++;
echo "The incremented value is $var.\n";
$var--;
echo "The decremented value is $var.\n";
</syntaxhighlight>
|<pre>
The incremented value is 4.
The decremented value is 3.
</pre>
|Using the increment operator makes your code slightly easier to read and understand.
}}
For a more in-depth overview of PHP's operators, including an explanation of bitwise operators, refer to the manual link below.
====Precedence====
Precedence determines the priority given to certain operators to be performed earlier in a statement. If an operator has higher precedence, it doesn't mean that it is of greater importance; the opposite can often be true.
;Associativity
When multiple operators occur that have the same precedence (whether multiple instances of the same operator or just different operators with the same precedence), it becomes important to consider the associativity: whether right (to left), left (to right), or non-associative.
;Examples where associativity is irrelevant
In certain cases (as in the example below), especially where the same operator is present, the associativity may make no difference to the result.
The following...
<syntaxhighlight lang="php">$a = 5*2*3*4; // Equals 120</syntaxhighlight>
...with its left associativity is equivalent to:
<syntaxhighlight lang="php">$a = (((5*2)*3)*4); // Equals 120</syntaxhighlight>
However, in this case, right associativity would have produced the same result:
<syntaxhighlight lang="php">$a = (5*(2*(3*4))); // Would also equal 120</syntaxhighlight>
;Examples where associativity is relevant in PHP (but not mathematically)
In mathematics, it may be considered irrelevant in which direction a calculation is performed for operators with the same precedence.
For example, the following...
<syntaxhighlight lang="php">$a = 5 + 3 - 2 + 8; // Equals 14</syntaxhighlight>
...is equivalent to this (left associative) statement:
<syntaxhighlight lang="php">$a = (((5 + 3) - 2) + 8); // Equals 14</syntaxhighlight>
And, if this were considered according to human conventions in mathematical calculations, the following equivalent right associative expression would produce the same result:
<syntaxhighlight lang="php">$a = (5 + (3 + (-2 + 8))); // Would also equal 14</syntaxhighlight>
However, since we are dealing with a linear computer language that doesn't know to convert the "<code>2</code>" into a negative number and group it with the "<code>8</code>" before adding it to the "<code>3</code>" (and then the "<code>5</code>"), if PHP were to perform the following expression in a strict right associative manner, the following (mistaken) outcome would occur:
<syntaxhighlight lang="php">$a = (5 + (3 - (2 + 8))); // Would equal -2</syntaxhighlight>
Thus, the associativity is relevant and should be memorized (though it is generally good practice to make one's groupings explicit anyhow—both to avoid mistakes and to improve readability for others looking at the code).
Similar problems occur with multiplication and division. Although with human convention, all adjacent multiplication and division groups would have the multiplication performed at the numerator level and the division at the denominator level, the PHP interpreter does not know to do this, so it is bound to set the left(-to-right) convention when explicit groupings (via parentheses—that have highest precedence) have not been made:
<syntaxhighlight lang="php">$a = 5*4/2*3; // Equals 30</syntaxhighlight>
This is equivalent to the left associative:
<syntaxhighlight lang="php">$a = (((5*4)/2)*3); // Also equals 30</syntaxhighlight>
However, as with the addition/subtraction example above, performing this by right associativity (in a strictly reverse linear fashion) does not produce the same (intended) result:
<syntaxhighlight lang="php">$a = (5*(4/(2*3))); // Equals 3.33333</syntaxhighlight>
==Newline and Other Special Characters==
Both of the below examples make use of the '''newline''' character (<code>\n</code>, <code>\r\n</code> or <code>\r</code>, basing on the OS) to signify the end of the current line and the beginning of a new one.
{{Code:Output
|The newline is used as follows:
|<syntaxhighlight lang="php">echo "PHP is cool,\nawesome,\nand great.";</syntaxhighlight>
|<pre>PHP is cool,
awesome,
and great.</pre>
|
}}
'''Notice:''' the line break occurs in the output wherever the<code>\n</code> occurs in the string in the echo statement. However, a<code>\n</code> does not produce a newline when the HTML document is displayed in a web browser. This is because the PHP engine does not render the script. Instead, the PHP engine outputs HTML code, which is subsequently rendered by the web browser. The linebreak <b><code>\n</code></b> in the PHP script becomes HTML whitespace, which is skipped when the web browser renders it (much like the whitespace in a PHP script is skipped when the PHP engine generates HTML). This does not mean that the<code>\n</code> operator is useless; it can be used to add whitespace to your HTML, so if someone views the HTML generated by your PHP script they'll have an easier time reading it.
In order to insert a line-break that will be rendered by a web browser, you must instead use the <br /> tag to break a line.
'''Notice:''' The newline is <code>\n</code> for Linux/Unix-based systems, <code>\r\n</code> for Windows and <code>\r</code> for Mac's (until 1996, where MkLinux that bases on Linux came to the market).
{{Code:Basic
|Therefore the statement above would be altered like so:
|<syntaxhighlight lang="php">echo 'PHP is cool,<br />awesome<br />and great.';</syntaxhighlight>
|
}}
The function<code>nl2br()</code> is available to automatically convert newlines in a string to <code><br /></code> tags.
{{Code:PHPHTML
|The string must be passed through the function, and then reassigned:
|<syntaxhighlight lang="php">
$string = "This\ntext\nbreaks\nlines.";
$string = nl2br($string);
print $string;
</syntaxhighlight>
|<pre>
This<br />
text<br />
breaks<br />
lines.
</pre>
|<pre>
This
text
breaks
lines.
</pre>
|Additionally, the PHP output (HTML source code) generated by the above example includes linebreaks.
}}
Other special characters include the ASCII<code>NUL</code> (<code>\0</code>) - used for padding binary files, '''tab''' (<code>\t</code>) - used to display a standard tab, and <code>return</code> (<code>\r</code>) - signifying a carriage return. Again, these characters do not change the rendering of your HTML since they add whitespace to the HTML source. In order to have tabs and carriage returns rendered in the final web page, &tab; should be used for tabs and <br /> should be used for a carriage return.
== Input to PHP ==
PHP has a set of functions that retrieve input. If you are using standard input (such as that from a command-line), it is retrieved using the basic input functions:
{{Code:Alt
|Reading from standard input:
| <pre>
$mystring = fgets($stdin);
</pre>
|Or:
| <pre>
$stdin = fopen('php://stdin', 'r'); // opens standard input
$line = fgets($stdin); // reads until user presses ENTER
</pre>
|
}}
=== Web servers ===
On Web servers, information sent to a PHP app may either be a GET operation or a POST operation.
For a GET operation, the parameters are sent through the address bar. Parameters within the bar may be retrieved by using <code>$_GET['parameter']</code>. On a POST operation, submitted input is accessed by <code>$_POST['parameter']</code>.
A more generic array, <code>$_REQUEST['parameter']</code> contains the contents of <code>$_GET</code>, <code>$_POST</code>, and <code>$_COOKIE</code>.
==For More Information==
* [http://www.php.net/manual/en/language.operators.php PHP Manual: Operators]
* [http://www.php.net/manual/en/language.expressions.php PHP Manual: Expressions]
* [http://www.php.net/manual/en/language.types.string.php PHP Manual: Strings]
{{Nav}}
mndhl091xy07hxqgre05f8sul27jz3f
Novial/AIL Verbal Suffixes
0
86713
4672278
3426316
2026-09-25T08:36:23Z
WereSpielChequers
248949
typo
4672278
wikitext
text/x-wiki
{{Simple Page Navigation|
BookName=[[Novial/AIL|Up to AIL contents]]|
CurrentPage=[[Novial/UIL_|<small>Novial version</small>]]|
PrevPage=[[Novial/AIL_|Previous:<br>]]|
NextPage=[[Novial/AIL_|Next:<br>]]}}
==Verbal Suffixes==
As remarked above, it would not do to derive verbs immediately from words denoting living beings; but we take the suffix -IRA from D -ieren, etc. (Dan -ere, R in some cases -irovat'): rego king, regira rule as king, regiro reign; profetira prophesy, interpretira, koketira, rivalira, rebelira vikariira.
To form verbs signifying to make into, transform into, render, we have two international suffixes, both to be used in Novial, namely -ISA (E -ise or -ize, F -iser, I -izzare, D -isieren, etc.) and -IFIKA (E -ify with -ification, F -ifier, I -ificare, D -ifizieren, etc.). In both we may take i as our adjective-ending, and thus consider -sa and -fika the real suffix. Examples: realisa, idealisa, materialisa, modernisa, sterilisa, kristalisa, harmonisa, fanatisa - simplifika, klarifika, verifika, justifika, sanktifika, rektifika, fortifika, falsifika, personifika, identifika.
It is obviously an advantage to be able to utilize all these and other verbs already known all over the world; N therefore adopts both suffixes, but Novialists need not commit to memory which words take one and which the other ending: they are free to choose between them in each particular case, if they do not happen to remember one ready-made form. This simplisa and klarisa are admitted by the side of simplifika and klarifika, and on the other hand, modernifika by the side of modernisa, etc. Note that we have a similar state of things when in E we say Anglicize, but Frenchify.
A distinction may be made between elektrisa charge with electricity (also in a figurative sense: thrill with exciting emotion) and elektrifika electrify a railway, etc.
One thing should be marked here, namely that instead of considering simplifika as derived by means of a suffix, we may treat it as a compound of two autonomous words, the adj simpli and a verb fika. This amounts, in other words, to extracting from all these verbs a new verb fika, which is used with the meaning `to render, make into, make': me simplifika li prosedo = me fika li prosedo simpli; lo fika sen marita felisi he makes (renders) his wife happy, and with an infinitive: lo fika li kavale kurse he makes the horse run (= lo fika ke li kavale kurse). This fika is different from the simple verb fa = do, make, and is restricted to the uses here specified. (Also with a passive infinitive: fika li libre bli binda have the book bound, i.e. make that it is bound = fika li libre bindat, fika li bindere binda li libre.)
The two endings may, of course, be used after comparatives: plubelisa, minbelisa, plubelifika, etc.
Fika with verbs: dormifika lull asleep, put to sleep; it is generally better to dissolve the idea into two verbs.
The suffix -isa is also used in the meaning to provide or supply with, cover with: alkoholisa alcoholize, orisa gild, stonisa cover with stones, macadamize, butrisa (cover with) butter, armisa arm, and in a somewhat looser way organisa, harmonisa, orientisa. Note that E carbonize like N karbonisa has the two meanings `convert into carbon' and `cover with carbon.'
The latter is the only way in which -izar is used in Ido, but the suffix is really much less widely used in national languages in this than in the first-mentioned meaning, corresponding to Ido -igar, Esp -igi. In our system we may consider this use of the suffix -isa as secondary and as a kind of abbreviation of -os-isa: makulisa = makulosisa, fika makulosi.
-AD- taken from such substantives as F promenade, cannonade, fusillade, is used as in Esp and Ido with verbs and verbal sbs for the repeated or continuous act: frapada beat several times (frapado continued beating, frapo a single blow); kantada; parlada go on talking.
-ESKA (from L) with verbs denotes the beginning of an action or state: dormieska fall asleep, videska begin to see, kurseska start running, ameska fall in love, rideska burst out laughing; with adjective roots it means begin to be (become): paleska turn pale, oldeska begin to grow old. Verbal sb in -o: dormiesko, etc.; oldesko beginning senility.
{{BookCat}}
ls4r31apu5d9posp0s8tg2uu1qhn2n5
Template:Discussion Rooms
10
112402
4672206
4626666
2026-09-24T18:39:39Z
Codename Noreste
3441010
Removing the pp-move template.
4672206
wikitext
text/x-wiki
{| class="wikitable" style="width:100%; text-align:center; margin:0px 0px 5px 0px;"
|+ style="padding-bottom:0.5em;" | <span style="float:right;padding-right:.5em;font-size:x-small;">[[File:Replacement filing cabinet.svg|16px|link=Wikibooks:Reading room/Archives]][[Wikibooks:Reading room/Archives|Archives]]</span>[[Wikibooks:Reading room|Wikibooks Discussion Rooms]]
|-
! Discussions !! Assistance !! Requests
|-
| style="vertical-align: top;" | [[Wikibooks:Reading room/General|General]] {{!}} [[Wikibooks:Reading room/Proposals|Proposals]] {{!}} [[Wikibooks:Reading room/Projects|Projects]] {{!}} [[Wikibooks:Featured books/Nominations|Featured books]]
| style="vertical-align: top;" | [[Wikibooks:Reading room/Administrative Assistance|Administrative]] {{!}} [[Wikibooks:Reading room/Technical Assistance|Technical]]
| style="vertical-align: top;" | [[Wikibooks:Requests for deletion|Deletion]] {{!}} [[Wikibooks:Requests for undeletion|Undeletion]] {{!}} [[Wikibooks:Requests for import|Import]] {{!}} [[Wikibooks:Files for upload|Upload]] {{!}} [[Wikibooks:Requests for permissions|Permissions]]
|}<noinclude>[[Category:Wikibooks header templates|{{PAGENAME}}]]{{pp-template}}</noinclude>
ahq8a4un05j8lath37enac68ubtf4jc
Wikibooks:Reading room/General
4
112405
4672188
4671918
2026-09-24T18:05:26Z
Codename Noreste
3441010
/* I'm in the process of creating a separate page describing the removal of admin permissions */ new topic ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4672188
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)
c3y11503or33g87vict5v1p9sp47uje
4672305
4672188
2026-09-25T11:46:30Z
MediaWiki message delivery
1188004
/* Your feedback wanted: Remove (Language link added:) and similar edits from Special:RecentChanges */ new section
4672305
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 -->
7ut3grvmmypaunb1jgvm8cbnwx6hlcg
The Grand Inquisitor/Rebellion
0
120165
4672167
4448651
2026-09-24T15:32:53Z
R. Henrik Nilsson
3395618
commited > committed
4672167
wikitext
text/x-wiki
{{The Grand Inquisitor|Characters|Rebellion (Part 2)}}
== Rebellion ==
In this chapter, Ivan relates several news stories that he has collected over the years. Each story is about a child that has been abused, or murdered, or otherwise made to suffer. Ivan claims that if God allows these children to suffer, Ivan will not accept any invitation into God's kingdom. After this, Alyosha says "That's rebellion!".
== Part 1 ==
{{LeftHalf|<p> "I MUST make one confession" Ivan began. "I could never understand how one can love one's neighbours. It's just one's neighbours, to my mind, that one can't love, though one might love those at a distance. I once read somewhere of John the Merciful, a saint, that when a hungry, frozen beggar came to him, he took him into his bed, held him in his arms, and began breathing into his mouth, which was putrid and loathsome from some awful disease. I am convinced that he did that from 'self-laceration,' from the self-laceration of falsity, for the sake of the charity imposed by duty, as a penance laid on him. For anyone to love a man, he must be hidden, for as soon as he shows his face, love is gone."</p> }}
Ivan here is referring to a passage from the book of Matthew, 22:35:
:''Then one of them, which was a lawyer, asked him a question, tempting him, and saying, Master, which is the great commandment in the law? Jesus said unto him, Thou shalt love the Lord thy God with all thy heart, and with all thy soul, and with all thy mind. This is the first and great commandment. And the second is like unto it, Thou shalt love thy neighbour as thyself. On these two commandments hang all the law and the prophets.''
Jesus claimed that "love thy neighbor" was the second most important law of god. It is by claiming to not be able to follow this law (and providing some justification against it) that Ivan starts this discussion.
{{-}}
{{LeftHalf|<p> "Father Zossima has talked of that more than once," observed Alyosha; "he, too, said that the face of a man often hinders many people not practised in love, from loving him. But yet there's a great deal of love in mankind, and almost Christ-like love. I know that myself, Ivan."</p>}}
Father Zossima is Alyosha's mentor at the monestary, and a well-respected local figure.
{{-}}
== Part 2 ==
{{LeftHalf|<p> "Well, I know nothing of it so far, and can't understand it, and the innumerable mass of mankind are with me there. The question is, whether that's due to men's bad qualities or whether it's inherent in their nature. To my thinking, Christ-like love for men is a miracle impossible on earth. He was God. But we are not gods. Suppose I, for instance, suffer intensely. Another can never know how much I suffer, because he is another and not I. And what's more, a man is rarely ready to admit another's suffering (as though it were a distinction). Why won't he admit it, do you think? Because I smell unpleasant, because I have a stupid face, because I once trod on his foot. Besides, there is suffering and suffering; degrading, humiliating suffering such as humbles me- hunger, for instance- my benefactor will perhaps allow me; but when you come to higher suffering- for an idea, for instance- he will very rarely admit that, perhaps because my face strikes him as not at all what he fancies a man should have who suffers for an idea. And so he deprives me instantly of his favour, and not at all from badness of heart. Beggars, especially genteel beggars, ought never to show themselves, but to ask for charity through the newspapers. One can love one's neighbours in the abstract, or even at a distance, but at close quarters it's almost impossible. If it were as on the stage, in the ballet, where if beggars come in, they wear silken rags and tattered lace and beg for alms dancing gracefully, then one might like looking at them. But even then we should not love them."</p>}}
When Ivan says "Christ-like love" he is referring to unconditional love towards your neightbors and your enemies. Ivan here is claiming that people in general are incapable of this kind of love by their nature, and are therefore incapable of following the laws of Jesus.
{{-}}
{{LeftHalf|"But enough of that. I simply wanted to show you my point of view. I meant to speak of the suffering of mankind generally, but we had better confine ourselves to the sufferings of the children. That reduces the scope of my argument to a tenth of what it would be. Still we'd better keep to the children, though it does weaken my case. But, in the first place, children can be loved even at close quarters, even when they are dirty, even when they are ugly (I fancy, though, children never are ugly). The second reason why I won't speak of grown-up people is that, besides being disgusting and unworthy of love, they have a compensation- they've eaten the apple and know good and evil, and they have become 'like gods.' They go on eating it still. But the children haven't eaten anything, and are so far innocent. "}}
This is an important point in the narrative. Here, Ivan turns the focus of the conversation squarely onto the issue of children, and not on man-kind in general. He does this for two reasons: he says that restricting his conversation to children will limit his argument, but also because people are compassionate towards children.
{{-}}
{{LeftHalf|"Are you fond of children, Alyosha? I know you are, and you will understand why I prefer to speak of them. If they, too, suffer horribly on earth, they must suffer for their fathers' sins, they must be punished for their fathers, who have eaten the apple; but that reasoning is of the other world and is incomprehensible for the heart of man here on earth. The innocent must not suffer for another's sins, and especially such innocents! You may be surprised at me, Alyosha, but I am awfully fond of children, too. And observe, cruel people, the violent, the rapacious, the Karamazovs are sometimes very fond of children. Children while they are quite little- up to seven, for instance- are so remote from grown-up people they are different creatures, as it were, of a different species. I knew a criminal in prison who had, in the course of his career as a burglar, murdered whole families, including several children. But when he was in prison, he had a strange affection for them. He spent all his time at his window, watching the children playing in the prison yard. He trained one little boy to come up to his window and made great friends with him.... You don't know why I am telling you all this, Alyosha? My head aches and I am sad."</p>}}
"the apple" here refers to the fruit from the tree of knowledge of good and evil, from the garden of eden. When Adam and Eve ate the fruit (which later came to be identified with an apple) they committed what is now known as "original sin". Saint Augustine first wrote about the concept of original sin, a fallen state of humanity that is inherited by children from their parents.
Ivan starts by saying that it is "incomprehensible" that children should be made to suffer because of their original sin. If an innocent person should not suffer for the sins of another person, then children should not suffer for the sins of their ancestors.
Ivan goes on to talk about how even the most cruel and evil people still love children. He justifies this by saying that children are so small in stature that they are essentially different creatures from regular adult humans. When Ivan is talking about the affection or love that adults generally feel towards children, he is talking about a patronly love, not a sexual or romantic kind.
{{-}}
== Part 2 ==
{{LeftHalf|<p> "You speak with a strange air," observed Alyosha uneasily, "as though you were not quite yourself."</p>
<p> "By the way, a Bulgarian I met lately in Moscow," Ivan went on, seeming not to hear his brother's words, "told me about the crimes committed by Turks and Circassians in all parts of Bulgaria through fear of a general rising of the Slavs. They burn villages, murder, outrage women and children, they nail their prisoners by the ears to the fences, leave them so till morning, and in the morning they hang them- all sorts of things you can't imagine. People talk sometimes of bestial cruelty, but that's a great injustice and insult to the beasts; a beast can never be so cruel as a man, so artistically cruel. The tiger only tears and gnaws, that's all he can do. He would never think of nailing people by the ears, even if he were able to do it. These Turks took a pleasure in torturing children, -too; cutting the unborn child from the mothers womb, and tossing babies up in the air and catching them on the points of their bayonets before their mothers' eyes. Doing it before the mothers' eyes was what gave zest to the amusement. Here is another scene that I thought very interesting. Imagine a trembling mother with her baby in her arms, a circle of invading Turks around her. They've planned a diversion: they pet the baby, laugh to make it laugh. They succeed, the baby laughs. At that moment a Turk points a pistol four inches from the baby's face. The baby laughs with glee, holds out its little hands to the pistol, and he pulls the trigger in the baby's face and blows out its brains. Artistic, wasn't it? By the way, Turks are particularly fond of sweet things, they say."</p>}}
Here Ivan mentions, almost without explanation stories he has heard of cruelties committed by the Turks against the Bulgarians. He uses these stories to illustrate the fact that men can be much more cruel then any animal can be, thus eliminating a possible model for the devil. If the devil was an invention, he must have been based off other men, and not off some cruel animal.
{{-}}
== Part 3 ==
{{LeftHalf|<p> "Brother, what are you driving at?" asked Alyosha.</p>
<p> "I think if the devil doesn't exist, but man has created him, he has created him in his own image and likeness."</p>
<p> "Just as he did God, then?" observed Alyosha.</p>
<p> "'It's wonderful how you can turn words,' as Polonius says in Hamlet," laughed Ivan. "You turn my words against me. Well, I am glad.
Yours must be a fine God, if man created Him in his image and
likeness. You asked just now what I was driving at. You see, I am fond
of collecting certain facts, and, would you believe, I even copy
anecdotes of a certain sort from newspapers and books, and I've
already got a fine collection."</p>}}
Driving to the heart of the matter, Ivan says that man has created the Devil "in his own image and likeness." Alyosha immediately likens this to the theory that man has created God in a similar fashion.
It's at this point that Ivan first mentions his "collection" of stories. These stories, as we shall see, have a particular focus that has Ivan very troubled.
{{-}}
{{LeftHalf|"The Turks, of course, have gone into it, but they are foreigners. I have specimens from home that are even better than the Turks. You know we prefer beating-rods and scourges- that's our national institution. Nailing ears is unthinkable for us, for we are, after all, Europeans. But the rod and the scourge we have always with us and they cannot be taken from us. Abroad now they scarcely do any beating. Manners are more humane, or laws have been passed, so that they don't dare to flog men now. But they make up for it in another way just as national as ours. And so national that it would be practically impossible among us, though I believe we are being inoculated with it, since the religious movement began in our aristocracy."}}
This passage is a little bit obscure, and it is difficult to understand all of Ivan's context-sensitive references. However, the point of this passage is quite clear: every society has manners of harming other people. Also, the ways that one society hurt people may seem to be barbaric to other societies, but all the methods are essentially equivalent.
{{-}}
{{LeftHalf|"I have a charming pamphlet, translated from the French, describing how, quite recently, five years ago, a murderer, Richard, was executed- a young man, I believe, of three and twenty, who repented and was converted to the Christian faith at the very scaffold. This Richard was an illegitimate child who was given as a child of six by his parents to some shepherds on the Swiss mountains. They brought him up to work for them. He grew up like a little wild beast among them. The shepherds taught him nothing, and scarcely fed or clothed him, but sent him out at seven to herd the flock in cold and wet, and no one hesitated or scrupled to treat him so. Quite the contrary, they thought they had every right, for Richard had been given to them as a chattel, and they did not even see the necessity of feeding him. Richard himself describes how in those years, like the Prodigal Son in the Gospel, he longed to eat of the mash given to the pigs, which were fattened for sale. But they wouldn't even give that, and beat him when he stole from the pigs. And that was how he spent all his childhood and his youth, till he grew up and was strong enough to go away and be a thief. The savage began to earn his living as a day labourer in Geneva. He drank what he earned, he lived like a brute, and finished by killing and robbing an old man. He was caught, tried, and condemned to death. They are not sentimentalists there. And in prison he was immediately surrounded by pastors, members of Christian brotherhoods, philanthropic ladies, and the like. They taught him to read and write in prison, and expounded the Gospel to him. They exhorted him, worked upon him, drummed at him incessantly, till at last he solemnly confessed his crime. He was converted. He wrote to the court himself that he was a monster, but that in the end God had vouchsafed him light and shown grace. All Geneva was in excitement about him- all philanthropic and religious Geneva. All the aristocratic and well-bred society of the town rushed to the prison, kissed Richard and embraced him; 'You are our brother, you have found grace.' And Richard does nothing but weep with emotion, 'Yes, I've found grace! All my youth and childhood I was glad of pigs' food, but now even I have found grace. I am dying in the Lord.' 'Yes, Richard, die in the Lord; you have shed blood and must die. Though it's not your fault that you knew not the Lord, when you coveted the pigs' food and were beaten for stealing it (which was very wrong of you, for stealing is forbidden); but you've shed blood and you must die.'And on the last day, Richard, perfectly limp, did nothing but cry and repeat every minute: 'This is my happiest day. I am going to the Lord.' 'Yes,' cry the pastors and the judges and philanthropic ladies. 'This is the happiest day of your life, for you are going to the Lord!' They all walk or drive to the scaffold in procession behind the prison van. At the scaffold they call to Richard: 'Die, brother, die in the Lord, for even thou hast found grace!' And so, covered with his brothers' kisses, Richard is dragged on to the scaffold, and led to the guillotine. And they chopped off his head in brotherly fashion, because he had found grace. Yes, that's characteristic. That pamphlet is translated into Russian by some Russian philanthropists of aristocratic rank and evangelical aspirations, and has been distributed gratis for the enlightenment of the people. The case of Richard is interesting because it's national. Though to us it's absurd to cut off a man's
head, because he has become our brother and has found grace, yet we have our own speciality, which is all but worse."}}
Here Ivan recounts the story of a man named Richard, who was raised as an animal, and grew up to become a thief and a murderer. In prison, awaiting death, Richard is converted into a christian and educated in reading and writing. On the day of his execution, Richard is actually celebrating his own death as a holy act.
{{-}}
{{LeftHalf|"Our historical pastime is the direct satisfaction of inflicting pain. There are lines in Nekrassov describing how a peasant lashes a horse on the eyes, 'on its meek eyes,' everyone must have seen it. It's peculiarly Russian. He describes how a feeble little nag has foundered under too heavy a load and cannot move. The peasant beats it, beats it savagely, beats it at last not knowing what he is doing in the intoxication of cruelty, thrashes it mercilessly over and over again. 'However weak you are, you must pull, if you die for it.' The nag strains, and then he begins lashing the poor defenceless creature on its weeping, on its 'meek eyes.' The frantic beast tugs and draws the load, trembling all over, gasping for breath, moving sideways, with a sort of unnatural spasmodic action- it's awful in Nekrassov. But that only a horse, and God has horses to be beaten. So the Tatars have taught us, and they left us the knout as a remembrance of it."}}
Here, Ivan discusses the story of a master and a horse. The horse is tired from pulling "too heavy a load", and stops pulling. The master, in a rage, lashes the horse and beats it repeatedly and for some time. Finally, having no untouched skin left to beat, the master lashes the horse on it's eyes. This finally motivated the horse to pull the load.
Ivan uses this story as an example that people experience satisfaction from inflicting pain, thus reinforcing his thesis that the Devil was created in the image of evil men.
{{-}}
{{LeftHalf|"But men, too, can be beaten. A well-educated, cultured gentleman and his wife beat their own child with a birch-rod, a girl of seven. I have an exact account of it. The papa was glad that the birch was covered with twigs. 'It stings more,' said he, and so he began stinging his daughter. I know for a fact there are people who at every blow are worked up to sensuality, to literal sensuality, which increases progressively at every blow they inflict. They beat for a minute, for five minutes, for ten minutes, more often and more savagely. The child screams. At last the child cannot scream, it gasps, 'Daddy daddy!' By some diabolical unseemly chance the case was brought into court. A counsel is engaged. The Russian people have long called a barrister 'a conscience for hire.' The counsel protests in his client's defence. 'It's such a simple thing,' he says, 'an everyday domestic event. A father corrects his child. To our shame be it said, it is brought into court.' The jury, convinced by him, give a favourable verdict. The public roars with delight that the torturer is acquitted. Ah, pity I wasn't there! I would have proposed to raise a subscription in his honour! Charming pictures."</p>}}
In the same vein of the previous story, Ivan recounts now the story of a man and his wife beat their seven-year-old daughter with a birch rod. The beating lasted for more than 10 minutes, and grew harder and more savage as time went on.
When brought to court, instead of being punished for abusing their daughter, the couple is praised for properly correcting their child. As we shall see later, Ivan has a special place in his heart for abused children, and the stories he relates later focus more on them.
94o3j7el3ton9yyrys9khf7tldsl6x1
Wikibooks:Reading room/Administrative Assistance
4
140081
4672139
4672114
2026-09-24T12:23:10Z
MathXplore
3097823
Reporting Seobavswellness12390
4672139
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}}
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s
|algo = old(14d)
|counter = 1
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
{{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}}
{{Clear}}
Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup.
You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention).
For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]].
{{clear}}
[[Category:Reading room]]
== Thenaoriudaipur reported by MathXplore ==
* {{userlinks|Thenaoriudaipur}}
Link spam, [[Special:AbuseLog/315473]] <!-- USERREPORTED:/Thenaoriudaipur/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:47, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== Networkkingss reported by MathXplore ==
* {{userlinks|Networkkingss}}
Link spam, [[Special:AbuseLog/315458]] <!-- USERREPORTED:/Networkkingss/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:50, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== ~2026-49226-92 reported by MathXplore ==
* {{anonlinks|~2026-49226-92}}
Vandalism <!-- USERREPORTED:/~2026-49226-92/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:57, 10 September 2026 (UTC)
: {{done}}. I also nuked all pages created by this user and their connected temporary accounts based on their associated IP(s). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:48, 10 September 2026 (UTC)
== ~2026-49632-08 reported by MathXplore ==
* {{anonlinks|~2026-49632-08}}
Spam <!-- USERREPORTED:/~2026-49632-08/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:08, 13 September 2026 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 06:39, 13 September 2026 (UTC)
== Happyherbal26 reported by MathXplore ==
* {{userlinks|Happyherbal26}}
Link spam, [[Special:AbuseLog/315518]] <!-- USERREPORTED:/Happyherbal26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Shahadotdl reported by MathXplore ==
* {{userlinks|Shahadotdl}}
Link spam, [[Special:AbuseLog/315516]] <!-- USERREPORTED:/Shahadotdl/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Sonarbanglahc reported by MathXplore ==
* {{userlinks|Sonarbanglahc}}
Spam <!-- USERREPORTED:/Sonarbanglahc/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:41, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:47, 15 September 2026 (UTC)
== Mehedii1234 reported by MathXplore ==
* {{userlinks|Mehedii1234}}
Spam <!-- USERREPORTED:/Mehedii1234/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:42, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 15 September 2026 (UTC)
== BhardwajGardening reported by MathXplore ==
* {{userlinks|BhardwajGardening}}
Link spam, [[Special:AbuseLog/315583]] <!-- USERREPORTED:/BhardwajGardening/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:02, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:36, 17 September 2026 (UTC)
== Manusheikh reported by MathXplore ==
* {{userlinks|Manusheikh}}
Link spam, [[Special:AbuseLog/315575]] <!-- USERREPORTED:/Manusheikh/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:03, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Wrankerseo reported by MathXplore ==
* {{userlinks|Wrankerseo}}
Link spam, [[Special:AbuseLog/315564]], [[Special:AbuseLog/315567]], [[Special:AbuseLog/315563]] <!-- USERREPORTED:/Wrankerseo/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:05, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Mscdubai reported by MathXplore ==
* {{userlinks|Mscdubai}}
Spam <!-- USERREPORTED:/Mscdubai/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:28, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== Hasbaticom reported by MathXplore ==
* {{userlinks|Hasbaticom}}
Spam <!-- USERREPORTED:/Hasbaticom/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:40, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== [[User:AAASecurityGuard]] reported by TechVindicator ==
Spam [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 10:03, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== AAASecurityGuard reported by MathXplore ==
* {{userlinks|AAASecurityGuard}}
Spam <!-- USERREPORTED:/AAASecurityGuard/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:20, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== [[Wikibooks:AI For Beginners]] ==
'''Reason for reporting:''' Wrong title, renaming needed ([[AI For Beginners]]). [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:20, 22 September 2026 (UTC)
:{{done|Moved to the correct namespace}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:17, 22 September 2026 (UTC)
::{{done|Ultimately deleted}} per [[WB:AI]]. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:51, 22 September 2026 (UTC)
== CU request ==
{{ping|MarcGarver|Xania}} According to [[Special:Diff/4671813]], User:Sisterian ([[Special:Contributions/Sisterian]]) has been using genAI/LLMs for their contributions. User:Pamela Talemwa ([[Special:Contributions/Pamela_Talemwa]]) & User:Sisterian overlap at [[A Young Reader's Guide to a Healthy Environment]] ([https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&diff=prev&oldid=4671755&diffmode=source], [https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&oldid=4665328]). What do our admins and CUs think about this? [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:11, 23 September 2026 (UTC)
:[[User:Sisterian]] has also created a page in another person's userspace, [[User:Samah2025/sandbox/A Young Girl’s Guide to Menstrual Health and Wellbeing]], so I will add [[User:Samah2025]] to the list. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:45, 23 September 2026 (UTC)
:Hello, @[[User:MarcGarver|MarcGarver]], @[[User:Xania|Xania]], @[[User:TechVindicator|TechVindicator]]. I have been supporting a number of trainees with Wikibooks editing and its looks like a lot more was done outside of the guidance I provided. I am going to look into those contributions and rectify the underlying issues. Thank you. [[User:Sisterian|Sisterian]] ([[User talk:Sisterian|discuss]] • [[Special:Contributions/Sisterian|contribs]]) 08:52, 23 September 2026 (UTC)
: OK --[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 12:13, 23 September 2026 (UTC)
== DhaanishChennai123 reported by TechVindicator ==
* {{userlinks|DhaanishChennai123}}
Spam <!-- USERREPORTED:/DhaanishChennai123/ --> [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 11:05, 24 September 2026 (UTC)
== Seobavswellness12390 reported by MathXplore ==
* {{userlinks|Seobavswellness12390}}
Spam <!-- USERREPORTED:/Seobavswellness12390/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:23, 24 September 2026 (UTC)
flt7c1w7zlu3u1b8n2dgu2qg79hk83p
4672198
4672139
2026-09-24T18:17:28Z
Codename Noreste
3441010
/* DhaanishChennai123 reported by TechVindicator */ reply: {{done}} by Kittycataclysm. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4672198
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}}
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s
|algo = old(14d)
|counter = 1
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
{{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}}
{{Clear}}
Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup.
You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention).
For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]].
{{clear}}
[[Category:Reading room]]
== Thenaoriudaipur reported by MathXplore ==
* {{userlinks|Thenaoriudaipur}}
Link spam, [[Special:AbuseLog/315473]] <!-- USERREPORTED:/Thenaoriudaipur/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:47, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== Networkkingss reported by MathXplore ==
* {{userlinks|Networkkingss}}
Link spam, [[Special:AbuseLog/315458]] <!-- USERREPORTED:/Networkkingss/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:50, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== ~2026-49226-92 reported by MathXplore ==
* {{anonlinks|~2026-49226-92}}
Vandalism <!-- USERREPORTED:/~2026-49226-92/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:57, 10 September 2026 (UTC)
: {{done}}. I also nuked all pages created by this user and their connected temporary accounts based on their associated IP(s). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:48, 10 September 2026 (UTC)
== ~2026-49632-08 reported by MathXplore ==
* {{anonlinks|~2026-49632-08}}
Spam <!-- USERREPORTED:/~2026-49632-08/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:08, 13 September 2026 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 06:39, 13 September 2026 (UTC)
== Happyherbal26 reported by MathXplore ==
* {{userlinks|Happyherbal26}}
Link spam, [[Special:AbuseLog/315518]] <!-- USERREPORTED:/Happyherbal26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Shahadotdl reported by MathXplore ==
* {{userlinks|Shahadotdl}}
Link spam, [[Special:AbuseLog/315516]] <!-- USERREPORTED:/Shahadotdl/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Sonarbanglahc reported by MathXplore ==
* {{userlinks|Sonarbanglahc}}
Spam <!-- USERREPORTED:/Sonarbanglahc/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:41, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:47, 15 September 2026 (UTC)
== Mehedii1234 reported by MathXplore ==
* {{userlinks|Mehedii1234}}
Spam <!-- USERREPORTED:/Mehedii1234/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:42, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 15 September 2026 (UTC)
== BhardwajGardening reported by MathXplore ==
* {{userlinks|BhardwajGardening}}
Link spam, [[Special:AbuseLog/315583]] <!-- USERREPORTED:/BhardwajGardening/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:02, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:36, 17 September 2026 (UTC)
== Manusheikh reported by MathXplore ==
* {{userlinks|Manusheikh}}
Link spam, [[Special:AbuseLog/315575]] <!-- USERREPORTED:/Manusheikh/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:03, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Wrankerseo reported by MathXplore ==
* {{userlinks|Wrankerseo}}
Link spam, [[Special:AbuseLog/315564]], [[Special:AbuseLog/315567]], [[Special:AbuseLog/315563]] <!-- USERREPORTED:/Wrankerseo/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:05, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Mscdubai reported by MathXplore ==
* {{userlinks|Mscdubai}}
Spam <!-- USERREPORTED:/Mscdubai/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:28, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== Hasbaticom reported by MathXplore ==
* {{userlinks|Hasbaticom}}
Spam <!-- USERREPORTED:/Hasbaticom/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:40, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== [[User:AAASecurityGuard]] reported by TechVindicator ==
Spam [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 10:03, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== AAASecurityGuard reported by MathXplore ==
* {{userlinks|AAASecurityGuard}}
Spam <!-- USERREPORTED:/AAASecurityGuard/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:20, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== [[Wikibooks:AI For Beginners]] ==
'''Reason for reporting:''' Wrong title, renaming needed ([[AI For Beginners]]). [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:20, 22 September 2026 (UTC)
:{{done|Moved to the correct namespace}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:17, 22 September 2026 (UTC)
::{{done|Ultimately deleted}} per [[WB:AI]]. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:51, 22 September 2026 (UTC)
== CU request ==
{{ping|MarcGarver|Xania}} According to [[Special:Diff/4671813]], User:Sisterian ([[Special:Contributions/Sisterian]]) has been using genAI/LLMs for their contributions. User:Pamela Talemwa ([[Special:Contributions/Pamela_Talemwa]]) & User:Sisterian overlap at [[A Young Reader's Guide to a Healthy Environment]] ([https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&diff=prev&oldid=4671755&diffmode=source], [https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&oldid=4665328]). What do our admins and CUs think about this? [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:11, 23 September 2026 (UTC)
:[[User:Sisterian]] has also created a page in another person's userspace, [[User:Samah2025/sandbox/A Young Girl’s Guide to Menstrual Health and Wellbeing]], so I will add [[User:Samah2025]] to the list. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:45, 23 September 2026 (UTC)
:Hello, @[[User:MarcGarver|MarcGarver]], @[[User:Xania|Xania]], @[[User:TechVindicator|TechVindicator]]. I have been supporting a number of trainees with Wikibooks editing and its looks like a lot more was done outside of the guidance I provided. I am going to look into those contributions and rectify the underlying issues. Thank you. [[User:Sisterian|Sisterian]] ([[User talk:Sisterian|discuss]] • [[Special:Contributions/Sisterian|contribs]]) 08:52, 23 September 2026 (UTC)
: OK --[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 12:13, 23 September 2026 (UTC)
== DhaanishChennai123 reported by TechVindicator ==
* {{userlinks|DhaanishChennai123}}
Spam <!-- USERREPORTED:/DhaanishChennai123/ --> [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 11:05, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
== Seobavswellness12390 reported by MathXplore ==
* {{userlinks|Seobavswellness12390}}
Spam <!-- USERREPORTED:/Seobavswellness12390/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:23, 24 September 2026 (UTC)
hp807k0os2cab8ouxkybnwg2d1z4tf8
4672199
4672198
2026-09-24T18:17:43Z
Codename Noreste
3441010
/* Seobavswellness12390 reported by MathXplore */ reply: {{done}} by Kittycataclysm. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4672199
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}}
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s
|algo = old(14d)
|counter = 1
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
{{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}}
{{Clear}}
Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup.
You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention).
For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]].
{{clear}}
[[Category:Reading room]]
== Thenaoriudaipur reported by MathXplore ==
* {{userlinks|Thenaoriudaipur}}
Link spam, [[Special:AbuseLog/315473]] <!-- USERREPORTED:/Thenaoriudaipur/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:47, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== Networkkingss reported by MathXplore ==
* {{userlinks|Networkkingss}}
Link spam, [[Special:AbuseLog/315458]] <!-- USERREPORTED:/Networkkingss/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:50, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== ~2026-49226-92 reported by MathXplore ==
* {{anonlinks|~2026-49226-92}}
Vandalism <!-- USERREPORTED:/~2026-49226-92/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:57, 10 September 2026 (UTC)
: {{done}}. I also nuked all pages created by this user and their connected temporary accounts based on their associated IP(s). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:48, 10 September 2026 (UTC)
== ~2026-49632-08 reported by MathXplore ==
* {{anonlinks|~2026-49632-08}}
Spam <!-- USERREPORTED:/~2026-49632-08/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:08, 13 September 2026 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 06:39, 13 September 2026 (UTC)
== Happyherbal26 reported by MathXplore ==
* {{userlinks|Happyherbal26}}
Link spam, [[Special:AbuseLog/315518]] <!-- USERREPORTED:/Happyherbal26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Shahadotdl reported by MathXplore ==
* {{userlinks|Shahadotdl}}
Link spam, [[Special:AbuseLog/315516]] <!-- USERREPORTED:/Shahadotdl/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Sonarbanglahc reported by MathXplore ==
* {{userlinks|Sonarbanglahc}}
Spam <!-- USERREPORTED:/Sonarbanglahc/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:41, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:47, 15 September 2026 (UTC)
== Mehedii1234 reported by MathXplore ==
* {{userlinks|Mehedii1234}}
Spam <!-- USERREPORTED:/Mehedii1234/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:42, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 15 September 2026 (UTC)
== BhardwajGardening reported by MathXplore ==
* {{userlinks|BhardwajGardening}}
Link spam, [[Special:AbuseLog/315583]] <!-- USERREPORTED:/BhardwajGardening/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:02, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:36, 17 September 2026 (UTC)
== Manusheikh reported by MathXplore ==
* {{userlinks|Manusheikh}}
Link spam, [[Special:AbuseLog/315575]] <!-- USERREPORTED:/Manusheikh/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:03, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Wrankerseo reported by MathXplore ==
* {{userlinks|Wrankerseo}}
Link spam, [[Special:AbuseLog/315564]], [[Special:AbuseLog/315567]], [[Special:AbuseLog/315563]] <!-- USERREPORTED:/Wrankerseo/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:05, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Mscdubai reported by MathXplore ==
* {{userlinks|Mscdubai}}
Spam <!-- USERREPORTED:/Mscdubai/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:28, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== Hasbaticom reported by MathXplore ==
* {{userlinks|Hasbaticom}}
Spam <!-- USERREPORTED:/Hasbaticom/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:40, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== [[User:AAASecurityGuard]] reported by TechVindicator ==
Spam [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 10:03, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== AAASecurityGuard reported by MathXplore ==
* {{userlinks|AAASecurityGuard}}
Spam <!-- USERREPORTED:/AAASecurityGuard/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:20, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== [[Wikibooks:AI For Beginners]] ==
'''Reason for reporting:''' Wrong title, renaming needed ([[AI For Beginners]]). [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:20, 22 September 2026 (UTC)
:{{done|Moved to the correct namespace}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:17, 22 September 2026 (UTC)
::{{done|Ultimately deleted}} per [[WB:AI]]. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:51, 22 September 2026 (UTC)
== CU request ==
{{ping|MarcGarver|Xania}} According to [[Special:Diff/4671813]], User:Sisterian ([[Special:Contributions/Sisterian]]) has been using genAI/LLMs for their contributions. User:Pamela Talemwa ([[Special:Contributions/Pamela_Talemwa]]) & User:Sisterian overlap at [[A Young Reader's Guide to a Healthy Environment]] ([https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&diff=prev&oldid=4671755&diffmode=source], [https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&oldid=4665328]). What do our admins and CUs think about this? [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:11, 23 September 2026 (UTC)
:[[User:Sisterian]] has also created a page in another person's userspace, [[User:Samah2025/sandbox/A Young Girl’s Guide to Menstrual Health and Wellbeing]], so I will add [[User:Samah2025]] to the list. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:45, 23 September 2026 (UTC)
:Hello, @[[User:MarcGarver|MarcGarver]], @[[User:Xania|Xania]], @[[User:TechVindicator|TechVindicator]]. I have been supporting a number of trainees with Wikibooks editing and its looks like a lot more was done outside of the guidance I provided. I am going to look into those contributions and rectify the underlying issues. Thank you. [[User:Sisterian|Sisterian]] ([[User talk:Sisterian|discuss]] • [[Special:Contributions/Sisterian|contribs]]) 08:52, 23 September 2026 (UTC)
: OK --[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 12:13, 23 September 2026 (UTC)
== DhaanishChennai123 reported by TechVindicator ==
* {{userlinks|DhaanishChennai123}}
Spam <!-- USERREPORTED:/DhaanishChennai123/ --> [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 11:05, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
== Seobavswellness12390 reported by MathXplore ==
* {{userlinks|Seobavswellness12390}}
Spam <!-- USERREPORTED:/Seobavswellness12390/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:23, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
numav8xu37t2zbicjo0dhayjr9u47kh
4672205
4672199
2026-09-24T18:36:14Z
Codename Noreste
3441010
Replacing with a header.
4672205
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
}}
== Thenaoriudaipur reported by MathXplore ==
* {{userlinks|Thenaoriudaipur}}
Link spam, [[Special:AbuseLog/315473]] <!-- USERREPORTED:/Thenaoriudaipur/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:47, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== Networkkingss reported by MathXplore ==
* {{userlinks|Networkkingss}}
Link spam, [[Special:AbuseLog/315458]] <!-- USERREPORTED:/Networkkingss/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:50, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== ~2026-49226-92 reported by MathXplore ==
* {{anonlinks|~2026-49226-92}}
Vandalism <!-- USERREPORTED:/~2026-49226-92/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:57, 10 September 2026 (UTC)
: {{done}}. I also nuked all pages created by this user and their connected temporary accounts based on their associated IP(s). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:48, 10 September 2026 (UTC)
== ~2026-49632-08 reported by MathXplore ==
* {{anonlinks|~2026-49632-08}}
Spam <!-- USERREPORTED:/~2026-49632-08/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:08, 13 September 2026 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 06:39, 13 September 2026 (UTC)
== Happyherbal26 reported by MathXplore ==
* {{userlinks|Happyherbal26}}
Link spam, [[Special:AbuseLog/315518]] <!-- USERREPORTED:/Happyherbal26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Shahadotdl reported by MathXplore ==
* {{userlinks|Shahadotdl}}
Link spam, [[Special:AbuseLog/315516]] <!-- USERREPORTED:/Shahadotdl/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Sonarbanglahc reported by MathXplore ==
* {{userlinks|Sonarbanglahc}}
Spam <!-- USERREPORTED:/Sonarbanglahc/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:41, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:47, 15 September 2026 (UTC)
== Mehedii1234 reported by MathXplore ==
* {{userlinks|Mehedii1234}}
Spam <!-- USERREPORTED:/Mehedii1234/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:42, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 15 September 2026 (UTC)
== BhardwajGardening reported by MathXplore ==
* {{userlinks|BhardwajGardening}}
Link spam, [[Special:AbuseLog/315583]] <!-- USERREPORTED:/BhardwajGardening/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:02, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:36, 17 September 2026 (UTC)
== Manusheikh reported by MathXplore ==
* {{userlinks|Manusheikh}}
Link spam, [[Special:AbuseLog/315575]] <!-- USERREPORTED:/Manusheikh/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:03, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Wrankerseo reported by MathXplore ==
* {{userlinks|Wrankerseo}}
Link spam, [[Special:AbuseLog/315564]], [[Special:AbuseLog/315567]], [[Special:AbuseLog/315563]] <!-- USERREPORTED:/Wrankerseo/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:05, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Mscdubai reported by MathXplore ==
* {{userlinks|Mscdubai}}
Spam <!-- USERREPORTED:/Mscdubai/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:28, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== Hasbaticom reported by MathXplore ==
* {{userlinks|Hasbaticom}}
Spam <!-- USERREPORTED:/Hasbaticom/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:40, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== [[User:AAASecurityGuard]] reported by TechVindicator ==
Spam [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 10:03, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== AAASecurityGuard reported by MathXplore ==
* {{userlinks|AAASecurityGuard}}
Spam <!-- USERREPORTED:/AAASecurityGuard/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:20, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== [[Wikibooks:AI For Beginners]] ==
'''Reason for reporting:''' Wrong title, renaming needed ([[AI For Beginners]]). [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:20, 22 September 2026 (UTC)
:{{done|Moved to the correct namespace}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:17, 22 September 2026 (UTC)
::{{done|Ultimately deleted}} per [[WB:AI]]. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:51, 22 September 2026 (UTC)
== CU request ==
{{ping|MarcGarver|Xania}} According to [[Special:Diff/4671813]], User:Sisterian ([[Special:Contributions/Sisterian]]) has been using genAI/LLMs for their contributions. User:Pamela Talemwa ([[Special:Contributions/Pamela_Talemwa]]) & User:Sisterian overlap at [[A Young Reader's Guide to a Healthy Environment]] ([https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&diff=prev&oldid=4671755&diffmode=source], [https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&oldid=4665328]). What do our admins and CUs think about this? [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:11, 23 September 2026 (UTC)
:[[User:Sisterian]] has also created a page in another person's userspace, [[User:Samah2025/sandbox/A Young Girl’s Guide to Menstrual Health and Wellbeing]], so I will add [[User:Samah2025]] to the list. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:45, 23 September 2026 (UTC)
:Hello, @[[User:MarcGarver|MarcGarver]], @[[User:Xania|Xania]], @[[User:TechVindicator|TechVindicator]]. I have been supporting a number of trainees with Wikibooks editing and its looks like a lot more was done outside of the guidance I provided. I am going to look into those contributions and rectify the underlying issues. Thank you. [[User:Sisterian|Sisterian]] ([[User talk:Sisterian|discuss]] • [[Special:Contributions/Sisterian|contribs]]) 08:52, 23 September 2026 (UTC)
: OK --[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 12:13, 23 September 2026 (UTC)
== DhaanishChennai123 reported by TechVindicator ==
* {{userlinks|DhaanishChennai123}}
Spam <!-- USERREPORTED:/DhaanishChennai123/ --> [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 11:05, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
== Seobavswellness12390 reported by MathXplore ==
* {{userlinks|Seobavswellness12390}}
Spam <!-- USERREPORTED:/Seobavswellness12390/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:23, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
7b5ybkiytiy4wk3qvqa9wyintpuvfh9
4672275
4672205
2026-09-25T08:10:27Z
ArchiverBot
1227662
Bot: Archiving 3 threads (older than 14 days) to [[Wikibooks:Reading room/Administrative Assistance/Archives/2026/September]]
4672275
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
}}
== ~2026-49632-08 reported by MathXplore ==
* {{anonlinks|~2026-49632-08}}
Spam <!-- USERREPORTED:/~2026-49632-08/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:08, 13 September 2026 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 06:39, 13 September 2026 (UTC)
== Happyherbal26 reported by MathXplore ==
* {{userlinks|Happyherbal26}}
Link spam, [[Special:AbuseLog/315518]] <!-- USERREPORTED:/Happyherbal26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Shahadotdl reported by MathXplore ==
* {{userlinks|Shahadotdl}}
Link spam, [[Special:AbuseLog/315516]] <!-- USERREPORTED:/Shahadotdl/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[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> 14:02, 14 September 2026 (UTC)
== Sonarbanglahc reported by MathXplore ==
* {{userlinks|Sonarbanglahc}}
Spam <!-- USERREPORTED:/Sonarbanglahc/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:41, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:47, 15 September 2026 (UTC)
== Mehedii1234 reported by MathXplore ==
* {{userlinks|Mehedii1234}}
Spam <!-- USERREPORTED:/Mehedii1234/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:42, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 15 September 2026 (UTC)
== BhardwajGardening reported by MathXplore ==
* {{userlinks|BhardwajGardening}}
Link spam, [[Special:AbuseLog/315583]] <!-- USERREPORTED:/BhardwajGardening/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:02, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:36, 17 September 2026 (UTC)
== Manusheikh reported by MathXplore ==
* {{userlinks|Manusheikh}}
Link spam, [[Special:AbuseLog/315575]] <!-- USERREPORTED:/Manusheikh/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:03, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Wrankerseo reported by MathXplore ==
* {{userlinks|Wrankerseo}}
Link spam, [[Special:AbuseLog/315564]], [[Special:AbuseLog/315567]], [[Special:AbuseLog/315563]] <!-- USERREPORTED:/Wrankerseo/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:05, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Mscdubai reported by MathXplore ==
* {{userlinks|Mscdubai}}
Spam <!-- USERREPORTED:/Mscdubai/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:28, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== Hasbaticom reported by MathXplore ==
* {{userlinks|Hasbaticom}}
Spam <!-- USERREPORTED:/Hasbaticom/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:40, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== [[User:AAASecurityGuard]] reported by TechVindicator ==
Spam [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 10:03, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== AAASecurityGuard reported by MathXplore ==
* {{userlinks|AAASecurityGuard}}
Spam <!-- USERREPORTED:/AAASecurityGuard/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:20, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== [[Wikibooks:AI For Beginners]] ==
'''Reason for reporting:''' Wrong title, renaming needed ([[AI For Beginners]]). [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:20, 22 September 2026 (UTC)
:{{done|Moved to the correct namespace}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:17, 22 September 2026 (UTC)
::{{done|Ultimately deleted}} per [[WB:AI]]. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:51, 22 September 2026 (UTC)
== CU request ==
{{ping|MarcGarver|Xania}} According to [[Special:Diff/4671813]], User:Sisterian ([[Special:Contributions/Sisterian]]) has been using genAI/LLMs for their contributions. User:Pamela Talemwa ([[Special:Contributions/Pamela_Talemwa]]) & User:Sisterian overlap at [[A Young Reader's Guide to a Healthy Environment]] ([https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&diff=prev&oldid=4671755&diffmode=source], [https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&oldid=4665328]). What do our admins and CUs think about this? [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:11, 23 September 2026 (UTC)
:[[User:Sisterian]] has also created a page in another person's userspace, [[User:Samah2025/sandbox/A Young Girl’s Guide to Menstrual Health and Wellbeing]], so I will add [[User:Samah2025]] to the list. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:45, 23 September 2026 (UTC)
:Hello, @[[User:MarcGarver|MarcGarver]], @[[User:Xania|Xania]], @[[User:TechVindicator|TechVindicator]]. I have been supporting a number of trainees with Wikibooks editing and its looks like a lot more was done outside of the guidance I provided. I am going to look into those contributions and rectify the underlying issues. Thank you. [[User:Sisterian|Sisterian]] ([[User talk:Sisterian|discuss]] • [[Special:Contributions/Sisterian|contribs]]) 08:52, 23 September 2026 (UTC)
: OK --[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 12:13, 23 September 2026 (UTC)
== DhaanishChennai123 reported by TechVindicator ==
* {{userlinks|DhaanishChennai123}}
Spam <!-- USERREPORTED:/DhaanishChennai123/ --> [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 11:05, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
== Seobavswellness12390 reported by MathXplore ==
* {{userlinks|Seobavswellness12390}}
Spam <!-- USERREPORTED:/Seobavswellness12390/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:23, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
gq2trtgtescxb2d66nlxnymbgk5xj1a
Vehicle Identification Numbers (VIN codes)/Subaru/VIN Codes
0
142011
4672281
4657339
2026-09-25T08:56:26Z
JustTheFacts33
3434282
/* Plants and transmission type */
4672281
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This chart is applicable to Subaru models made for North America.
Subaru uses a '''17-character VIN''' format and code for vehicles sold in the United States. These rules also apply to the Saab 9-2X, a badge-engineered Subaru Impreza wagon and to the Scion FR-S/Toyota 86/Toyota GR86, a twin of the Subaru BRZ.
For Subaru Uncharted, Solterra, and Trailseeker, see the Toyota VIN page: [[Vehicle Identification Numbers (VIN codes)/Toyota/VIN Codes]].
==Subaru VIN code==
The following sample is the sequence and meaning of each character in the Subaru VIN:
<div class=center>
<table class="wikitable" border="1"><caption></caption><tr>
<th>Position</th>
<th>Sample</th>
<th>Description</th>
</tr><tr>
<td>1</td>
<td>J</td>
<td rowspan=3>[[#Subaru WMIs|World Manufacturer Identifier]]</td>
</tr><tr>
<td>2</td>
<td>F</td>
</tr><tr>
<td>3</td>
<td>1</td>
</tr><tr>
<td>4</td>
<td>C</td>
<td>[[#Line types|Line type]]</td>
</tr><tr>
<td>5</td>
<td>X</td>
<td>[[#Body styles|Body style]]</td>
</tr><tr>
<td>6</td>
<td>8</td>
<td>[[#Engine types|Engine type]]</td>
</tr><tr>
<td>7</td>
<td>6</td>
<td>[[#Models|Model identifier]]</td>
</tr><tr>
<td>8</td>
<td>5</td>
<td>[[#Restraint types|Restraint type]]</td>
</tr><tr>
<td>9</td>
<td>9</td>
<td>[[../../Check digit/]]</td>
</tr><tr>
<td>10</td>
<td>T</td>
<td>[[../../Model year/]]</td>
</tr><tr>
<td>11</td>
<td>H</td>
<td>[[#Plants and transmission types|Plant of manufacture & transmission type]]</td>
</tr><tr>
<td>12</td>
<td>1</td>
<td rowspan=6>Sequential production number
</tr><tr>
<td>13</td>
<td>0</td>
</tr><tr>
<td>14</td>
<td>0</td>
</tr><tr>
<td>15</td>
<td>2</td>
</tr><tr>
<td>16</td>
<td>1</td>
</tr><tr>
<td>17</td>
<td>6</td>
</table>
</div>
<div class="center"><small>The above serial number describes the following vehicle built in Japan by Fuji Heavy Industries:</small></div>
<div class="center"><small>1996 Subaru Alcyone SVX, 3.3L EG33 engine, AWD 4EAT transmission, manual seat belts<br />with driver / passenger airbags. The 216th vehicle produced during the 1996 model year.</small></div>
===Subaru WMIs===
The '''WMI''' is specified in the '''<u>first three</u>''' characters of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!WMI
!Country
!Description
!Vehicle Types
|-
|JF1
|Japan
|Fuji Heavy Industries/Subaru Corp. (Includes Scion FR-S/Toyota 86/Toyota GR86.)
|Passenger Vehicle
|-
|JF2
|Japan
|Fuji Heavy Industries/Subaru Corp.
|MPV
|-
|JF3
|Japan
|Fuji Heavy Industries
|truck
|-
|JF4
|Japan
|Fuji Heavy Industries-built Saab (9-2X)
|Passenger Vehicle
|-
|MMR
|Thailand
|Tan Chong Subaru Automotive (Thailand) Ltd.
|
|-
|PLP
|Malaysia
|Tan Chong Motor Assemblies
|
|-
|4S3
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|Passenger Vehicle
|-
|4S4
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|MPV
|}
MPV means Multi-Purpose Vehicle (Normally includes SUV or passenger van. Subaru has often classified 4wd versions of other body styles as an MPV as well.)
</div>
===Line type===
The '''line type''' is specified in the '''<u>fourth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|STD/DL/GL/GLF/GL-10/RX/Loyale/Brat
|-
|A
|XT/XT6
|-
|B
|Legacy/Outback/Baja
|-
|C
|SVX
|-
|G
|Subaru Impreza '93-/Impreza WRX '02-'14/XV Crosstrek '13-'15/Crosstrek '16-/Saab 9-2X '05-'06
|-
|K
|Justy '87-'94 & '95 in Canada
|-
|S
|Forester
|-
|V
|WRX '15-
|-
|V
|Levorg (2nd gen. known as WRX Sportswagon in Australia & WRX wagon in S.E. Asia) (Not sold in North America)
|-
|W
|B9 Tribeca/Tribeca
|-
|W
|Ascent
|-
|Z
|Subaru BRZ/Scion FR-S/Toyota 86/Toyota GR86
|}
A also indicated Restraint type for 1981-1986 models. A meant Manual seatbelts.
</div>
===Body style===
The '''body style''' is specified in the '''<u>fifth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|'87-'94 Justy 3-Door
|-
|A
|'15-'21 WRX, WRX STi sedan (1st gen.)
|-
|B
|'81-'84 DL/GL 4-door sedan (2nd gen.)
|-
|B
|'22- WRX sedan (2nd gen.)
|-
|C
|'85-'93 DL/GL/GL-10/RX/Turbo/Loyale sedan (3rd gen.)
|-
|C
|'90-'94 Legacy sedan (1st gen.)
|-
|C
|'93-'01 Impreza sedan (1st gen.)
|-
|C
|'13-'20 BRZ coupe (1st gen.)
|-
|D
|'90-'94 Justy 5-Door
|-
|D
|'95-'99 Legacy sedan, '97-'99 Legacy SUS (2nd gen. Legacy)
|-
|D
|'02-'07 Impreza sedan, Impreza WRX sedan (2nd gen.)
|-
|D
|'22- BRZ coupe (2nd gen.)
|-
|E
|'00-'04 Legacy sedan, Outback sedan (3rd gen. Legacy)
|-
|E
|'08-'11 Impreza sedan, '08-'10 Impreza WRX sedan (3rd gen.)
|-
|F
|'81-'89 STD/DL/GL 3-door hatchback (2nd gen.)
|-
|F
|'93-'01 Impreza wagon, '95-'01 Impreza Outback Sport (1st gen.)
|-
|F
|'94 Legacy GT wagon [raised-roof] (1st gen.)
|-
|F
|Wagon: Forester (1st gen.) '98-'02
|-
|G
|'86-'90 DL/GL/RX/Turbo/Loyale 3-door coupe (3rd gen.)
|-
|G
|'96-'99 Legacy Outback wagon [raised-roof] (2nd gen. Legacy)
|-
|G
|'02-'07 Impreza wagon, Impreza WRX wagon, Impreza Outback Sport (2nd gen.), '05-'06 Saab 9-2X
|-
|G
|Wagon: Forester (2nd gen.) '03-'08
|-
|H
|'00-'04 Legacy wagon, Outback wagon (3rd gen. Legacy)
|-
|H
|'08-'11 Impreza 5-door hatchback, '08-'11 Impreza Outback Sport, '08-'10 Impreza WRX 5-door hatchback (3rd gen.)
|-
|H
|Wagon: Forester (3rd gen.) '09-'13
|-
|J
|'90-'94 Legacy wagon [non-raised-roof] (1st gen.)
|-
|J
|'12-'16 Impreza sedan (4th gen.)
|-
|J
|Wagon: Forester (4th gen.) '14-'18
|-
|K
|'89-'90 GL/GL-10/Turbo/Loyale Touring wagon [raised roof] (3rd gen.)
|-
|K
|'95-'99 Legacy wagon [non-raised-roof] (2nd gen.)
|-
|K
|'17-'23 Impreza sedan (5th gen.)
|-
|K
|Wagon: Forester (5th gen.) '19-'24, Forester Wilderness '22-'25
|-
|L
|'05-'09 Legacy sedan, '05-'07 Outback sedan (4th gen. Legacy)
|-
|L
|Wagon: Forester (6th gen.) '25-, Forester Wilderness '26-
|-
|M
|'81-'84 DL/GL 4-door wagon (2nd gen.)
|-
|M
|'95-'01 Impreza coupe (1st gen.)
|-
|M
|'10-'14 Legacy sedan (5th gen.)
|-
|M
|'19- Ascent (1st gen.)
|-
|M
|Levorg wagon (1st gen.) (Not sold in North America)
|-
|N
|'85-'94 DL/GL/GL-10/Turbo/Loyale wagon (3rd gen.)
|-
|N
|'13-'16 Scion FR-S, '17-'20 Toyota 86, '22- Toyota GR86 coupe
|-
|N
|'15-'19 Legacy sedan (6th gen.)
|-
|N
|Levorg wagon (WRX Sportswagon in Australia/WRX wagon in S.E. Asia) (2nd gen.) (Not sold in North America)
|-
|P
|'05-'07 (& '08-'09 in Canada) Legacy wagon, '05-'09 Outback wagon (4th gen. Legacy)
|-
|P
|'12-'16 Impreza 5-door hatchback (4th gen.), '13-'15 XV Crosstrek, '16-'17 Crosstrek (1st gen.)
|-
|R
|Brat 1981 (1st gen.)
|-
|R
|'08-'14 Impreza WRX STi 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'11-'14 Impreza WRX 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'10-'14 Outback wagon
|-
|S
|'15-'19 Outback Wagon
|-
|T
|Brat 1982-1985 (2nd gen.)
|-
|T
|'03-'06 Baja
|-
|T
|'17-'23 Impreza 5-door hatchback (5th gen.), '18-'23 Crosstrek (2nd gen.)
|-
|T
|'20-'25 Outback Wagon
|-
|U
|Brat 1986-1987 (2nd gen.)
|-
|U
|'24- Impreza 5-door hatchback (6th gen.), '24- Crosstrek (3rd gen.)
|-
|U
|'26- Outback
|-
|V
|'11-'14 Impreza WRX, WRX STi sedan [widebody] (3rd gen.)
|-
|W
|'81-'84 DL/GL/GLF 2-door hardtop coupe (2nd gen.)
|-
|W
|'20-'25 Legacy sedan (7th gen.)
|-
|X
|'85-'91 XT/XT6 coupe
|-
|X
|'92-'97 SVX coupe
|-
|X
|'06-'07 B9 Tribeca, '08-'14 Tribeca
|}
</div>
===Engine type===
The '''engine type''' is specified in the '''<u>sixth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable"
|+Position 6
!VIN code
!Engine
!Application
|-
|A
|2.0L DOHC, 16-valve FA20D flat-4 (Toyota 4U-GSE).<br> Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '13-'20, Toyota Scion FR-S '13-'16, Toyota 86 '17-'20
|-
|A
|2.0L DOHC, 16-valve FB20B flat-4. MPI. Dual VVT.
|Subaru Impreza '12-'16 (except WRX models), XV Crosstrek '13-'15,<br> Crosstrek '16-'17
|-
|A
|2.0L DOHC, 16-valve FB20D flat-4. Direct injection. Dual VVT.
|Subaru Impreza '17-'23, Impreza Base '24-'25, Sport '24-'26,<br> Crosstrek Base '18-'25, Premium '18-'24, Limited '18-'20
|-
|A
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '19-'24, Forester Wilderness '22-'25, Legacy '20-'25,<br> Outback '20-'25
|-
|A
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Ascent '19-'26, WRX '22-'26
|-
|B
|2.0L DOHC, 16-valve FB20X flat-4 + 1 electric motor.<br> Nickel-metal hydride Battery Pack. MPI. Dual VVT.
|Subaru XV Crosstrek Hybrid '14-'15, Crosstrek Hybrid '16
|-
|B
|2.4L DOHC, 16-valve FA24D flat-4. Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '22-'26, Toyota GR86 '22-'26
|-
|D
|2.0L DOHC, 16-valve FB20V flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Crosstrek Hybrid ([[w:PHEV|PHEV]]) '19-'23
|-
|D
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '25 (except Wilderness), '26
|-
|G
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Legacy XT '20-'25, Legacy Sport '23-'25,<br> Outback XT '20-'25, Outback Wilderness '22-'25
|-
|H
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Impreza RS '24-'26,<br> Crosstrek Sport '21-'26, Limited '21-'26, Wilderness '24-'26, Premium '25-'26, Base model '26-
|-
|P
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|R
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|S
|2.5L DOHC, 16-valve FB25D flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Forester Hybrid '25-'26, Crosstrek Hybrid '26-
|-
|1
|2.0L DOHC, 16-valve turbo/intercooled FA20F flat-4. Direct injection. Dual VVT.
|Subaru WRX '15-'21
|-
|2
|1.6L OHV, 8-valve EA71 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru Standard Hatchback 2wd '81-'87, DL Hatchback, 2-d Hardtop, 4-d Sedan 2wd '81-'84,<br> GL Hatchback 2wd w/man. trans. '86-'87
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI.
|Subaru Impreza (all models) '93-'94, Impreza Base, L 1.8, Outback Sport 1.8 '95
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI. AWD.
|Subaru Impreza Brighton '96-'97
|-
|2
|2.0L DOHC, 16-valve turbo/intercooled EJ205 flat-4. MPI.
|Subaru Impreza WRX '02-'05, Saab 9-2X Aero '05
|-
|2
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi '15-'21, STi S209 '19
|-
|3
|3.3L DOHC, 24-valve EG33 flat-6. MPI.
|Subaru SVX '92-'95
|-
|3
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. FWD.
|Subaru Legacy L '96
|-
|3
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi Type RA '18
|-
|4
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru DL Wagon 2wd '81-'84, GL 2-d Hardtop 2wd '83-'84, GL 4-d Sedan, Wagon 2wd '81-'84,<br> GLF 2-d Hardtop 2wd '81-'82, GL-10 2-d Hardtop, 4-d Sedan '83-'84, GL-10 Wagon '83,<br> GL Hatchback 2wd '81-'85, GL Hatchback 2wd w/auto. trans. '86-'87, GL Hatchback 2wd '88-'89
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 2WD.
|Subaru DL 3-d coupe 2wd '86, DL sedan, wagon 2wd '85-'86, GL sedan, wagon 2wd '85,<br> GL 3-d coupe, sedan, wagon 2wd w/man. trans. '86
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 2WD.
|Subaru DL 3-d coupe, sedan, wagon 2wd '87-'89, GL 3-d coupe, sedan, wagon 2wd w/auto. trans. '86, GL 3-d coupe, sedan, wagon 2wd '87-'89, GL-10 sedan, wagon 2wd '86-'88, Loyale 2wd '90-'93
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. MPI. 2WD.
|Subaru GL-10 sedan, wagon 2wd '85, XT coupe 2wd '85-'91
|-
|4
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 2WD.
|Subaru GL Turbo 2wd 3-d coupe '87, GL Turbo 2wd sedan '87, GL Turbo 2wd wagon '87,<br> GL-10 Turbo 2wd sedan '86-'89, GL-10 Turbo 2wd wagon '86-'89, Loyale Turbo 2wd '90,<br> XT coupe Turbo 2wd '85-'87
|-
|4
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. AWD.
|Subaru Impreza L '96-'01, LX '96, Impreza Outback Sport '96-'01,<br> Legacy Brighton, L '96-'99, LS '96, Outback '96
|-
|5
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 4WD. (Some models had 1-bbl. carb. in '82)
|Subaru DL Wagon 4wd '81-'84, GL 4-d Sedan 4wd '84, GL Wagon 4wd '81-'84,<br> Standard Hatchback 4wd '81, DL Hatchback 4wd '81, GL Hatchback 4wd '81-'89,<br> Brat DL 4wd '81-'83, Brat GL 4wd '81-'87
|-
|5
|1.8L OHV, 8-valve turbo EA81T flat-4. MPI. 4WD.
|Subaru Turbo 2-d Hardtop 4wd '84, Turbo Wagon 4wd '83-'84, Brat Turbo 4wd '83-'84
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 4WD.
|Subaru DL wagon 4wd '85-'86, DL wagon 4wd '87 (49-state version), GL sedan, wagon 4wd '85,<br> GL 3-d coupe, sedan, wagon 4wd '86, GL 3-d coupe, sedan, wagon 4wd '87 (49-state version)
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 4WD.
|Subaru DL wagon 4wd '87 (CA version), '88-'89;<br> GL 3-d coupe, sedan, wagon 4wd '87 (CA version), '88-'89; Loyale 4wd '90-'94
|-
|5
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD.
|Subaru GL Turbo 4wd 3-d coupe '86-'87, RX Turbo 4wd 3-d coupe '87-'89, RX Turbo 4wd sedan '85-'88, Turbo 4wd wagon '85, GL Turbo 4wd wagon '87-'89, GL-10 Turbo 4wd wagon w/man. trans. '86-'88, GL-10 Turbo 4wd wagon '89, Loyale Turbo 4wd '90
|-
|6
|2.2L SOHC, 16-valve EJ22 flat-4. MPI.
|Subaru Impreza L 2.2 '95, LX '95, Impreza Outback Sport 2.2 '95, Legacy '90-'95
|-
|6
|2.2L SOHC, 16-valve turbo EJ22T flat-4. MPI.
|Subaru Legacy Sport Sedan '91-'94, [LE] Touring Wagon '92-'94
|-
|6
|2.5L DOHC, 16-valve EJ25D flat-4 (Phase I). MPI.
|Subaru Impreza 2.5RS '98, Forester '98, Legacy 2.5GT '96-'99, LSi '96-'97,<br> SUS '97-'99, Outback '96-'99
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4 (Phase II). MPI.
|Subaru Impreza 2.5RS '99-'01, Impreza (except WRX) '02-'05,<br> Impreza Outback Sport '02-'05, Forester '99-'05, Legacy '00-'05,<br> Outback '00-'05, Baja Base '03, Sport '03-'06, Saab 9-2X Linear '05
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4. MPI. Intake VVL.
|Subaru Impreza (except WRX) '06-'11, Subaru Impreza Outback Sport '06-'11, Forester '06-'10, Legacy '06-'09, Outback '06-'09, Saab 9-2X 2.5i '06
|-
|6
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Forester XT '04-'10, Legacy GT '05-'09, Outback XT '05-'09,<br> Baja Turbo '04-'06
|-
|7
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 2wd.
|Subaru Justy '87-'89, Justy DL '90-'92
|-
|7
|1.2L SOHC, 9-valve EF12 I3. MPI. 2wd.
|Subaru Justy GL '90-'94, Justy DL '93-'94
|-
|7
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD w/air suspension.
|Subaru Turbo 4wd sedan '85, GL-10 Turbo 4wd sedan '86-'89, GL-10 Turbo 4wd wagon w/auto. trans. '86-'89, XT coupe Turbo 4wd '85-'89
|-
|7
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Impreza WRX '06-'14, Impreza WRX STi '04-'07, Impreza 2.5GT '09-'10,<br> Saab 9-2X Aero '06
|-
|8
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 4wd.
|Subaru Justy GL 4wd '88-'89
|-
|8
|1.2L SOHC, 9-valve EF12 I3. MPI. 4wd.
|Subaru Justy GL 4wd '90-'94
|-
|8
|2.7L SOHC, 12-valve ER27 flat-6. MPI. FWD.
|Subaru XT6 '88-'91
|-
|8
|3.3L DOHC, 24-valve EG33 flat-6. MPI. AWD.
|Subaru SVX '96-'97
|-
|8
|3.0L DOHC, 24-valve EZ30D flat-6. MPI. Intake VVT & VVL.
|Subaru Legacy 3.0R '08-'09, Outback H6-3.0 '01-'04, Outback 3.0R '05-'09,<br> B9 Tribeca '06-'07
|-
|8
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru Impreza WRX STi '08-'14
|-
|9
|2.7L SOHC, 12-valve ER27 flat-6. MPI. AWD.
|Subaru XT6 '88-'91
|-
|9
|3.6L DOHC, 24-valve EZ36D flat-6. MPI. Dual VVT.
|Subaru Tribeca '08-'14
|}
</div>
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|4
|FB 1600cc DIT AWD 2015+
|-
|D
|2000cc DOHC Turbo Diesel
|}
</div>
===Model===
The '''model''' is identified in the '''<u>seventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|Standard model '81-'87, Loyale RS 3-door coupe (non-Turbo) '90
|-
|1
|Impreza Base model '93-'95, 2.5i '07, 2.5i Special Edition '07, Impreza 2.5i '08-'09, Impreza 2.5i Premium '08, Saab 9-2X Linear '05, Saab 9-2X 2.5i '06
|-
|1
|Legacy 2.5i '05-'08, 2.5i Special Edition '06-'09
|-
|1
|Outback H6-3.0 wagon 35th Anniv. Ed. '04, Outback 2.5i '05-'08, 2.5i Special Edition '06, '09, 2.5i Basic '07, 2.5i L.L. Bean Edition '07-'08
|-
|1
|Forester Base model '98-'99, 2.5X '09
|-
|1
|Tribeca 5-psgr. base model '08-'09
|-
|1
|Baja Base model '03
|-
|2
|DL '81-'89, Loyale (non-Turbo) '90-'94, Brat DL '81-'83, Justy DL '87-'94, XT coupe DL '85-'88
|-
|2
|Impreza L fwd sedan w/man. trans. [w/o opt. power equipment, A/C, & stereo] '93, Impreza L Early '94 (only has driver-side airbag),<br> Impreza Brighton coupe '96-'97, Impreza Brighton wagon - Canada only: '98-'01, Impreza Outback Sport '07, Saab 9-2X Aero '05-'06
|-
|2
|Legacy Base model '90, '95, Legacy Brighton wagon '95-'00, Legacy L 35th Anniv. Ed. '04, Legacy 2.5i Limited '05-'09
|-
|2
|Outback 2.5i Limited wagon '05-'08, 2.5i Limited sedan '06-'07, 2.5i Limited L.L. Bean Edition wagon '07-'08
|-
|2
|SVX L Early '94 (has motorized seatbelts & driver-side airbag)
|-
|2
|B9 Tribeca 5-psgr. '06-'07
|-
|2
|Tribeca 5-psgr. Limited '08-'09, Tribeca 5-psgr. Special Edition '09
|-
|2
|Baja Sport '03-'06
|-
|3
|GL '81-'89, Brat GL '81-'87, Justy GL '87-'94, Justy RS '88-'89, XT coupe GL '85-'89, '91
|-
|3
|Impreza L '94 (has dual airbags), L '95-'01, Outback Sport '95, Impreza Outback Sport Special Edition '07, Impreza Outback Sport '08-'09
|-
|3
|Legacy L '90-'04, Legacy Sun Sport, Alpine Sport, Outdoor, & GT wagons '94, Legacy Outback '95, Legacy L Special Edition '03
|-
|3
|Outback 2.5XT Limited '07-'09
|-
|3
|SVX L '94-'97 (has manual seatbelts & dual airbags)
|-
|3
|Forester L '98-'02, 2.5X '03-'08, Sports 2.5X '07, 2.5X Premium '09
|-
|3
|B9 Tribeca 5-psgr. '06-'07
|-
|3
|Tribeca 5-psgr. Limited w/Navigation '08-'09
|-
|3
|Baja Turbo '04-'06
|-
|4
|GLF '81-'82, GL-10 '85-'89, XT6 coupe '88-'89, '91
|-
|4
|Impreza L "Plus" [L fwd sedan w/man. trans. w/opt. power equipment, A/C, & stereo plus all other Impreza L models] '93,<br> Impreza WRX '07-'08, WRX Limited '07, Impreza 2.5GT '09
|-
|4
|Legacy LS '90, 2.5GT '00-'04, 3.0R '09
|-
|4
|Outback 3.0R sedan '05, 3.0R wagon w/cloth seats '06
|-
|4
|SVX LS '92, '94
|-
|4
|Forester 2.5X L.L. Bean Edition '09, 2.5X Limited '09
|-
|5
|GL Turbo (except '87 4wd wagon) '83-'87, GL-10 Turbo '86-'89, Brat GL Turbo '83-'84, XT coupe GL-10 Turbo '85-'87
|-
|5
|Impreza LS '93-'94, LX '95-'96, 2.5TS '02-'04, Impreza WRX TR '07, Impreza WRX Premium '08
|-
|5
|Legacy LS "Special" '90, Legacy LS '91-'96, Legacy LSi '91-'95, 2.5GT Limited '00-'02, 3.0R Limited '08-'09
|-
|5
|Outback 3.0R VDC Limited wagon '05-'06, 3.0R Limited '09
|-
|5
|SVX LS-L (LS w/Touring Package) '92-'93, SVX LSi Awd '94-'95
|-
|5
|Forester S '98-'02, 2.5XS '03-'05, 2.5X Premium '06-'08, 2.5XT '09
|-
|5
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|RX Turbo '85-'89
|-
|6
|Impreza WRX STi '07, Impreza WRX '09, WRX Premium '09
|-
|6
|Legacy LSi '96-'97, Outback base model '00-'02, Outback 'Audio Edition' (Premium Audio instead of All-Weather Pkg.) wagon '03
|-
|6
|Outback 3.0R L.L. Bean Edition wagon '05-'08, 3.0R L.L. Bean Edition sedan '06-'07, 2.5i Limited '09
|-
|6
|SVX LSi '96-'97
|-
|6
|Forester Sports 2.5X '08, Sports 2.5XT '08, Forester 2.5XT Limited '09
|-
|6
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|Tribeca 7-psgr. base model '08-'09
|-
|7
|GL Turbo 4wd wagon '87-'89, Loyale Turbo '90, Loyale RS Turbo 3-door coupe '90
|-
|7
|Impreza 2.5RS '98-'05, 2.5i '06, Impreza WRX STi Limited '07
|-
|7
|Legacy Sport Sedan '91-'94, Legacy [LE] Touring Wagon '92-'94, Legacy 2.5GT '96-'99, Legacy 2.5GT Limited '98-'99, Outback w/All-Weather Pkg. '00-'02, Outback base model '03-'04, Legacy 2.5GT Limited '05-'09, Legacy 2.5GT Limited spec.B '06
|-
|7
|Outback 2.5XT Limited '05-'06
|-
|7
|Forester 2.5XS L.L. Bean Edition '05, 2.5X L.L. Bean Edition '06-'08
|-
|7
|Tribeca 7-psgr. Limited '08-'09, Tribeca 7-psgr. Special Edition '09
|-
|8
|Impreza Outback Sport '96-'06, Impreza Outback Sport Special Edition '05-'06
|-
|8
|Legacy 2.5GT '05
|-
|8
|Legacy Outback '96-'99, Legacy Outback Limited '97-'99, Legacy SUS '97-'99, Outback Limited wagon '00-'04, Outback Limited sedan '00-'04, Outback 2.5XT '05-'06
|-
|8
|Tribeca 7-psgr. Limited w/Navigation '08-'09
|-
|9
|Impreza WRX '02-'06, WRX TR '06, WRX Limited '06, Impreza WRX STi '08-'09
|-
|9
|Legacy L Awd wagon rhd Postal Vehicle '95-'99, Outback H6-3.0 VDC wagon '01-'04, Outback H6-3.0 wagon w/cloth seats '03, Outback H6-3.0 sedan '02-'04, Outback H6-3.0 VDC sedan '02-'04, Legacy 2.5GT spec.B '07-'09
|-
|9
|Forester 2.5XT '04-'05, 2.5XT Limited '06-'08, Sports 2.5XT '07
|-
|0
|Impreza WRX STi '04-'06, Impreza 2.5i Premium '09
|-
|0
|Legacy 2.5i '09
|-
|0
|Outback H6-3.0 L.L. Bean Edition wagon '01-'04, Outback base model '08, Outback 2.5i '09
|-
|0
|Tribeca 7-psgr. Limited w/Navigation & Rear-seat DVD Entertainment System '08-'09
|-
|}
</div>
rhd=right-hand drive
===Restraint Type (Passenger) or Weight Class (MPV)===
The '''restraint type''', for passenger vehicles, or the weight class (Gross Vehicle Weight Rating), for MPVs & trucks, is specified in the '''<u>eighth</u>''' character of the Subaru VIN. Beginning in 2010, MPVs include both '''restraint type''' and weight class (Gross Vehicle Weight Rating).
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|No Passive Restraint
|-
|2
|Automatic Seat Belt w/o Airbag
|-
|3
|Automatic Seat Belt w/Driver Airbag (1992-1994 Legacy, SVX)
|-
|4
|Manual Seat Belt w/Driver Airbag (1993-1994 Impreza)
|-
|5
|Manual Seat Belt w/Driver/Passenger Airbags
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and Side Airbags. (Includes '05-'06 Saab 9-2X.)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front-row Side Curtain Airbags <br> ('13-'20 BRZ, '13-'16 Scion FR-S, '17-'20 Toyota 86)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front-row Side Curtain Airbags & Driver's Knee Airbag <br> ('22-'26 BRZ, '22-'26 Toyota GR86)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front to rear Side Curtain Airbags <br> ('10-'11 Impreza, '10-'14 Impreza WRX, '10-'14 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('12-'23 Impreza, '15-'26 WRX)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags ('15-'19 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Legacy)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Impreza)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Impreza)
|-
|A
|Class A (GVWR 3000 lbs. or less)
|-
|B
|Class B (GVWR 3001-4000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.)
|-
|6
|Class C (GVWR 4001-5000 lbs.) (For '09 Forester only)
|-
|D
|Class D (GVWR 5001-6000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags <br> ('10-'13 Forester, '10-'14 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('13-'15 XV Crosstrek, '16-'23 Crosstrek, '14-'24 Forester, '25 Forester Wilderness)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags <br> ('15-'19 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Outback, '24-'25 Crosstrek [Japanese-built models], '25 Forester [except Wilderness & Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Crosstrek [US-built models], '26- Forester [except Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek)
|-
|7
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags <br> ('10-'14 Tribeca)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags for all 3 rows & Driver's Knee Airbag <br> ('19-'26 Ascent)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'26 Outback, '25 Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek Hybrid)
|}
</div>
The '''Check Digit''' is identified in the '''<u>ninth</u>''' character of the Subaru VIN
The '''Model Year''' is identified in the '''<u>tenth</u>''' character of the Subaru VIN
Letters began being reused in 2010.
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|2001
|-
|2
|2002
|-
|3
|2003
|-
|4
|2004
|-
|5
|2005
|-
|6
|2006
|-
|7
|2007
|-
|8
|2008
|-
|9
|2009
|-
|A
|1980, 2010
|-
|B
|1981, 2011
|-
|C
|1982, 2012
|-
|D
|1983, 2013
|-
|E
|1984, 2014
|-
|F
|1985, 2015
|-
|G
|1986, 2016
|-
|H
|1987, 2017
|-
|I
|not used
|-
|J
|1988, 2018
|-
|K
|1989, 2019
|-
|L
|1990, 2020
|-
|M
|1991, 2021
|-
|N
|1992, 2022
|-
|P
|1993, 2023
|-
|R
|1994, 2024
|-
|S
|1995, 2025
|-
|T
|1996, 2026
|-
|V
|1997
|-
|W
|1998
|-
|X
|1999
|-
|Y
|2000
|}
</div>
===Plants and transmission type===
The '''assembly plant''' and '''transmission type''' is specified in the '''<u>eleventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Plant
!Transmission
|-
|1
|SIA
|FWD 5MT ('90-'96 Legacy)
|-
|1
|SIA
|Full-time AWD 5MT ('17-'23 Impreza)
|-
|1
|SIA
|Full-time AWD 6MT ('10-'14 & in Canada: '15-'17 Legacy, Outback)
|-
|2
|SIA
|Full-time AWD 5AT ('10-'14 Legacy 3.6R, Outback 3.6R)
|-
|3
|SIA
|Full-time AWD 6MT ('07-'09 Legacy GT spec.B).
|-
|3
|SIA
|Full-time AWD CVT ('10-'25 Legacy 2.5, Outback 2.5, '15-'19 Legacy 3.6R, Outback 3.6R,<br> '20-'25 Legacy 2.4T, Outback 2.4T, '17-'23 Impreza, '19-'26 Ascent, '24-'26 Crosstrek, '26- Forester, '26- Forester Hybrid)
|-
|4
|SIA
|Full-time AWD 5AT ('05-'09 Legacy, Outback, '06-'07 B9 Tribeca, '08-'14 Tribeca)
|-
|5
|SIA
|Full-time AWD 4-spd. Automatic w/Sport Shift ('03-'04 Legacy GT)
|-
|6
|SIA
|Full-time AWD 5MT
|-
|7
|SIA
|Full-time AWD 4EAT
|-
|8
|SIA
|Full-time AWD 4EAT ('95-'99 Legacy wagon RHD Postal vehicle)
|-
|9
|SIA
|FWD 4EAT ('90-'96 Legacy)
|-
|A
|FHI
|FWD 4MT
|-
|B
|FHI
|FWD 5MT
|-
|C
|FHI
|FWD 3AT ('81-'89 compact models, '90-'93 Loyale). FWD 4AT ('88-'91 XT/XT6).<br> FWD ECVT ('89-'93 Justy).
|-
|D
|FHI
|On-demand 4WD 4MT ('81-'84), On-demand 4WD 5MT ('85-'94)
|-
|E
|FHI
|4MT Dual Range 4wd ('81-'84, '85-'89 Hatchback, '85-'87 Brat).<br> 5MT Dual Range 4wd '85-'89 (excluding Hatchback & Brat)
|-
|F
|FHI
|On-demand 4WD 3AT ('83-'89 compact models, '90-'94 Loyale, '85-'87 XT coupe GL-10 Turbo 4wd).<br> On-demand 4WD ECVT ('90-'93 Justy).
|-
|G
|FHI
|Full-time AWD 5MT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 5MT ('12-'16 Impreza, '12-'14 Impreza WRX, '13-'15 XV Crosstrek, '16-'17 Crosstrek,<br> '12-'13 Forester)
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('14-'18 Forester, '18-'23 Crosstrek).
|-
|H
|FHI
|Full-time AWD 4EAT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 4EAT ('12-'13 Forester).
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('12-'16 Impreza, '13-'15 XV Crosstrek, '14-'15 XV Crosstrek Hybrid,<br> '16-'25 Crosstrek, '16 Crosstrek Hybrid, '19-'23 Crosstrek Hybrid (PHEV), '14-'25 Forester).
|-
|K
|FHI
|FWD 4EAT
|-
|L
|FHI
|Full-time AWD 6MT ('04-'11 Impreza WRX STi)
|-
|L
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('12-'14 Impreza WRX STi)
|-
|P
|FHI
|Full-time AWD 4EAT ('91-'94 Legacy wagon RHD Postal vehicle)
|-
|Y
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('26- Outback)
|-
|1
|FHI
|RWD 6MT ('13 BRZ, Scion FR-S)
|-
|2
|FHI
|RWD 6AT ('13 BRZ, Scion FR-S)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6AT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6MT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD CVT ('14-'16, '24-'26 Impreza, '14-'15 XV Crosstrek, '16-'25 Crosstrek, '26- Crosstrek Hybrid, '15-'26 WRX)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 5MT ('14-'16 Impreza, '14-'15 XV Crosstrek, '16-'17 Crosstrek)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 6MT ('15-'26 WRX, '15-'21 WRX STi, '18-'23 Crosstrek)
|}
</div>
** SIA = Subaru-Isuzu Automotive (now known as Subaru of Indiana Automotive), Lafayette, Indiana
** FHI = Fuji Heavy Industries, Gunma prefecture, Japan
===The '''Vehicle Production Sequence''' number is specified in the '''<u>twelfth - seventeenth</u>''' characters of the Subaru VIN===
** 002001 and after - Touring Wagon ('89), Loyale Touring wagon ('90)
** 002001 - 199999 - Impreza sedan ('12-'16), Impreza WRX sedan ('12-'14)
** 002001 - 199999 - Legacy sedan ('12-'19)
** 002001 - 099999 - Legacy sedan ('20-'25)
** 002001 and after - Forester, Forester Hybrid ('26-)
** 050001 - 059999 - Saab 9-2X ('05-'06)
** 100000 and after - Hatchback
** 100000 and after - SVX
** 100000 and after - Legacy Sedan SUS (Jan 98 - May 98)
** 100000 and after - Baja
** 100001 - 299999 - Outback wagon ('20-'25)
** 200001 and after - 4-dr sedan ('81-'89), Loyale 4-dr sedan ('90-'93)
** 200001 and after - Legacy Sedan '96-'08, Outback Sedan '00-'07
** 200001 - 399999 - Impreza hatchback ('12-'16, '24-'26), Impreza WRX hatchback ('12-'14), XV Crosstrek ('13-'15), Crosstrek ('16-'23)
** 200001 - 399999 - Crosstrek [Japan-built] ('24-'25), Crosstrek Hybrid [Japan-built] ('26-)
** 200001 - 399999 - Outback wagon ('12-'19)
** 210001 and after - Legacy Sedan '95, '09-'11
** 300001 and after - Hardtop coupe ('81-'84)
** 300001 and after - XT/XT6 coupe ('85-'91)
** 300001 and after - Legacy Station Wagon '96-'07; Outback wagon '05-'08
** 310001 and after - Legacy Station Wagon '95; Outback wagon '09-'11
** 370001 and after - Legacy Outback wagon '96
** 400001 and after - Station Wagon ('81-'89), Loyale station wagon ('90-'94)
** 400001 and after - Impreza Coupe ('95-'01)
** 400001 and after - B9 Tribeca ('06-'07)/Tribeca ('08-'11)
** 400001 - 599999 - Forester ('12-'25)
** 400001 - 599999 - Tribeca ('12-'14); Ascent ('19-'26)
** 450001 and after - Outback ('26-)
** 500001 and after - Brat
** 500001 and after - Impreza Sedan ('93-'11)
** 600001 and after - Legacy sedan ('90-'93: All, '94: Japanese-built)
** 640001 and after - Legacy sedan ('94: US-built)
** 600001 and after - Outback wagon '97-'04
** 600001 - 699999 - BRZ ('13-'19)
** 600001 - 699999 - Impreza Sedan ('17-'23)
** 700001 and after - Justy 3-d ('87-'94)
** 700001 and after - Forester ('98-'11)
** 700001 - 799999 - Scion FR-S ('13-'16), Toyota 86 ('17-'19)
** 700001 - 749999 - BRZ ('20, '22-'26)
** 700001 - 899999 - Impreza 5-door hatchback ('17-'23)
** 700001 - 899999 - Crosstrek [US-built] ('24-'26)
** 750001 and after - Justy 5-d ('90-'94)
** 750001 - 799999 - Toyota 86 ('20), Toyota GR86 ('22-'26)
** 800001 and after - 3-door coupe ('86-'89), Loyale 3-door coupe ('90)
** 800001 and after - Impreza Sports Wagon ('93-'07); Impreza 5-door hatchback ('08-'11)
** 800001 - 899999 - WRX ('15-'26)
** 800001 - 999999 - Crosstrek [Japan-built] ('24)
** 900001 and after - Legacy wagon ('90-'93: All, '94: Japanese-built)
** 940001 and after - Legacy wagon ('94: US-built)
** 990001 and after - Legacy GT wagon w/stepped roof ('94: US-built)
==External links==
Online [http://www.vindecoderz.com/EN/Subaru Subaru VIN decoder]
Online [www.auto-vin-decoder.com Universal VIN decoder]
{{BookCat}}
9kok202dm8w2v71sa9od6oouw9x159i
4672282
4672281
2026-09-25T09:01:18Z
JustTheFacts33
3434282
/* The Vehicle Production Sequence number is specified in the twelfth - seventeenth characters of the Subaru VIN */
4672282
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This chart is applicable to Subaru models made for North America.
Subaru uses a '''17-character VIN''' format and code for vehicles sold in the United States. These rules also apply to the Saab 9-2X, a badge-engineered Subaru Impreza wagon and to the Scion FR-S/Toyota 86/Toyota GR86, a twin of the Subaru BRZ.
For Subaru Uncharted, Solterra, and Trailseeker, see the Toyota VIN page: [[Vehicle Identification Numbers (VIN codes)/Toyota/VIN Codes]].
==Subaru VIN code==
The following sample is the sequence and meaning of each character in the Subaru VIN:
<div class=center>
<table class="wikitable" border="1"><caption></caption><tr>
<th>Position</th>
<th>Sample</th>
<th>Description</th>
</tr><tr>
<td>1</td>
<td>J</td>
<td rowspan=3>[[#Subaru WMIs|World Manufacturer Identifier]]</td>
</tr><tr>
<td>2</td>
<td>F</td>
</tr><tr>
<td>3</td>
<td>1</td>
</tr><tr>
<td>4</td>
<td>C</td>
<td>[[#Line types|Line type]]</td>
</tr><tr>
<td>5</td>
<td>X</td>
<td>[[#Body styles|Body style]]</td>
</tr><tr>
<td>6</td>
<td>8</td>
<td>[[#Engine types|Engine type]]</td>
</tr><tr>
<td>7</td>
<td>6</td>
<td>[[#Models|Model identifier]]</td>
</tr><tr>
<td>8</td>
<td>5</td>
<td>[[#Restraint types|Restraint type]]</td>
</tr><tr>
<td>9</td>
<td>9</td>
<td>[[../../Check digit/]]</td>
</tr><tr>
<td>10</td>
<td>T</td>
<td>[[../../Model year/]]</td>
</tr><tr>
<td>11</td>
<td>H</td>
<td>[[#Plants and transmission types|Plant of manufacture & transmission type]]</td>
</tr><tr>
<td>12</td>
<td>1</td>
<td rowspan=6>Sequential production number
</tr><tr>
<td>13</td>
<td>0</td>
</tr><tr>
<td>14</td>
<td>0</td>
</tr><tr>
<td>15</td>
<td>2</td>
</tr><tr>
<td>16</td>
<td>1</td>
</tr><tr>
<td>17</td>
<td>6</td>
</table>
</div>
<div class="center"><small>The above serial number describes the following vehicle built in Japan by Fuji Heavy Industries:</small></div>
<div class="center"><small>1996 Subaru Alcyone SVX, 3.3L EG33 engine, AWD 4EAT transmission, manual seat belts<br />with driver / passenger airbags. The 216th vehicle produced during the 1996 model year.</small></div>
===Subaru WMIs===
The '''WMI''' is specified in the '''<u>first three</u>''' characters of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!WMI
!Country
!Description
!Vehicle Types
|-
|JF1
|Japan
|Fuji Heavy Industries/Subaru Corp. (Includes Scion FR-S/Toyota 86/Toyota GR86.)
|Passenger Vehicle
|-
|JF2
|Japan
|Fuji Heavy Industries/Subaru Corp.
|MPV
|-
|JF3
|Japan
|Fuji Heavy Industries
|truck
|-
|JF4
|Japan
|Fuji Heavy Industries-built Saab (9-2X)
|Passenger Vehicle
|-
|MMR
|Thailand
|Tan Chong Subaru Automotive (Thailand) Ltd.
|
|-
|PLP
|Malaysia
|Tan Chong Motor Assemblies
|
|-
|4S3
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|Passenger Vehicle
|-
|4S4
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|MPV
|}
MPV means Multi-Purpose Vehicle (Normally includes SUV or passenger van. Subaru has often classified 4wd versions of other body styles as an MPV as well.)
</div>
===Line type===
The '''line type''' is specified in the '''<u>fourth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|STD/DL/GL/GLF/GL-10/RX/Loyale/Brat
|-
|A
|XT/XT6
|-
|B
|Legacy/Outback/Baja
|-
|C
|SVX
|-
|G
|Subaru Impreza '93-/Impreza WRX '02-'14/XV Crosstrek '13-'15/Crosstrek '16-/Saab 9-2X '05-'06
|-
|K
|Justy '87-'94 & '95 in Canada
|-
|S
|Forester
|-
|V
|WRX '15-
|-
|V
|Levorg (2nd gen. known as WRX Sportswagon in Australia & WRX wagon in S.E. Asia) (Not sold in North America)
|-
|W
|B9 Tribeca/Tribeca
|-
|W
|Ascent
|-
|Z
|Subaru BRZ/Scion FR-S/Toyota 86/Toyota GR86
|}
A also indicated Restraint type for 1981-1986 models. A meant Manual seatbelts.
</div>
===Body style===
The '''body style''' is specified in the '''<u>fifth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|'87-'94 Justy 3-Door
|-
|A
|'15-'21 WRX, WRX STi sedan (1st gen.)
|-
|B
|'81-'84 DL/GL 4-door sedan (2nd gen.)
|-
|B
|'22- WRX sedan (2nd gen.)
|-
|C
|'85-'93 DL/GL/GL-10/RX/Turbo/Loyale sedan (3rd gen.)
|-
|C
|'90-'94 Legacy sedan (1st gen.)
|-
|C
|'93-'01 Impreza sedan (1st gen.)
|-
|C
|'13-'20 BRZ coupe (1st gen.)
|-
|D
|'90-'94 Justy 5-Door
|-
|D
|'95-'99 Legacy sedan, '97-'99 Legacy SUS (2nd gen. Legacy)
|-
|D
|'02-'07 Impreza sedan, Impreza WRX sedan (2nd gen.)
|-
|D
|'22- BRZ coupe (2nd gen.)
|-
|E
|'00-'04 Legacy sedan, Outback sedan (3rd gen. Legacy)
|-
|E
|'08-'11 Impreza sedan, '08-'10 Impreza WRX sedan (3rd gen.)
|-
|F
|'81-'89 STD/DL/GL 3-door hatchback (2nd gen.)
|-
|F
|'93-'01 Impreza wagon, '95-'01 Impreza Outback Sport (1st gen.)
|-
|F
|'94 Legacy GT wagon [raised-roof] (1st gen.)
|-
|F
|Wagon: Forester (1st gen.) '98-'02
|-
|G
|'86-'90 DL/GL/RX/Turbo/Loyale 3-door coupe (3rd gen.)
|-
|G
|'96-'99 Legacy Outback wagon [raised-roof] (2nd gen. Legacy)
|-
|G
|'02-'07 Impreza wagon, Impreza WRX wagon, Impreza Outback Sport (2nd gen.), '05-'06 Saab 9-2X
|-
|G
|Wagon: Forester (2nd gen.) '03-'08
|-
|H
|'00-'04 Legacy wagon, Outback wagon (3rd gen. Legacy)
|-
|H
|'08-'11 Impreza 5-door hatchback, '08-'11 Impreza Outback Sport, '08-'10 Impreza WRX 5-door hatchback (3rd gen.)
|-
|H
|Wagon: Forester (3rd gen.) '09-'13
|-
|J
|'90-'94 Legacy wagon [non-raised-roof] (1st gen.)
|-
|J
|'12-'16 Impreza sedan (4th gen.)
|-
|J
|Wagon: Forester (4th gen.) '14-'18
|-
|K
|'89-'90 GL/GL-10/Turbo/Loyale Touring wagon [raised roof] (3rd gen.)
|-
|K
|'95-'99 Legacy wagon [non-raised-roof] (2nd gen.)
|-
|K
|'17-'23 Impreza sedan (5th gen.)
|-
|K
|Wagon: Forester (5th gen.) '19-'24, Forester Wilderness '22-'25
|-
|L
|'05-'09 Legacy sedan, '05-'07 Outback sedan (4th gen. Legacy)
|-
|L
|Wagon: Forester (6th gen.) '25-, Forester Wilderness '26-
|-
|M
|'81-'84 DL/GL 4-door wagon (2nd gen.)
|-
|M
|'95-'01 Impreza coupe (1st gen.)
|-
|M
|'10-'14 Legacy sedan (5th gen.)
|-
|M
|'19- Ascent (1st gen.)
|-
|M
|Levorg wagon (1st gen.) (Not sold in North America)
|-
|N
|'85-'94 DL/GL/GL-10/Turbo/Loyale wagon (3rd gen.)
|-
|N
|'13-'16 Scion FR-S, '17-'20 Toyota 86, '22- Toyota GR86 coupe
|-
|N
|'15-'19 Legacy sedan (6th gen.)
|-
|N
|Levorg wagon (WRX Sportswagon in Australia/WRX wagon in S.E. Asia) (2nd gen.) (Not sold in North America)
|-
|P
|'05-'07 (& '08-'09 in Canada) Legacy wagon, '05-'09 Outback wagon (4th gen. Legacy)
|-
|P
|'12-'16 Impreza 5-door hatchback (4th gen.), '13-'15 XV Crosstrek, '16-'17 Crosstrek (1st gen.)
|-
|R
|Brat 1981 (1st gen.)
|-
|R
|'08-'14 Impreza WRX STi 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'11-'14 Impreza WRX 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'10-'14 Outback wagon
|-
|S
|'15-'19 Outback Wagon
|-
|T
|Brat 1982-1985 (2nd gen.)
|-
|T
|'03-'06 Baja
|-
|T
|'17-'23 Impreza 5-door hatchback (5th gen.), '18-'23 Crosstrek (2nd gen.)
|-
|T
|'20-'25 Outback Wagon
|-
|U
|Brat 1986-1987 (2nd gen.)
|-
|U
|'24- Impreza 5-door hatchback (6th gen.), '24- Crosstrek (3rd gen.)
|-
|U
|'26- Outback
|-
|V
|'11-'14 Impreza WRX, WRX STi sedan [widebody] (3rd gen.)
|-
|W
|'81-'84 DL/GL/GLF 2-door hardtop coupe (2nd gen.)
|-
|W
|'20-'25 Legacy sedan (7th gen.)
|-
|X
|'85-'91 XT/XT6 coupe
|-
|X
|'92-'97 SVX coupe
|-
|X
|'06-'07 B9 Tribeca, '08-'14 Tribeca
|}
</div>
===Engine type===
The '''engine type''' is specified in the '''<u>sixth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable"
|+Position 6
!VIN code
!Engine
!Application
|-
|A
|2.0L DOHC, 16-valve FA20D flat-4 (Toyota 4U-GSE).<br> Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '13-'20, Toyota Scion FR-S '13-'16, Toyota 86 '17-'20
|-
|A
|2.0L DOHC, 16-valve FB20B flat-4. MPI. Dual VVT.
|Subaru Impreza '12-'16 (except WRX models), XV Crosstrek '13-'15,<br> Crosstrek '16-'17
|-
|A
|2.0L DOHC, 16-valve FB20D flat-4. Direct injection. Dual VVT.
|Subaru Impreza '17-'23, Impreza Base '24-'25, Sport '24-'26,<br> Crosstrek Base '18-'25, Premium '18-'24, Limited '18-'20
|-
|A
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '19-'24, Forester Wilderness '22-'25, Legacy '20-'25,<br> Outback '20-'25
|-
|A
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Ascent '19-'26, WRX '22-'26
|-
|B
|2.0L DOHC, 16-valve FB20X flat-4 + 1 electric motor.<br> Nickel-metal hydride Battery Pack. MPI. Dual VVT.
|Subaru XV Crosstrek Hybrid '14-'15, Crosstrek Hybrid '16
|-
|B
|2.4L DOHC, 16-valve FA24D flat-4. Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '22-'26, Toyota GR86 '22-'26
|-
|D
|2.0L DOHC, 16-valve FB20V flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Crosstrek Hybrid ([[w:PHEV|PHEV]]) '19-'23
|-
|D
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '25 (except Wilderness), '26
|-
|G
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Legacy XT '20-'25, Legacy Sport '23-'25,<br> Outback XT '20-'25, Outback Wilderness '22-'25
|-
|H
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Impreza RS '24-'26,<br> Crosstrek Sport '21-'26, Limited '21-'26, Wilderness '24-'26, Premium '25-'26, Base model '26-
|-
|P
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|R
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|S
|2.5L DOHC, 16-valve FB25D flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Forester Hybrid '25-'26, Crosstrek Hybrid '26-
|-
|1
|2.0L DOHC, 16-valve turbo/intercooled FA20F flat-4. Direct injection. Dual VVT.
|Subaru WRX '15-'21
|-
|2
|1.6L OHV, 8-valve EA71 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru Standard Hatchback 2wd '81-'87, DL Hatchback, 2-d Hardtop, 4-d Sedan 2wd '81-'84,<br> GL Hatchback 2wd w/man. trans. '86-'87
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI.
|Subaru Impreza (all models) '93-'94, Impreza Base, L 1.8, Outback Sport 1.8 '95
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI. AWD.
|Subaru Impreza Brighton '96-'97
|-
|2
|2.0L DOHC, 16-valve turbo/intercooled EJ205 flat-4. MPI.
|Subaru Impreza WRX '02-'05, Saab 9-2X Aero '05
|-
|2
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi '15-'21, STi S209 '19
|-
|3
|3.3L DOHC, 24-valve EG33 flat-6. MPI.
|Subaru SVX '92-'95
|-
|3
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. FWD.
|Subaru Legacy L '96
|-
|3
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi Type RA '18
|-
|4
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru DL Wagon 2wd '81-'84, GL 2-d Hardtop 2wd '83-'84, GL 4-d Sedan, Wagon 2wd '81-'84,<br> GLF 2-d Hardtop 2wd '81-'82, GL-10 2-d Hardtop, 4-d Sedan '83-'84, GL-10 Wagon '83,<br> GL Hatchback 2wd '81-'85, GL Hatchback 2wd w/auto. trans. '86-'87, GL Hatchback 2wd '88-'89
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 2WD.
|Subaru DL 3-d coupe 2wd '86, DL sedan, wagon 2wd '85-'86, GL sedan, wagon 2wd '85,<br> GL 3-d coupe, sedan, wagon 2wd w/man. trans. '86
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 2WD.
|Subaru DL 3-d coupe, sedan, wagon 2wd '87-'89, GL 3-d coupe, sedan, wagon 2wd w/auto. trans. '86, GL 3-d coupe, sedan, wagon 2wd '87-'89, GL-10 sedan, wagon 2wd '86-'88, Loyale 2wd '90-'93
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. MPI. 2WD.
|Subaru GL-10 sedan, wagon 2wd '85, XT coupe 2wd '85-'91
|-
|4
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 2WD.
|Subaru GL Turbo 2wd 3-d coupe '87, GL Turbo 2wd sedan '87, GL Turbo 2wd wagon '87,<br> GL-10 Turbo 2wd sedan '86-'89, GL-10 Turbo 2wd wagon '86-'89, Loyale Turbo 2wd '90,<br> XT coupe Turbo 2wd '85-'87
|-
|4
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. AWD.
|Subaru Impreza L '96-'01, LX '96, Impreza Outback Sport '96-'01,<br> Legacy Brighton, L '96-'99, LS '96, Outback '96
|-
|5
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 4WD. (Some models had 1-bbl. carb. in '82)
|Subaru DL Wagon 4wd '81-'84, GL 4-d Sedan 4wd '84, GL Wagon 4wd '81-'84,<br> Standard Hatchback 4wd '81, DL Hatchback 4wd '81, GL Hatchback 4wd '81-'89,<br> Brat DL 4wd '81-'83, Brat GL 4wd '81-'87
|-
|5
|1.8L OHV, 8-valve turbo EA81T flat-4. MPI. 4WD.
|Subaru Turbo 2-d Hardtop 4wd '84, Turbo Wagon 4wd '83-'84, Brat Turbo 4wd '83-'84
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 4WD.
|Subaru DL wagon 4wd '85-'86, DL wagon 4wd '87 (49-state version), GL sedan, wagon 4wd '85,<br> GL 3-d coupe, sedan, wagon 4wd '86, GL 3-d coupe, sedan, wagon 4wd '87 (49-state version)
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 4WD.
|Subaru DL wagon 4wd '87 (CA version), '88-'89;<br> GL 3-d coupe, sedan, wagon 4wd '87 (CA version), '88-'89; Loyale 4wd '90-'94
|-
|5
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD.
|Subaru GL Turbo 4wd 3-d coupe '86-'87, RX Turbo 4wd 3-d coupe '87-'89, RX Turbo 4wd sedan '85-'88, Turbo 4wd wagon '85, GL Turbo 4wd wagon '87-'89, GL-10 Turbo 4wd wagon w/man. trans. '86-'88, GL-10 Turbo 4wd wagon '89, Loyale Turbo 4wd '90
|-
|6
|2.2L SOHC, 16-valve EJ22 flat-4. MPI.
|Subaru Impreza L 2.2 '95, LX '95, Impreza Outback Sport 2.2 '95, Legacy '90-'95
|-
|6
|2.2L SOHC, 16-valve turbo EJ22T flat-4. MPI.
|Subaru Legacy Sport Sedan '91-'94, [LE] Touring Wagon '92-'94
|-
|6
|2.5L DOHC, 16-valve EJ25D flat-4 (Phase I). MPI.
|Subaru Impreza 2.5RS '98, Forester '98, Legacy 2.5GT '96-'99, LSi '96-'97,<br> SUS '97-'99, Outback '96-'99
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4 (Phase II). MPI.
|Subaru Impreza 2.5RS '99-'01, Impreza (except WRX) '02-'05,<br> Impreza Outback Sport '02-'05, Forester '99-'05, Legacy '00-'05,<br> Outback '00-'05, Baja Base '03, Sport '03-'06, Saab 9-2X Linear '05
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4. MPI. Intake VVL.
|Subaru Impreza (except WRX) '06-'11, Subaru Impreza Outback Sport '06-'11, Forester '06-'10, Legacy '06-'09, Outback '06-'09, Saab 9-2X 2.5i '06
|-
|6
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Forester XT '04-'10, Legacy GT '05-'09, Outback XT '05-'09,<br> Baja Turbo '04-'06
|-
|7
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 2wd.
|Subaru Justy '87-'89, Justy DL '90-'92
|-
|7
|1.2L SOHC, 9-valve EF12 I3. MPI. 2wd.
|Subaru Justy GL '90-'94, Justy DL '93-'94
|-
|7
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD w/air suspension.
|Subaru Turbo 4wd sedan '85, GL-10 Turbo 4wd sedan '86-'89, GL-10 Turbo 4wd wagon w/auto. trans. '86-'89, XT coupe Turbo 4wd '85-'89
|-
|7
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Impreza WRX '06-'14, Impreza WRX STi '04-'07, Impreza 2.5GT '09-'10,<br> Saab 9-2X Aero '06
|-
|8
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 4wd.
|Subaru Justy GL 4wd '88-'89
|-
|8
|1.2L SOHC, 9-valve EF12 I3. MPI. 4wd.
|Subaru Justy GL 4wd '90-'94
|-
|8
|2.7L SOHC, 12-valve ER27 flat-6. MPI. FWD.
|Subaru XT6 '88-'91
|-
|8
|3.3L DOHC, 24-valve EG33 flat-6. MPI. AWD.
|Subaru SVX '96-'97
|-
|8
|3.0L DOHC, 24-valve EZ30D flat-6. MPI. Intake VVT & VVL.
|Subaru Legacy 3.0R '08-'09, Outback H6-3.0 '01-'04, Outback 3.0R '05-'09,<br> B9 Tribeca '06-'07
|-
|8
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru Impreza WRX STi '08-'14
|-
|9
|2.7L SOHC, 12-valve ER27 flat-6. MPI. AWD.
|Subaru XT6 '88-'91
|-
|9
|3.6L DOHC, 24-valve EZ36D flat-6. MPI. Dual VVT.
|Subaru Tribeca '08-'14
|}
</div>
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|4
|FB 1600cc DIT AWD 2015+
|-
|D
|2000cc DOHC Turbo Diesel
|}
</div>
===Model===
The '''model''' is identified in the '''<u>seventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|Standard model '81-'87, Loyale RS 3-door coupe (non-Turbo) '90
|-
|1
|Impreza Base model '93-'95, 2.5i '07, 2.5i Special Edition '07, Impreza 2.5i '08-'09, Impreza 2.5i Premium '08, Saab 9-2X Linear '05, Saab 9-2X 2.5i '06
|-
|1
|Legacy 2.5i '05-'08, 2.5i Special Edition '06-'09
|-
|1
|Outback H6-3.0 wagon 35th Anniv. Ed. '04, Outback 2.5i '05-'08, 2.5i Special Edition '06, '09, 2.5i Basic '07, 2.5i L.L. Bean Edition '07-'08
|-
|1
|Forester Base model '98-'99, 2.5X '09
|-
|1
|Tribeca 5-psgr. base model '08-'09
|-
|1
|Baja Base model '03
|-
|2
|DL '81-'89, Loyale (non-Turbo) '90-'94, Brat DL '81-'83, Justy DL '87-'94, XT coupe DL '85-'88
|-
|2
|Impreza L fwd sedan w/man. trans. [w/o opt. power equipment, A/C, & stereo] '93, Impreza L Early '94 (only has driver-side airbag),<br> Impreza Brighton coupe '96-'97, Impreza Brighton wagon - Canada only: '98-'01, Impreza Outback Sport '07, Saab 9-2X Aero '05-'06
|-
|2
|Legacy Base model '90, '95, Legacy Brighton wagon '95-'00, Legacy L 35th Anniv. Ed. '04, Legacy 2.5i Limited '05-'09
|-
|2
|Outback 2.5i Limited wagon '05-'08, 2.5i Limited sedan '06-'07, 2.5i Limited L.L. Bean Edition wagon '07-'08
|-
|2
|SVX L Early '94 (has motorized seatbelts & driver-side airbag)
|-
|2
|B9 Tribeca 5-psgr. '06-'07
|-
|2
|Tribeca 5-psgr. Limited '08-'09, Tribeca 5-psgr. Special Edition '09
|-
|2
|Baja Sport '03-'06
|-
|3
|GL '81-'89, Brat GL '81-'87, Justy GL '87-'94, Justy RS '88-'89, XT coupe GL '85-'89, '91
|-
|3
|Impreza L '94 (has dual airbags), L '95-'01, Outback Sport '95, Impreza Outback Sport Special Edition '07, Impreza Outback Sport '08-'09
|-
|3
|Legacy L '90-'04, Legacy Sun Sport, Alpine Sport, Outdoor, & GT wagons '94, Legacy Outback '95, Legacy L Special Edition '03
|-
|3
|Outback 2.5XT Limited '07-'09
|-
|3
|SVX L '94-'97 (has manual seatbelts & dual airbags)
|-
|3
|Forester L '98-'02, 2.5X '03-'08, Sports 2.5X '07, 2.5X Premium '09
|-
|3
|B9 Tribeca 5-psgr. '06-'07
|-
|3
|Tribeca 5-psgr. Limited w/Navigation '08-'09
|-
|3
|Baja Turbo '04-'06
|-
|4
|GLF '81-'82, GL-10 '85-'89, XT6 coupe '88-'89, '91
|-
|4
|Impreza L "Plus" [L fwd sedan w/man. trans. w/opt. power equipment, A/C, & stereo plus all other Impreza L models] '93,<br> Impreza WRX '07-'08, WRX Limited '07, Impreza 2.5GT '09
|-
|4
|Legacy LS '90, 2.5GT '00-'04, 3.0R '09
|-
|4
|Outback 3.0R sedan '05, 3.0R wagon w/cloth seats '06
|-
|4
|SVX LS '92, '94
|-
|4
|Forester 2.5X L.L. Bean Edition '09, 2.5X Limited '09
|-
|5
|GL Turbo (except '87 4wd wagon) '83-'87, GL-10 Turbo '86-'89, Brat GL Turbo '83-'84, XT coupe GL-10 Turbo '85-'87
|-
|5
|Impreza LS '93-'94, LX '95-'96, 2.5TS '02-'04, Impreza WRX TR '07, Impreza WRX Premium '08
|-
|5
|Legacy LS "Special" '90, Legacy LS '91-'96, Legacy LSi '91-'95, 2.5GT Limited '00-'02, 3.0R Limited '08-'09
|-
|5
|Outback 3.0R VDC Limited wagon '05-'06, 3.0R Limited '09
|-
|5
|SVX LS-L (LS w/Touring Package) '92-'93, SVX LSi Awd '94-'95
|-
|5
|Forester S '98-'02, 2.5XS '03-'05, 2.5X Premium '06-'08, 2.5XT '09
|-
|5
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|RX Turbo '85-'89
|-
|6
|Impreza WRX STi '07, Impreza WRX '09, WRX Premium '09
|-
|6
|Legacy LSi '96-'97, Outback base model '00-'02, Outback 'Audio Edition' (Premium Audio instead of All-Weather Pkg.) wagon '03
|-
|6
|Outback 3.0R L.L. Bean Edition wagon '05-'08, 3.0R L.L. Bean Edition sedan '06-'07, 2.5i Limited '09
|-
|6
|SVX LSi '96-'97
|-
|6
|Forester Sports 2.5X '08, Sports 2.5XT '08, Forester 2.5XT Limited '09
|-
|6
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|Tribeca 7-psgr. base model '08-'09
|-
|7
|GL Turbo 4wd wagon '87-'89, Loyale Turbo '90, Loyale RS Turbo 3-door coupe '90
|-
|7
|Impreza 2.5RS '98-'05, 2.5i '06, Impreza WRX STi Limited '07
|-
|7
|Legacy Sport Sedan '91-'94, Legacy [LE] Touring Wagon '92-'94, Legacy 2.5GT '96-'99, Legacy 2.5GT Limited '98-'99, Outback w/All-Weather Pkg. '00-'02, Outback base model '03-'04, Legacy 2.5GT Limited '05-'09, Legacy 2.5GT Limited spec.B '06
|-
|7
|Outback 2.5XT Limited '05-'06
|-
|7
|Forester 2.5XS L.L. Bean Edition '05, 2.5X L.L. Bean Edition '06-'08
|-
|7
|Tribeca 7-psgr. Limited '08-'09, Tribeca 7-psgr. Special Edition '09
|-
|8
|Impreza Outback Sport '96-'06, Impreza Outback Sport Special Edition '05-'06
|-
|8
|Legacy 2.5GT '05
|-
|8
|Legacy Outback '96-'99, Legacy Outback Limited '97-'99, Legacy SUS '97-'99, Outback Limited wagon '00-'04, Outback Limited sedan '00-'04, Outback 2.5XT '05-'06
|-
|8
|Tribeca 7-psgr. Limited w/Navigation '08-'09
|-
|9
|Impreza WRX '02-'06, WRX TR '06, WRX Limited '06, Impreza WRX STi '08-'09
|-
|9
|Legacy L Awd wagon rhd Postal Vehicle '95-'99, Outback H6-3.0 VDC wagon '01-'04, Outback H6-3.0 wagon w/cloth seats '03, Outback H6-3.0 sedan '02-'04, Outback H6-3.0 VDC sedan '02-'04, Legacy 2.5GT spec.B '07-'09
|-
|9
|Forester 2.5XT '04-'05, 2.5XT Limited '06-'08, Sports 2.5XT '07
|-
|0
|Impreza WRX STi '04-'06, Impreza 2.5i Premium '09
|-
|0
|Legacy 2.5i '09
|-
|0
|Outback H6-3.0 L.L. Bean Edition wagon '01-'04, Outback base model '08, Outback 2.5i '09
|-
|0
|Tribeca 7-psgr. Limited w/Navigation & Rear-seat DVD Entertainment System '08-'09
|-
|}
</div>
rhd=right-hand drive
===Restraint Type (Passenger) or Weight Class (MPV)===
The '''restraint type''', for passenger vehicles, or the weight class (Gross Vehicle Weight Rating), for MPVs & trucks, is specified in the '''<u>eighth</u>''' character of the Subaru VIN. Beginning in 2010, MPVs include both '''restraint type''' and weight class (Gross Vehicle Weight Rating).
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|No Passive Restraint
|-
|2
|Automatic Seat Belt w/o Airbag
|-
|3
|Automatic Seat Belt w/Driver Airbag (1992-1994 Legacy, SVX)
|-
|4
|Manual Seat Belt w/Driver Airbag (1993-1994 Impreza)
|-
|5
|Manual Seat Belt w/Driver/Passenger Airbags
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and Side Airbags. (Includes '05-'06 Saab 9-2X.)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front-row Side Curtain Airbags <br> ('13-'20 BRZ, '13-'16 Scion FR-S, '17-'20 Toyota 86)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front-row Side Curtain Airbags & Driver's Knee Airbag <br> ('22-'26 BRZ, '22-'26 Toyota GR86)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front to rear Side Curtain Airbags <br> ('10-'11 Impreza, '10-'14 Impreza WRX, '10-'14 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('12-'23 Impreza, '15-'26 WRX)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags ('15-'19 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Legacy)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Impreza)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Impreza)
|-
|A
|Class A (GVWR 3000 lbs. or less)
|-
|B
|Class B (GVWR 3001-4000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.)
|-
|6
|Class C (GVWR 4001-5000 lbs.) (For '09 Forester only)
|-
|D
|Class D (GVWR 5001-6000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags <br> ('10-'13 Forester, '10-'14 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('13-'15 XV Crosstrek, '16-'23 Crosstrek, '14-'24 Forester, '25 Forester Wilderness)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags <br> ('15-'19 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Outback, '24-'25 Crosstrek [Japanese-built models], '25 Forester [except Wilderness & Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Crosstrek [US-built models], '26- Forester [except Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek)
|-
|7
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags <br> ('10-'14 Tribeca)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags for all 3 rows & Driver's Knee Airbag <br> ('19-'26 Ascent)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'26 Outback, '25 Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek Hybrid)
|}
</div>
The '''Check Digit''' is identified in the '''<u>ninth</u>''' character of the Subaru VIN
The '''Model Year''' is identified in the '''<u>tenth</u>''' character of the Subaru VIN
Letters began being reused in 2010.
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|2001
|-
|2
|2002
|-
|3
|2003
|-
|4
|2004
|-
|5
|2005
|-
|6
|2006
|-
|7
|2007
|-
|8
|2008
|-
|9
|2009
|-
|A
|1980, 2010
|-
|B
|1981, 2011
|-
|C
|1982, 2012
|-
|D
|1983, 2013
|-
|E
|1984, 2014
|-
|F
|1985, 2015
|-
|G
|1986, 2016
|-
|H
|1987, 2017
|-
|I
|not used
|-
|J
|1988, 2018
|-
|K
|1989, 2019
|-
|L
|1990, 2020
|-
|M
|1991, 2021
|-
|N
|1992, 2022
|-
|P
|1993, 2023
|-
|R
|1994, 2024
|-
|S
|1995, 2025
|-
|T
|1996, 2026
|-
|V
|1997
|-
|W
|1998
|-
|X
|1999
|-
|Y
|2000
|}
</div>
===Plants and transmission type===
The '''assembly plant''' and '''transmission type''' is specified in the '''<u>eleventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Plant
!Transmission
|-
|1
|SIA
|FWD 5MT ('90-'96 Legacy)
|-
|1
|SIA
|Full-time AWD 5MT ('17-'23 Impreza)
|-
|1
|SIA
|Full-time AWD 6MT ('10-'14 & in Canada: '15-'17 Legacy, Outback)
|-
|2
|SIA
|Full-time AWD 5AT ('10-'14 Legacy 3.6R, Outback 3.6R)
|-
|3
|SIA
|Full-time AWD 6MT ('07-'09 Legacy GT spec.B).
|-
|3
|SIA
|Full-time AWD CVT ('10-'25 Legacy 2.5, Outback 2.5, '15-'19 Legacy 3.6R, Outback 3.6R,<br> '20-'25 Legacy 2.4T, Outback 2.4T, '17-'23 Impreza, '19-'26 Ascent, '24-'26 Crosstrek, '26- Forester, '26- Forester Hybrid)
|-
|4
|SIA
|Full-time AWD 5AT ('05-'09 Legacy, Outback, '06-'07 B9 Tribeca, '08-'14 Tribeca)
|-
|5
|SIA
|Full-time AWD 4-spd. Automatic w/Sport Shift ('03-'04 Legacy GT)
|-
|6
|SIA
|Full-time AWD 5MT
|-
|7
|SIA
|Full-time AWD 4EAT
|-
|8
|SIA
|Full-time AWD 4EAT ('95-'99 Legacy wagon RHD Postal vehicle)
|-
|9
|SIA
|FWD 4EAT ('90-'96 Legacy)
|-
|A
|FHI
|FWD 4MT
|-
|B
|FHI
|FWD 5MT
|-
|C
|FHI
|FWD 3AT ('81-'89 compact models, '90-'93 Loyale). FWD 4AT ('88-'91 XT/XT6).<br> FWD ECVT ('89-'93 Justy).
|-
|D
|FHI
|On-demand 4WD 4MT ('81-'84), On-demand 4WD 5MT ('85-'94)
|-
|E
|FHI
|4MT Dual Range 4wd ('81-'84, '85-'89 Hatchback, '85-'87 Brat).<br> 5MT Dual Range 4wd '85-'89 (excluding Hatchback & Brat)
|-
|F
|FHI
|On-demand 4WD 3AT ('83-'89 compact models, '90-'94 Loyale, '85-'87 XT coupe GL-10 Turbo 4wd).<br> On-demand 4WD ECVT ('90-'93 Justy).
|-
|G
|FHI
|Full-time AWD 5MT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 5MT ('12-'16 Impreza, '12-'14 Impreza WRX, '13-'15 XV Crosstrek, '16-'17 Crosstrek,<br> '12-'13 Forester)
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('14-'18 Forester, '18-'23 Crosstrek).
|-
|H
|FHI
|Full-time AWD 4EAT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 4EAT ('12-'13 Forester).
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('12-'16 Impreza, '13-'15 XV Crosstrek, '14-'15 XV Crosstrek Hybrid,<br> '16-'25 Crosstrek, '16 Crosstrek Hybrid, '19-'23 Crosstrek Hybrid (PHEV), '14-'25 Forester).
|-
|K
|FHI
|FWD 4EAT
|-
|L
|FHI
|Full-time AWD 6MT ('04-'11 Impreza WRX STi)
|-
|L
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('12-'14 Impreza WRX STi)
|-
|P
|FHI
|Full-time AWD 4EAT ('91-'94 Legacy wagon RHD Postal vehicle)
|-
|Y
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('26- Outback)
|-
|1
|FHI
|RWD 6MT ('13 BRZ, Scion FR-S)
|-
|2
|FHI
|RWD 6AT ('13 BRZ, Scion FR-S)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6AT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6MT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD CVT ('14-'16, '24-'26 Impreza, '14-'15 XV Crosstrek, '16-'25 Crosstrek, '26- Crosstrek Hybrid, '15-'26 WRX)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 5MT ('14-'16 Impreza, '14-'15 XV Crosstrek, '16-'17 Crosstrek)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 6MT ('15-'26 WRX, '15-'21 WRX STi, '18-'23 Crosstrek)
|}
</div>
** SIA = Subaru-Isuzu Automotive (now known as Subaru of Indiana Automotive), Lafayette, Indiana
** FHI = Fuji Heavy Industries, Gunma prefecture, Japan
===Positions 12–17, Serial Number===
The '''Vehicle Production Sequence''' number is specified in the '''<u>twelfth - seventeenth</u>''' characters of the Subaru VIN
** 002001 and after - Touring Wagon ('89), Loyale Touring wagon ('90)
** 002001 - 199999 - Impreza sedan ('12-'16), Impreza WRX sedan ('12-'14)
** 002001 - 199999 - Legacy sedan ('12-'19)
** 002001 - 099999 - Legacy sedan ('20-'25)
** 002001 and after - Forester, Forester Hybrid ('26-)
** 050001 - 059999 - Saab 9-2X ('05-'06)
** 100000 and after - Hatchback
** 100000 and after - SVX
** 100000 and after - Legacy Sedan SUS (Jan 98 - May 98)
** 100000 and after - Baja
** 100001 - 299999 - Outback wagon ('20-'25)
** 200001 and after - 4-dr sedan ('81-'89), Loyale 4-dr sedan ('90-'93)
** 200001 and after - Legacy Sedan '96-'08, Outback Sedan '00-'07
** 200001 - 399999 - Impreza hatchback ('12-'16, '24-'26), Impreza WRX hatchback ('12-'14), XV Crosstrek ('13-'15), Crosstrek ('16-'23)
** 200001 - 399999 - Crosstrek [Japan-built] ('24-'25), Crosstrek Hybrid [Japan-built] ('26-)
** 200001 - 399999 - Outback wagon ('12-'19)
** 210001 and after - Legacy Sedan '95, '09-'11
** 300001 and after - Hardtop coupe ('81-'84)
** 300001 and after - XT/XT6 coupe ('85-'91)
** 300001 and after - Legacy Station Wagon '96-'07; Outback wagon '05-'08
** 310001 and after - Legacy Station Wagon '95; Outback wagon '09-'11
** 370001 and after - Legacy Outback wagon '96
** 400001 and after - Station Wagon ('81-'89), Loyale station wagon ('90-'94)
** 400001 and after - Impreza Coupe ('95-'01)
** 400001 and after - B9 Tribeca ('06-'07)/Tribeca ('08-'11)
** 400001 - 599999 - Forester ('12-'25)
** 400001 - 599999 - Tribeca ('12-'14); Ascent ('19-'26)
** 450001 and after - Outback ('26-)
** 500001 and after - Brat
** 500001 and after - Impreza Sedan ('93-'11)
** 600001 and after - Legacy sedan ('90-'93: All, '94: Japanese-built)
** 640001 and after - Legacy sedan ('94: US-built)
** 600001 and after - Outback wagon '97-'04
** 600001 - 699999 - BRZ ('13-'19)
** 600001 - 699999 - Impreza Sedan ('17-'23)
** 700001 and after - Justy 3-d ('87-'94)
** 700001 and after - Forester ('98-'11)
** 700001 - 799999 - Scion FR-S ('13-'16), Toyota 86 ('17-'19)
** 700001 - 749999 - BRZ ('20, '22-'26)
** 700001 - 899999 - Impreza 5-door hatchback ('17-'23)
** 700001 - 899999 - Crosstrek [US-built] ('24-'26)
** 750001 and after - Justy 5-d ('90-'94)
** 750001 - 799999 - Toyota 86 ('20), Toyota GR86 ('22-'26)
** 800001 and after - 3-door coupe ('86-'89), Loyale 3-door coupe ('90)
** 800001 and after - Impreza Sports Wagon ('93-'07); Impreza 5-door hatchback ('08-'11)
** 800001 - 899999 - WRX ('15-'26)
** 800001 - 999999 - Crosstrek [Japan-built] ('24)
** 900001 and after - Legacy wagon ('90-'93: All, '94: Japanese-built)
** 940001 and after - Legacy wagon ('94: US-built)
** 990001 and after - Legacy GT wagon w/stepped roof ('94: US-built)
==External links==
Online [http://www.vindecoderz.com/EN/Subaru Subaru VIN decoder]
Online [www.auto-vin-decoder.com Universal VIN decoder]
{{BookCat}}
rxackxflqr1uyfw73j5ju06iy04i93n
4672283
4672282
2026-09-25T09:01:43Z
JustTheFacts33
3434282
/* Positions 12–17, Serial Number */
4672283
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This chart is applicable to Subaru models made for North America.
Subaru uses a '''17-character VIN''' format and code for vehicles sold in the United States. These rules also apply to the Saab 9-2X, a badge-engineered Subaru Impreza wagon and to the Scion FR-S/Toyota 86/Toyota GR86, a twin of the Subaru BRZ.
For Subaru Uncharted, Solterra, and Trailseeker, see the Toyota VIN page: [[Vehicle Identification Numbers (VIN codes)/Toyota/VIN Codes]].
==Subaru VIN code==
The following sample is the sequence and meaning of each character in the Subaru VIN:
<div class=center>
<table class="wikitable" border="1"><caption></caption><tr>
<th>Position</th>
<th>Sample</th>
<th>Description</th>
</tr><tr>
<td>1</td>
<td>J</td>
<td rowspan=3>[[#Subaru WMIs|World Manufacturer Identifier]]</td>
</tr><tr>
<td>2</td>
<td>F</td>
</tr><tr>
<td>3</td>
<td>1</td>
</tr><tr>
<td>4</td>
<td>C</td>
<td>[[#Line types|Line type]]</td>
</tr><tr>
<td>5</td>
<td>X</td>
<td>[[#Body styles|Body style]]</td>
</tr><tr>
<td>6</td>
<td>8</td>
<td>[[#Engine types|Engine type]]</td>
</tr><tr>
<td>7</td>
<td>6</td>
<td>[[#Models|Model identifier]]</td>
</tr><tr>
<td>8</td>
<td>5</td>
<td>[[#Restraint types|Restraint type]]</td>
</tr><tr>
<td>9</td>
<td>9</td>
<td>[[../../Check digit/]]</td>
</tr><tr>
<td>10</td>
<td>T</td>
<td>[[../../Model year/]]</td>
</tr><tr>
<td>11</td>
<td>H</td>
<td>[[#Plants and transmission types|Plant of manufacture & transmission type]]</td>
</tr><tr>
<td>12</td>
<td>1</td>
<td rowspan=6>Sequential production number
</tr><tr>
<td>13</td>
<td>0</td>
</tr><tr>
<td>14</td>
<td>0</td>
</tr><tr>
<td>15</td>
<td>2</td>
</tr><tr>
<td>16</td>
<td>1</td>
</tr><tr>
<td>17</td>
<td>6</td>
</table>
</div>
<div class="center"><small>The above serial number describes the following vehicle built in Japan by Fuji Heavy Industries:</small></div>
<div class="center"><small>1996 Subaru Alcyone SVX, 3.3L EG33 engine, AWD 4EAT transmission, manual seat belts<br />with driver / passenger airbags. The 216th vehicle produced during the 1996 model year.</small></div>
===Subaru WMIs===
The '''WMI''' is specified in the '''<u>first three</u>''' characters of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!WMI
!Country
!Description
!Vehicle Types
|-
|JF1
|Japan
|Fuji Heavy Industries/Subaru Corp. (Includes Scion FR-S/Toyota 86/Toyota GR86.)
|Passenger Vehicle
|-
|JF2
|Japan
|Fuji Heavy Industries/Subaru Corp.
|MPV
|-
|JF3
|Japan
|Fuji Heavy Industries
|truck
|-
|JF4
|Japan
|Fuji Heavy Industries-built Saab (9-2X)
|Passenger Vehicle
|-
|MMR
|Thailand
|Tan Chong Subaru Automotive (Thailand) Ltd.
|
|-
|PLP
|Malaysia
|Tan Chong Motor Assemblies
|
|-
|4S3
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|Passenger Vehicle
|-
|4S4
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|MPV
|}
MPV means Multi-Purpose Vehicle (Normally includes SUV or passenger van. Subaru has often classified 4wd versions of other body styles as an MPV as well.)
</div>
===Line type===
The '''line type''' is specified in the '''<u>fourth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|STD/DL/GL/GLF/GL-10/RX/Loyale/Brat
|-
|A
|XT/XT6
|-
|B
|Legacy/Outback/Baja
|-
|C
|SVX
|-
|G
|Subaru Impreza '93-/Impreza WRX '02-'14/XV Crosstrek '13-'15/Crosstrek '16-/Saab 9-2X '05-'06
|-
|K
|Justy '87-'94 & '95 in Canada
|-
|S
|Forester
|-
|V
|WRX '15-
|-
|V
|Levorg (2nd gen. known as WRX Sportswagon in Australia & WRX wagon in S.E. Asia) (Not sold in North America)
|-
|W
|B9 Tribeca/Tribeca
|-
|W
|Ascent
|-
|Z
|Subaru BRZ/Scion FR-S/Toyota 86/Toyota GR86
|}
A also indicated Restraint type for 1981-1986 models. A meant Manual seatbelts.
</div>
===Body style===
The '''body style''' is specified in the '''<u>fifth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|'87-'94 Justy 3-Door
|-
|A
|'15-'21 WRX, WRX STi sedan (1st gen.)
|-
|B
|'81-'84 DL/GL 4-door sedan (2nd gen.)
|-
|B
|'22- WRX sedan (2nd gen.)
|-
|C
|'85-'93 DL/GL/GL-10/RX/Turbo/Loyale sedan (3rd gen.)
|-
|C
|'90-'94 Legacy sedan (1st gen.)
|-
|C
|'93-'01 Impreza sedan (1st gen.)
|-
|C
|'13-'20 BRZ coupe (1st gen.)
|-
|D
|'90-'94 Justy 5-Door
|-
|D
|'95-'99 Legacy sedan, '97-'99 Legacy SUS (2nd gen. Legacy)
|-
|D
|'02-'07 Impreza sedan, Impreza WRX sedan (2nd gen.)
|-
|D
|'22- BRZ coupe (2nd gen.)
|-
|E
|'00-'04 Legacy sedan, Outback sedan (3rd gen. Legacy)
|-
|E
|'08-'11 Impreza sedan, '08-'10 Impreza WRX sedan (3rd gen.)
|-
|F
|'81-'89 STD/DL/GL 3-door hatchback (2nd gen.)
|-
|F
|'93-'01 Impreza wagon, '95-'01 Impreza Outback Sport (1st gen.)
|-
|F
|'94 Legacy GT wagon [raised-roof] (1st gen.)
|-
|F
|Wagon: Forester (1st gen.) '98-'02
|-
|G
|'86-'90 DL/GL/RX/Turbo/Loyale 3-door coupe (3rd gen.)
|-
|G
|'96-'99 Legacy Outback wagon [raised-roof] (2nd gen. Legacy)
|-
|G
|'02-'07 Impreza wagon, Impreza WRX wagon, Impreza Outback Sport (2nd gen.), '05-'06 Saab 9-2X
|-
|G
|Wagon: Forester (2nd gen.) '03-'08
|-
|H
|'00-'04 Legacy wagon, Outback wagon (3rd gen. Legacy)
|-
|H
|'08-'11 Impreza 5-door hatchback, '08-'11 Impreza Outback Sport, '08-'10 Impreza WRX 5-door hatchback (3rd gen.)
|-
|H
|Wagon: Forester (3rd gen.) '09-'13
|-
|J
|'90-'94 Legacy wagon [non-raised-roof] (1st gen.)
|-
|J
|'12-'16 Impreza sedan (4th gen.)
|-
|J
|Wagon: Forester (4th gen.) '14-'18
|-
|K
|'89-'90 GL/GL-10/Turbo/Loyale Touring wagon [raised roof] (3rd gen.)
|-
|K
|'95-'99 Legacy wagon [non-raised-roof] (2nd gen.)
|-
|K
|'17-'23 Impreza sedan (5th gen.)
|-
|K
|Wagon: Forester (5th gen.) '19-'24, Forester Wilderness '22-'25
|-
|L
|'05-'09 Legacy sedan, '05-'07 Outback sedan (4th gen. Legacy)
|-
|L
|Wagon: Forester (6th gen.) '25-, Forester Wilderness '26-
|-
|M
|'81-'84 DL/GL 4-door wagon (2nd gen.)
|-
|M
|'95-'01 Impreza coupe (1st gen.)
|-
|M
|'10-'14 Legacy sedan (5th gen.)
|-
|M
|'19- Ascent (1st gen.)
|-
|M
|Levorg wagon (1st gen.) (Not sold in North America)
|-
|N
|'85-'94 DL/GL/GL-10/Turbo/Loyale wagon (3rd gen.)
|-
|N
|'13-'16 Scion FR-S, '17-'20 Toyota 86, '22- Toyota GR86 coupe
|-
|N
|'15-'19 Legacy sedan (6th gen.)
|-
|N
|Levorg wagon (WRX Sportswagon in Australia/WRX wagon in S.E. Asia) (2nd gen.) (Not sold in North America)
|-
|P
|'05-'07 (& '08-'09 in Canada) Legacy wagon, '05-'09 Outback wagon (4th gen. Legacy)
|-
|P
|'12-'16 Impreza 5-door hatchback (4th gen.), '13-'15 XV Crosstrek, '16-'17 Crosstrek (1st gen.)
|-
|R
|Brat 1981 (1st gen.)
|-
|R
|'08-'14 Impreza WRX STi 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'11-'14 Impreza WRX 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'10-'14 Outback wagon
|-
|S
|'15-'19 Outback Wagon
|-
|T
|Brat 1982-1985 (2nd gen.)
|-
|T
|'03-'06 Baja
|-
|T
|'17-'23 Impreza 5-door hatchback (5th gen.), '18-'23 Crosstrek (2nd gen.)
|-
|T
|'20-'25 Outback Wagon
|-
|U
|Brat 1986-1987 (2nd gen.)
|-
|U
|'24- Impreza 5-door hatchback (6th gen.), '24- Crosstrek (3rd gen.)
|-
|U
|'26- Outback
|-
|V
|'11-'14 Impreza WRX, WRX STi sedan [widebody] (3rd gen.)
|-
|W
|'81-'84 DL/GL/GLF 2-door hardtop coupe (2nd gen.)
|-
|W
|'20-'25 Legacy sedan (7th gen.)
|-
|X
|'85-'91 XT/XT6 coupe
|-
|X
|'92-'97 SVX coupe
|-
|X
|'06-'07 B9 Tribeca, '08-'14 Tribeca
|}
</div>
===Engine type===
The '''engine type''' is specified in the '''<u>sixth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable"
|+Position 6
!VIN code
!Engine
!Application
|-
|A
|2.0L DOHC, 16-valve FA20D flat-4 (Toyota 4U-GSE).<br> Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '13-'20, Toyota Scion FR-S '13-'16, Toyota 86 '17-'20
|-
|A
|2.0L DOHC, 16-valve FB20B flat-4. MPI. Dual VVT.
|Subaru Impreza '12-'16 (except WRX models), XV Crosstrek '13-'15,<br> Crosstrek '16-'17
|-
|A
|2.0L DOHC, 16-valve FB20D flat-4. Direct injection. Dual VVT.
|Subaru Impreza '17-'23, Impreza Base '24-'25, Sport '24-'26,<br> Crosstrek Base '18-'25, Premium '18-'24, Limited '18-'20
|-
|A
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '19-'24, Forester Wilderness '22-'25, Legacy '20-'25,<br> Outback '20-'25
|-
|A
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Ascent '19-'26, WRX '22-'26
|-
|B
|2.0L DOHC, 16-valve FB20X flat-4 + 1 electric motor.<br> Nickel-metal hydride Battery Pack. MPI. Dual VVT.
|Subaru XV Crosstrek Hybrid '14-'15, Crosstrek Hybrid '16
|-
|B
|2.4L DOHC, 16-valve FA24D flat-4. Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '22-'26, Toyota GR86 '22-'26
|-
|D
|2.0L DOHC, 16-valve FB20V flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Crosstrek Hybrid ([[w:PHEV|PHEV]]) '19-'23
|-
|D
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '25 (except Wilderness), '26
|-
|G
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Legacy XT '20-'25, Legacy Sport '23-'25,<br> Outback XT '20-'25, Outback Wilderness '22-'25
|-
|H
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Impreza RS '24-'26,<br> Crosstrek Sport '21-'26, Limited '21-'26, Wilderness '24-'26, Premium '25-'26, Base model '26-
|-
|P
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|R
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|S
|2.5L DOHC, 16-valve FB25D flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Forester Hybrid '25-'26, Crosstrek Hybrid '26-
|-
|1
|2.0L DOHC, 16-valve turbo/intercooled FA20F flat-4. Direct injection. Dual VVT.
|Subaru WRX '15-'21
|-
|2
|1.6L OHV, 8-valve EA71 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru Standard Hatchback 2wd '81-'87, DL Hatchback, 2-d Hardtop, 4-d Sedan 2wd '81-'84,<br> GL Hatchback 2wd w/man. trans. '86-'87
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI.
|Subaru Impreza (all models) '93-'94, Impreza Base, L 1.8, Outback Sport 1.8 '95
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI. AWD.
|Subaru Impreza Brighton '96-'97
|-
|2
|2.0L DOHC, 16-valve turbo/intercooled EJ205 flat-4. MPI.
|Subaru Impreza WRX '02-'05, Saab 9-2X Aero '05
|-
|2
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi '15-'21, STi S209 '19
|-
|3
|3.3L DOHC, 24-valve EG33 flat-6. MPI.
|Subaru SVX '92-'95
|-
|3
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. FWD.
|Subaru Legacy L '96
|-
|3
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi Type RA '18
|-
|4
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru DL Wagon 2wd '81-'84, GL 2-d Hardtop 2wd '83-'84, GL 4-d Sedan, Wagon 2wd '81-'84,<br> GLF 2-d Hardtop 2wd '81-'82, GL-10 2-d Hardtop, 4-d Sedan '83-'84, GL-10 Wagon '83,<br> GL Hatchback 2wd '81-'85, GL Hatchback 2wd w/auto. trans. '86-'87, GL Hatchback 2wd '88-'89
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 2WD.
|Subaru DL 3-d coupe 2wd '86, DL sedan, wagon 2wd '85-'86, GL sedan, wagon 2wd '85,<br> GL 3-d coupe, sedan, wagon 2wd w/man. trans. '86
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 2WD.
|Subaru DL 3-d coupe, sedan, wagon 2wd '87-'89, GL 3-d coupe, sedan, wagon 2wd w/auto. trans. '86, GL 3-d coupe, sedan, wagon 2wd '87-'89, GL-10 sedan, wagon 2wd '86-'88, Loyale 2wd '90-'93
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. MPI. 2WD.
|Subaru GL-10 sedan, wagon 2wd '85, XT coupe 2wd '85-'91
|-
|4
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 2WD.
|Subaru GL Turbo 2wd 3-d coupe '87, GL Turbo 2wd sedan '87, GL Turbo 2wd wagon '87,<br> GL-10 Turbo 2wd sedan '86-'89, GL-10 Turbo 2wd wagon '86-'89, Loyale Turbo 2wd '90,<br> XT coupe Turbo 2wd '85-'87
|-
|4
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. AWD.
|Subaru Impreza L '96-'01, LX '96, Impreza Outback Sport '96-'01,<br> Legacy Brighton, L '96-'99, LS '96, Outback '96
|-
|5
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 4WD. (Some models had 1-bbl. carb. in '82)
|Subaru DL Wagon 4wd '81-'84, GL 4-d Sedan 4wd '84, GL Wagon 4wd '81-'84,<br> Standard Hatchback 4wd '81, DL Hatchback 4wd '81, GL Hatchback 4wd '81-'89,<br> Brat DL 4wd '81-'83, Brat GL 4wd '81-'87
|-
|5
|1.8L OHV, 8-valve turbo EA81T flat-4. MPI. 4WD.
|Subaru Turbo 2-d Hardtop 4wd '84, Turbo Wagon 4wd '83-'84, Brat Turbo 4wd '83-'84
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 4WD.
|Subaru DL wagon 4wd '85-'86, DL wagon 4wd '87 (49-state version), GL sedan, wagon 4wd '85,<br> GL 3-d coupe, sedan, wagon 4wd '86, GL 3-d coupe, sedan, wagon 4wd '87 (49-state version)
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 4WD.
|Subaru DL wagon 4wd '87 (CA version), '88-'89;<br> GL 3-d coupe, sedan, wagon 4wd '87 (CA version), '88-'89; Loyale 4wd '90-'94
|-
|5
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD.
|Subaru GL Turbo 4wd 3-d coupe '86-'87, RX Turbo 4wd 3-d coupe '87-'89, RX Turbo 4wd sedan '85-'88, Turbo 4wd wagon '85, GL Turbo 4wd wagon '87-'89, GL-10 Turbo 4wd wagon w/man. trans. '86-'88, GL-10 Turbo 4wd wagon '89, Loyale Turbo 4wd '90
|-
|6
|2.2L SOHC, 16-valve EJ22 flat-4. MPI.
|Subaru Impreza L 2.2 '95, LX '95, Impreza Outback Sport 2.2 '95, Legacy '90-'95
|-
|6
|2.2L SOHC, 16-valve turbo EJ22T flat-4. MPI.
|Subaru Legacy Sport Sedan '91-'94, [LE] Touring Wagon '92-'94
|-
|6
|2.5L DOHC, 16-valve EJ25D flat-4 (Phase I). MPI.
|Subaru Impreza 2.5RS '98, Forester '98, Legacy 2.5GT '96-'99, LSi '96-'97,<br> SUS '97-'99, Outback '96-'99
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4 (Phase II). MPI.
|Subaru Impreza 2.5RS '99-'01, Impreza (except WRX) '02-'05,<br> Impreza Outback Sport '02-'05, Forester '99-'05, Legacy '00-'05,<br> Outback '00-'05, Baja Base '03, Sport '03-'06, Saab 9-2X Linear '05
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4. MPI. Intake VVL.
|Subaru Impreza (except WRX) '06-'11, Subaru Impreza Outback Sport '06-'11, Forester '06-'10, Legacy '06-'09, Outback '06-'09, Saab 9-2X 2.5i '06
|-
|6
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Forester XT '04-'10, Legacy GT '05-'09, Outback XT '05-'09,<br> Baja Turbo '04-'06
|-
|7
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 2wd.
|Subaru Justy '87-'89, Justy DL '90-'92
|-
|7
|1.2L SOHC, 9-valve EF12 I3. MPI. 2wd.
|Subaru Justy GL '90-'94, Justy DL '93-'94
|-
|7
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD w/air suspension.
|Subaru Turbo 4wd sedan '85, GL-10 Turbo 4wd sedan '86-'89, GL-10 Turbo 4wd wagon w/auto. trans. '86-'89, XT coupe Turbo 4wd '85-'89
|-
|7
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Impreza WRX '06-'14, Impreza WRX STi '04-'07, Impreza 2.5GT '09-'10,<br> Saab 9-2X Aero '06
|-
|8
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 4wd.
|Subaru Justy GL 4wd '88-'89
|-
|8
|1.2L SOHC, 9-valve EF12 I3. MPI. 4wd.
|Subaru Justy GL 4wd '90-'94
|-
|8
|2.7L SOHC, 12-valve ER27 flat-6. MPI. FWD.
|Subaru XT6 '88-'91
|-
|8
|3.3L DOHC, 24-valve EG33 flat-6. MPI. AWD.
|Subaru SVX '96-'97
|-
|8
|3.0L DOHC, 24-valve EZ30D flat-6. MPI. Intake VVT & VVL.
|Subaru Legacy 3.0R '08-'09, Outback H6-3.0 '01-'04, Outback 3.0R '05-'09,<br> B9 Tribeca '06-'07
|-
|8
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru Impreza WRX STi '08-'14
|-
|9
|2.7L SOHC, 12-valve ER27 flat-6. MPI. AWD.
|Subaru XT6 '88-'91
|-
|9
|3.6L DOHC, 24-valve EZ36D flat-6. MPI. Dual VVT.
|Subaru Tribeca '08-'14
|}
</div>
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|4
|FB 1600cc DIT AWD 2015+
|-
|D
|2000cc DOHC Turbo Diesel
|}
</div>
===Model===
The '''model''' is identified in the '''<u>seventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|Standard model '81-'87, Loyale RS 3-door coupe (non-Turbo) '90
|-
|1
|Impreza Base model '93-'95, 2.5i '07, 2.5i Special Edition '07, Impreza 2.5i '08-'09, Impreza 2.5i Premium '08, Saab 9-2X Linear '05, Saab 9-2X 2.5i '06
|-
|1
|Legacy 2.5i '05-'08, 2.5i Special Edition '06-'09
|-
|1
|Outback H6-3.0 wagon 35th Anniv. Ed. '04, Outback 2.5i '05-'08, 2.5i Special Edition '06, '09, 2.5i Basic '07, 2.5i L.L. Bean Edition '07-'08
|-
|1
|Forester Base model '98-'99, 2.5X '09
|-
|1
|Tribeca 5-psgr. base model '08-'09
|-
|1
|Baja Base model '03
|-
|2
|DL '81-'89, Loyale (non-Turbo) '90-'94, Brat DL '81-'83, Justy DL '87-'94, XT coupe DL '85-'88
|-
|2
|Impreza L fwd sedan w/man. trans. [w/o opt. power equipment, A/C, & stereo] '93, Impreza L Early '94 (only has driver-side airbag),<br> Impreza Brighton coupe '96-'97, Impreza Brighton wagon - Canada only: '98-'01, Impreza Outback Sport '07, Saab 9-2X Aero '05-'06
|-
|2
|Legacy Base model '90, '95, Legacy Brighton wagon '95-'00, Legacy L 35th Anniv. Ed. '04, Legacy 2.5i Limited '05-'09
|-
|2
|Outback 2.5i Limited wagon '05-'08, 2.5i Limited sedan '06-'07, 2.5i Limited L.L. Bean Edition wagon '07-'08
|-
|2
|SVX L Early '94 (has motorized seatbelts & driver-side airbag)
|-
|2
|B9 Tribeca 5-psgr. '06-'07
|-
|2
|Tribeca 5-psgr. Limited '08-'09, Tribeca 5-psgr. Special Edition '09
|-
|2
|Baja Sport '03-'06
|-
|3
|GL '81-'89, Brat GL '81-'87, Justy GL '87-'94, Justy RS '88-'89, XT coupe GL '85-'89, '91
|-
|3
|Impreza L '94 (has dual airbags), L '95-'01, Outback Sport '95, Impreza Outback Sport Special Edition '07, Impreza Outback Sport '08-'09
|-
|3
|Legacy L '90-'04, Legacy Sun Sport, Alpine Sport, Outdoor, & GT wagons '94, Legacy Outback '95, Legacy L Special Edition '03
|-
|3
|Outback 2.5XT Limited '07-'09
|-
|3
|SVX L '94-'97 (has manual seatbelts & dual airbags)
|-
|3
|Forester L '98-'02, 2.5X '03-'08, Sports 2.5X '07, 2.5X Premium '09
|-
|3
|B9 Tribeca 5-psgr. '06-'07
|-
|3
|Tribeca 5-psgr. Limited w/Navigation '08-'09
|-
|3
|Baja Turbo '04-'06
|-
|4
|GLF '81-'82, GL-10 '85-'89, XT6 coupe '88-'89, '91
|-
|4
|Impreza L "Plus" [L fwd sedan w/man. trans. w/opt. power equipment, A/C, & stereo plus all other Impreza L models] '93,<br> Impreza WRX '07-'08, WRX Limited '07, Impreza 2.5GT '09
|-
|4
|Legacy LS '90, 2.5GT '00-'04, 3.0R '09
|-
|4
|Outback 3.0R sedan '05, 3.0R wagon w/cloth seats '06
|-
|4
|SVX LS '92, '94
|-
|4
|Forester 2.5X L.L. Bean Edition '09, 2.5X Limited '09
|-
|5
|GL Turbo (except '87 4wd wagon) '83-'87, GL-10 Turbo '86-'89, Brat GL Turbo '83-'84, XT coupe GL-10 Turbo '85-'87
|-
|5
|Impreza LS '93-'94, LX '95-'96, 2.5TS '02-'04, Impreza WRX TR '07, Impreza WRX Premium '08
|-
|5
|Legacy LS "Special" '90, Legacy LS '91-'96, Legacy LSi '91-'95, 2.5GT Limited '00-'02, 3.0R Limited '08-'09
|-
|5
|Outback 3.0R VDC Limited wagon '05-'06, 3.0R Limited '09
|-
|5
|SVX LS-L (LS w/Touring Package) '92-'93, SVX LSi Awd '94-'95
|-
|5
|Forester S '98-'02, 2.5XS '03-'05, 2.5X Premium '06-'08, 2.5XT '09
|-
|5
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|RX Turbo '85-'89
|-
|6
|Impreza WRX STi '07, Impreza WRX '09, WRX Premium '09
|-
|6
|Legacy LSi '96-'97, Outback base model '00-'02, Outback 'Audio Edition' (Premium Audio instead of All-Weather Pkg.) wagon '03
|-
|6
|Outback 3.0R L.L. Bean Edition wagon '05-'08, 3.0R L.L. Bean Edition sedan '06-'07, 2.5i Limited '09
|-
|6
|SVX LSi '96-'97
|-
|6
|Forester Sports 2.5X '08, Sports 2.5XT '08, Forester 2.5XT Limited '09
|-
|6
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|Tribeca 7-psgr. base model '08-'09
|-
|7
|GL Turbo 4wd wagon '87-'89, Loyale Turbo '90, Loyale RS Turbo 3-door coupe '90
|-
|7
|Impreza 2.5RS '98-'05, 2.5i '06, Impreza WRX STi Limited '07
|-
|7
|Legacy Sport Sedan '91-'94, Legacy [LE] Touring Wagon '92-'94, Legacy 2.5GT '96-'99, Legacy 2.5GT Limited '98-'99, Outback w/All-Weather Pkg. '00-'02, Outback base model '03-'04, Legacy 2.5GT Limited '05-'09, Legacy 2.5GT Limited spec.B '06
|-
|7
|Outback 2.5XT Limited '05-'06
|-
|7
|Forester 2.5XS L.L. Bean Edition '05, 2.5X L.L. Bean Edition '06-'08
|-
|7
|Tribeca 7-psgr. Limited '08-'09, Tribeca 7-psgr. Special Edition '09
|-
|8
|Impreza Outback Sport '96-'06, Impreza Outback Sport Special Edition '05-'06
|-
|8
|Legacy 2.5GT '05
|-
|8
|Legacy Outback '96-'99, Legacy Outback Limited '97-'99, Legacy SUS '97-'99, Outback Limited wagon '00-'04, Outback Limited sedan '00-'04, Outback 2.5XT '05-'06
|-
|8
|Tribeca 7-psgr. Limited w/Navigation '08-'09
|-
|9
|Impreza WRX '02-'06, WRX TR '06, WRX Limited '06, Impreza WRX STi '08-'09
|-
|9
|Legacy L Awd wagon rhd Postal Vehicle '95-'99, Outback H6-3.0 VDC wagon '01-'04, Outback H6-3.0 wagon w/cloth seats '03, Outback H6-3.0 sedan '02-'04, Outback H6-3.0 VDC sedan '02-'04, Legacy 2.5GT spec.B '07-'09
|-
|9
|Forester 2.5XT '04-'05, 2.5XT Limited '06-'08, Sports 2.5XT '07
|-
|0
|Impreza WRX STi '04-'06, Impreza 2.5i Premium '09
|-
|0
|Legacy 2.5i '09
|-
|0
|Outback H6-3.0 L.L. Bean Edition wagon '01-'04, Outback base model '08, Outback 2.5i '09
|-
|0
|Tribeca 7-psgr. Limited w/Navigation & Rear-seat DVD Entertainment System '08-'09
|-
|}
</div>
rhd=right-hand drive
===Restraint Type (Passenger) or Weight Class (MPV)===
The '''restraint type''', for passenger vehicles, or the weight class (Gross Vehicle Weight Rating), for MPVs & trucks, is specified in the '''<u>eighth</u>''' character of the Subaru VIN. Beginning in 2010, MPVs include both '''restraint type''' and weight class (Gross Vehicle Weight Rating).
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|No Passive Restraint
|-
|2
|Automatic Seat Belt w/o Airbag
|-
|3
|Automatic Seat Belt w/Driver Airbag (1992-1994 Legacy, SVX)
|-
|4
|Manual Seat Belt w/Driver Airbag (1993-1994 Impreza)
|-
|5
|Manual Seat Belt w/Driver/Passenger Airbags
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and Side Airbags. (Includes '05-'06 Saab 9-2X.)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front-row Side Curtain Airbags <br> ('13-'20 BRZ, '13-'16 Scion FR-S, '17-'20 Toyota 86)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front-row Side Curtain Airbags & Driver's Knee Airbag <br> ('22-'26 BRZ, '22-'26 Toyota GR86)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front to rear Side Curtain Airbags <br> ('10-'11 Impreza, '10-'14 Impreza WRX, '10-'14 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('12-'23 Impreza, '15-'26 WRX)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags ('15-'19 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Legacy)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Impreza)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Impreza)
|-
|A
|Class A (GVWR 3000 lbs. or less)
|-
|B
|Class B (GVWR 3001-4000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.)
|-
|6
|Class C (GVWR 4001-5000 lbs.) (For '09 Forester only)
|-
|D
|Class D (GVWR 5001-6000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags <br> ('10-'13 Forester, '10-'14 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('13-'15 XV Crosstrek, '16-'23 Crosstrek, '14-'24 Forester, '25 Forester Wilderness)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags <br> ('15-'19 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Outback, '24-'25 Crosstrek [Japanese-built models], '25 Forester [except Wilderness & Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Crosstrek [US-built models], '26- Forester [except Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek)
|-
|7
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags <br> ('10-'14 Tribeca)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags for all 3 rows & Driver's Knee Airbag <br> ('19-'26 Ascent)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'26 Outback, '25 Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek Hybrid)
|}
</div>
The '''Check Digit''' is identified in the '''<u>ninth</u>''' character of the Subaru VIN
The '''Model Year''' is identified in the '''<u>tenth</u>''' character of the Subaru VIN
Letters began being reused in 2010.
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|2001
|-
|2
|2002
|-
|3
|2003
|-
|4
|2004
|-
|5
|2005
|-
|6
|2006
|-
|7
|2007
|-
|8
|2008
|-
|9
|2009
|-
|A
|1980, 2010
|-
|B
|1981, 2011
|-
|C
|1982, 2012
|-
|D
|1983, 2013
|-
|E
|1984, 2014
|-
|F
|1985, 2015
|-
|G
|1986, 2016
|-
|H
|1987, 2017
|-
|I
|not used
|-
|J
|1988, 2018
|-
|K
|1989, 2019
|-
|L
|1990, 2020
|-
|M
|1991, 2021
|-
|N
|1992, 2022
|-
|P
|1993, 2023
|-
|R
|1994, 2024
|-
|S
|1995, 2025
|-
|T
|1996, 2026
|-
|V
|1997
|-
|W
|1998
|-
|X
|1999
|-
|Y
|2000
|}
</div>
===Plants and transmission type===
The '''assembly plant''' and '''transmission type''' is specified in the '''<u>eleventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Plant
!Transmission
|-
|1
|SIA
|FWD 5MT ('90-'96 Legacy)
|-
|1
|SIA
|Full-time AWD 5MT ('17-'23 Impreza)
|-
|1
|SIA
|Full-time AWD 6MT ('10-'14 & in Canada: '15-'17 Legacy, Outback)
|-
|2
|SIA
|Full-time AWD 5AT ('10-'14 Legacy 3.6R, Outback 3.6R)
|-
|3
|SIA
|Full-time AWD 6MT ('07-'09 Legacy GT spec.B).
|-
|3
|SIA
|Full-time AWD CVT ('10-'25 Legacy 2.5, Outback 2.5, '15-'19 Legacy 3.6R, Outback 3.6R,<br> '20-'25 Legacy 2.4T, Outback 2.4T, '17-'23 Impreza, '19-'26 Ascent, '24-'26 Crosstrek, '26- Forester, '26- Forester Hybrid)
|-
|4
|SIA
|Full-time AWD 5AT ('05-'09 Legacy, Outback, '06-'07 B9 Tribeca, '08-'14 Tribeca)
|-
|5
|SIA
|Full-time AWD 4-spd. Automatic w/Sport Shift ('03-'04 Legacy GT)
|-
|6
|SIA
|Full-time AWD 5MT
|-
|7
|SIA
|Full-time AWD 4EAT
|-
|8
|SIA
|Full-time AWD 4EAT ('95-'99 Legacy wagon RHD Postal vehicle)
|-
|9
|SIA
|FWD 4EAT ('90-'96 Legacy)
|-
|A
|FHI
|FWD 4MT
|-
|B
|FHI
|FWD 5MT
|-
|C
|FHI
|FWD 3AT ('81-'89 compact models, '90-'93 Loyale). FWD 4AT ('88-'91 XT/XT6).<br> FWD ECVT ('89-'93 Justy).
|-
|D
|FHI
|On-demand 4WD 4MT ('81-'84), On-demand 4WD 5MT ('85-'94)
|-
|E
|FHI
|4MT Dual Range 4wd ('81-'84, '85-'89 Hatchback, '85-'87 Brat).<br> 5MT Dual Range 4wd '85-'89 (excluding Hatchback & Brat)
|-
|F
|FHI
|On-demand 4WD 3AT ('83-'89 compact models, '90-'94 Loyale, '85-'87 XT coupe GL-10 Turbo 4wd).<br> On-demand 4WD ECVT ('90-'93 Justy).
|-
|G
|FHI
|Full-time AWD 5MT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 5MT ('12-'16 Impreza, '12-'14 Impreza WRX, '13-'15 XV Crosstrek, '16-'17 Crosstrek,<br> '12-'13 Forester)
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('14-'18 Forester, '18-'23 Crosstrek).
|-
|H
|FHI
|Full-time AWD 4EAT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 4EAT ('12-'13 Forester).
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('12-'16 Impreza, '13-'15 XV Crosstrek, '14-'15 XV Crosstrek Hybrid,<br> '16-'25 Crosstrek, '16 Crosstrek Hybrid, '19-'23 Crosstrek Hybrid (PHEV), '14-'25 Forester).
|-
|K
|FHI
|FWD 4EAT
|-
|L
|FHI
|Full-time AWD 6MT ('04-'11 Impreza WRX STi)
|-
|L
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('12-'14 Impreza WRX STi)
|-
|P
|FHI
|Full-time AWD 4EAT ('91-'94 Legacy wagon RHD Postal vehicle)
|-
|Y
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('26- Outback)
|-
|1
|FHI
|RWD 6MT ('13 BRZ, Scion FR-S)
|-
|2
|FHI
|RWD 6AT ('13 BRZ, Scion FR-S)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6AT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6MT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD CVT ('14-'16, '24-'26 Impreza, '14-'15 XV Crosstrek, '16-'25 Crosstrek, '26- Crosstrek Hybrid, '15-'26 WRX)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 5MT ('14-'16 Impreza, '14-'15 XV Crosstrek, '16-'17 Crosstrek)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 6MT ('15-'26 WRX, '15-'21 WRX STi, '18-'23 Crosstrek)
|}
</div>
** SIA = Subaru-Isuzu Automotive (now known as Subaru of Indiana Automotive), Lafayette, Indiana
** FHI = Fuji Heavy Industries, Gunma prefecture, Japan
===Positions 12–17, Serial Number===
The '''Vehicle Production Sequence''' number is specified in the '''<u>twelfth - seventeenth</u>''' characters of the Subaru VIN
** 002001 and after - Touring Wagon ('89), Loyale Touring wagon ('90)
** 002001 - 199999 - Impreza sedan ('12-'16), Impreza WRX sedan ('12-'14)
** 002001 - 199999 - Legacy sedan ('12-'19)
** 002001 - 099999 - Legacy sedan ('20-'25)
** 002001 and after - Forester, Forester Hybrid ('26-)
** 050001 - 059999 - Saab 9-2X ('05-'06)
** 100000 and after - Hatchback
** 100000 and after - SVX
** 100000 and after - Legacy Sedan SUS (Jan 98 - May 98)
** 100000 and after - Baja
** 100001 - 299999 - Outback wagon ('20-'25)
** 200001 and after - 4-dr sedan ('81-'89), Loyale 4-dr sedan ('90-'93)
** 200001 and after - Legacy Sedan '96-'08, Outback Sedan '00-'07
** 200001 - 399999 - Impreza hatchback ('12-'16, '24-'26), Impreza WRX hatchback ('12-'14), XV Crosstrek ('13-'15), Crosstrek ('16-'23)
** 200001 - 399999 - Crosstrek [Japan-built] ('24-'25), Crosstrek Hybrid [Japan-built] ('26-)
** 200001 - 399999 - Outback wagon ('12-'19)
** 210001 and after - Legacy Sedan '95, '09-'11
** 300001 and after - Hardtop coupe ('81-'84)
** 300001 and after - XT/XT6 coupe ('85-'91)
** 300001 and after - Legacy Station Wagon '96-'07; Outback wagon '05-'08
** 310001 and after - Legacy Station Wagon '95; Outback wagon '09-'11
** 370001 and after - Legacy Outback wagon '96
** 400001 and after - Station Wagon ('81-'89), Loyale station wagon ('90-'94)
** 400001 and after - Impreza Coupe ('95-'01)
** 400001 and after - B9 Tribeca ('06-'07)/Tribeca ('08-'11)
** 400001 - 599999 - Forester ('12-'25)
** 400001 - 599999 - Tribeca ('12-'14); Ascent ('19-'26)
** 450001 and after - Outback ('26-)
** 500001 and after - Brat
** 500001 and after - Impreza Sedan ('93-'11)
** 600001 and after - Legacy sedan ('90-'93: All, '94: Japanese-built)
** 640001 and after - Legacy sedan ('94: US-built)
** 600001 and after - Outback wagon '97-'04
** 600001 - 699999 - BRZ ('13-'19)
** 600001 - 699999 - Impreza Sedan ('17-'23)
** 700001 and after - Justy 3-d ('87-'94)
** 700001 and after - Forester ('98-'11)
** 700001 - 799999 - Scion FR-S ('13-'16), Toyota 86 ('17-'19)
** 700001 - 749999 - BRZ ('20, '22-'26)
** 700001 - 899999 - Impreza 5-door hatchback ('17-'23)
** 700001 - 899999 - Crosstrek [US-built] ('24-'26)
** 750001 and after - Justy 5-d ('90-'94)
** 750001 - 799999 - Toyota 86 ('20), Toyota GR86 ('22-'26)
** 800001 and after - 3-door coupe ('86-'89), Loyale 3-door coupe ('90)
** 800001 and after - Impreza Sports Wagon ('93-'07); Impreza 5-door hatchback ('08-'11)
** 800001 - 899999 - WRX ('15-'26)
** 800001 - 999999 - Crosstrek [Japan-built] ('24)
** 900001 and after - Legacy wagon ('90-'93: All, '94: Japanese-built)
** 940001 and after - Legacy wagon ('94: US-built)
** 990001 and after - Legacy GT wagon w/stepped roof ('94: US-built)
==External links==
Online [http://www.vindecoderz.com/EN/Subaru Subaru VIN decoder]
Online [www.auto-vin-decoder.com Universal VIN decoder]
{{BookCat}}
0i81qqkgaxpnvqesaknu8og7tuyrzi3
4672284
4672283
2026-09-25T09:03:18Z
JustTheFacts33
3434282
/* Restraint Type (Passenger) or Weight Class (MPV) */
4672284
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This chart is applicable to Subaru models made for North America.
Subaru uses a '''17-character VIN''' format and code for vehicles sold in the United States. These rules also apply to the Saab 9-2X, a badge-engineered Subaru Impreza wagon and to the Scion FR-S/Toyota 86/Toyota GR86, a twin of the Subaru BRZ.
For Subaru Uncharted, Solterra, and Trailseeker, see the Toyota VIN page: [[Vehicle Identification Numbers (VIN codes)/Toyota/VIN Codes]].
==Subaru VIN code==
The following sample is the sequence and meaning of each character in the Subaru VIN:
<div class=center>
<table class="wikitable" border="1"><caption></caption><tr>
<th>Position</th>
<th>Sample</th>
<th>Description</th>
</tr><tr>
<td>1</td>
<td>J</td>
<td rowspan=3>[[#Subaru WMIs|World Manufacturer Identifier]]</td>
</tr><tr>
<td>2</td>
<td>F</td>
</tr><tr>
<td>3</td>
<td>1</td>
</tr><tr>
<td>4</td>
<td>C</td>
<td>[[#Line types|Line type]]</td>
</tr><tr>
<td>5</td>
<td>X</td>
<td>[[#Body styles|Body style]]</td>
</tr><tr>
<td>6</td>
<td>8</td>
<td>[[#Engine types|Engine type]]</td>
</tr><tr>
<td>7</td>
<td>6</td>
<td>[[#Models|Model identifier]]</td>
</tr><tr>
<td>8</td>
<td>5</td>
<td>[[#Restraint types|Restraint type]]</td>
</tr><tr>
<td>9</td>
<td>9</td>
<td>[[../../Check digit/]]</td>
</tr><tr>
<td>10</td>
<td>T</td>
<td>[[../../Model year/]]</td>
</tr><tr>
<td>11</td>
<td>H</td>
<td>[[#Plants and transmission types|Plant of manufacture & transmission type]]</td>
</tr><tr>
<td>12</td>
<td>1</td>
<td rowspan=6>Sequential production number
</tr><tr>
<td>13</td>
<td>0</td>
</tr><tr>
<td>14</td>
<td>0</td>
</tr><tr>
<td>15</td>
<td>2</td>
</tr><tr>
<td>16</td>
<td>1</td>
</tr><tr>
<td>17</td>
<td>6</td>
</table>
</div>
<div class="center"><small>The above serial number describes the following vehicle built in Japan by Fuji Heavy Industries:</small></div>
<div class="center"><small>1996 Subaru Alcyone SVX, 3.3L EG33 engine, AWD 4EAT transmission, manual seat belts<br />with driver / passenger airbags. The 216th vehicle produced during the 1996 model year.</small></div>
===Subaru WMIs===
The '''WMI''' is specified in the '''<u>first three</u>''' characters of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!WMI
!Country
!Description
!Vehicle Types
|-
|JF1
|Japan
|Fuji Heavy Industries/Subaru Corp. (Includes Scion FR-S/Toyota 86/Toyota GR86.)
|Passenger Vehicle
|-
|JF2
|Japan
|Fuji Heavy Industries/Subaru Corp.
|MPV
|-
|JF3
|Japan
|Fuji Heavy Industries
|truck
|-
|JF4
|Japan
|Fuji Heavy Industries-built Saab (9-2X)
|Passenger Vehicle
|-
|MMR
|Thailand
|Tan Chong Subaru Automotive (Thailand) Ltd.
|
|-
|PLP
|Malaysia
|Tan Chong Motor Assemblies
|
|-
|4S3
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|Passenger Vehicle
|-
|4S4
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|MPV
|}
MPV means Multi-Purpose Vehicle (Normally includes SUV or passenger van. Subaru has often classified 4wd versions of other body styles as an MPV as well.)
</div>
===Line type===
The '''line type''' is specified in the '''<u>fourth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|STD/DL/GL/GLF/GL-10/RX/Loyale/Brat
|-
|A
|XT/XT6
|-
|B
|Legacy/Outback/Baja
|-
|C
|SVX
|-
|G
|Subaru Impreza '93-/Impreza WRX '02-'14/XV Crosstrek '13-'15/Crosstrek '16-/Saab 9-2X '05-'06
|-
|K
|Justy '87-'94 & '95 in Canada
|-
|S
|Forester
|-
|V
|WRX '15-
|-
|V
|Levorg (2nd gen. known as WRX Sportswagon in Australia & WRX wagon in S.E. Asia) (Not sold in North America)
|-
|W
|B9 Tribeca/Tribeca
|-
|W
|Ascent
|-
|Z
|Subaru BRZ/Scion FR-S/Toyota 86/Toyota GR86
|}
A also indicated Restraint type for 1981-1986 models. A meant Manual seatbelts.
</div>
===Body style===
The '''body style''' is specified in the '''<u>fifth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|'87-'94 Justy 3-Door
|-
|A
|'15-'21 WRX, WRX STi sedan (1st gen.)
|-
|B
|'81-'84 DL/GL 4-door sedan (2nd gen.)
|-
|B
|'22- WRX sedan (2nd gen.)
|-
|C
|'85-'93 DL/GL/GL-10/RX/Turbo/Loyale sedan (3rd gen.)
|-
|C
|'90-'94 Legacy sedan (1st gen.)
|-
|C
|'93-'01 Impreza sedan (1st gen.)
|-
|C
|'13-'20 BRZ coupe (1st gen.)
|-
|D
|'90-'94 Justy 5-Door
|-
|D
|'95-'99 Legacy sedan, '97-'99 Legacy SUS (2nd gen. Legacy)
|-
|D
|'02-'07 Impreza sedan, Impreza WRX sedan (2nd gen.)
|-
|D
|'22- BRZ coupe (2nd gen.)
|-
|E
|'00-'04 Legacy sedan, Outback sedan (3rd gen. Legacy)
|-
|E
|'08-'11 Impreza sedan, '08-'10 Impreza WRX sedan (3rd gen.)
|-
|F
|'81-'89 STD/DL/GL 3-door hatchback (2nd gen.)
|-
|F
|'93-'01 Impreza wagon, '95-'01 Impreza Outback Sport (1st gen.)
|-
|F
|'94 Legacy GT wagon [raised-roof] (1st gen.)
|-
|F
|Wagon: Forester (1st gen.) '98-'02
|-
|G
|'86-'90 DL/GL/RX/Turbo/Loyale 3-door coupe (3rd gen.)
|-
|G
|'96-'99 Legacy Outback wagon [raised-roof] (2nd gen. Legacy)
|-
|G
|'02-'07 Impreza wagon, Impreza WRX wagon, Impreza Outback Sport (2nd gen.), '05-'06 Saab 9-2X
|-
|G
|Wagon: Forester (2nd gen.) '03-'08
|-
|H
|'00-'04 Legacy wagon, Outback wagon (3rd gen. Legacy)
|-
|H
|'08-'11 Impreza 5-door hatchback, '08-'11 Impreza Outback Sport, '08-'10 Impreza WRX 5-door hatchback (3rd gen.)
|-
|H
|Wagon: Forester (3rd gen.) '09-'13
|-
|J
|'90-'94 Legacy wagon [non-raised-roof] (1st gen.)
|-
|J
|'12-'16 Impreza sedan (4th gen.)
|-
|J
|Wagon: Forester (4th gen.) '14-'18
|-
|K
|'89-'90 GL/GL-10/Turbo/Loyale Touring wagon [raised roof] (3rd gen.)
|-
|K
|'95-'99 Legacy wagon [non-raised-roof] (2nd gen.)
|-
|K
|'17-'23 Impreza sedan (5th gen.)
|-
|K
|Wagon: Forester (5th gen.) '19-'24, Forester Wilderness '22-'25
|-
|L
|'05-'09 Legacy sedan, '05-'07 Outback sedan (4th gen. Legacy)
|-
|L
|Wagon: Forester (6th gen.) '25-, Forester Wilderness '26-
|-
|M
|'81-'84 DL/GL 4-door wagon (2nd gen.)
|-
|M
|'95-'01 Impreza coupe (1st gen.)
|-
|M
|'10-'14 Legacy sedan (5th gen.)
|-
|M
|'19- Ascent (1st gen.)
|-
|M
|Levorg wagon (1st gen.) (Not sold in North America)
|-
|N
|'85-'94 DL/GL/GL-10/Turbo/Loyale wagon (3rd gen.)
|-
|N
|'13-'16 Scion FR-S, '17-'20 Toyota 86, '22- Toyota GR86 coupe
|-
|N
|'15-'19 Legacy sedan (6th gen.)
|-
|N
|Levorg wagon (WRX Sportswagon in Australia/WRX wagon in S.E. Asia) (2nd gen.) (Not sold in North America)
|-
|P
|'05-'07 (& '08-'09 in Canada) Legacy wagon, '05-'09 Outback wagon (4th gen. Legacy)
|-
|P
|'12-'16 Impreza 5-door hatchback (4th gen.), '13-'15 XV Crosstrek, '16-'17 Crosstrek (1st gen.)
|-
|R
|Brat 1981 (1st gen.)
|-
|R
|'08-'14 Impreza WRX STi 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'11-'14 Impreza WRX 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'10-'14 Outback wagon
|-
|S
|'15-'19 Outback Wagon
|-
|T
|Brat 1982-1985 (2nd gen.)
|-
|T
|'03-'06 Baja
|-
|T
|'17-'23 Impreza 5-door hatchback (5th gen.), '18-'23 Crosstrek (2nd gen.)
|-
|T
|'20-'25 Outback Wagon
|-
|U
|Brat 1986-1987 (2nd gen.)
|-
|U
|'24- Impreza 5-door hatchback (6th gen.), '24- Crosstrek (3rd gen.)
|-
|U
|'26- Outback
|-
|V
|'11-'14 Impreza WRX, WRX STi sedan [widebody] (3rd gen.)
|-
|W
|'81-'84 DL/GL/GLF 2-door hardtop coupe (2nd gen.)
|-
|W
|'20-'25 Legacy sedan (7th gen.)
|-
|X
|'85-'91 XT/XT6 coupe
|-
|X
|'92-'97 SVX coupe
|-
|X
|'06-'07 B9 Tribeca, '08-'14 Tribeca
|}
</div>
===Engine type===
The '''engine type''' is specified in the '''<u>sixth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable"
|+Position 6
!VIN code
!Engine
!Application
|-
|A
|2.0L DOHC, 16-valve FA20D flat-4 (Toyota 4U-GSE).<br> Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '13-'20, Toyota Scion FR-S '13-'16, Toyota 86 '17-'20
|-
|A
|2.0L DOHC, 16-valve FB20B flat-4. MPI. Dual VVT.
|Subaru Impreza '12-'16 (except WRX models), XV Crosstrek '13-'15,<br> Crosstrek '16-'17
|-
|A
|2.0L DOHC, 16-valve FB20D flat-4. Direct injection. Dual VVT.
|Subaru Impreza '17-'23, Impreza Base '24-'25, Sport '24-'26,<br> Crosstrek Base '18-'25, Premium '18-'24, Limited '18-'20
|-
|A
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '19-'24, Forester Wilderness '22-'25, Legacy '20-'25,<br> Outback '20-'25
|-
|A
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Ascent '19-'26, WRX '22-'26
|-
|B
|2.0L DOHC, 16-valve FB20X flat-4 + 1 electric motor.<br> Nickel-metal hydride Battery Pack. MPI. Dual VVT.
|Subaru XV Crosstrek Hybrid '14-'15, Crosstrek Hybrid '16
|-
|B
|2.4L DOHC, 16-valve FA24D flat-4. Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '22-'26, Toyota GR86 '22-'26
|-
|D
|2.0L DOHC, 16-valve FB20V flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Crosstrek Hybrid ([[w:PHEV|PHEV]]) '19-'23
|-
|D
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '25 (except Wilderness), '26
|-
|G
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Legacy XT '20-'25, Legacy Sport '23-'25,<br> Outback XT '20-'25, Outback Wilderness '22-'25
|-
|H
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Impreza RS '24-'26,<br> Crosstrek Sport '21-'26, Limited '21-'26, Wilderness '24-'26, Premium '25-'26, Base model '26-
|-
|P
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|R
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|S
|2.5L DOHC, 16-valve FB25D flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Forester Hybrid '25-'26, Crosstrek Hybrid '26-
|-
|1
|2.0L DOHC, 16-valve turbo/intercooled FA20F flat-4. Direct injection. Dual VVT.
|Subaru WRX '15-'21
|-
|2
|1.6L OHV, 8-valve EA71 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru Standard Hatchback 2wd '81-'87, DL Hatchback, 2-d Hardtop, 4-d Sedan 2wd '81-'84,<br> GL Hatchback 2wd w/man. trans. '86-'87
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI.
|Subaru Impreza (all models) '93-'94, Impreza Base, L 1.8, Outback Sport 1.8 '95
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI. AWD.
|Subaru Impreza Brighton '96-'97
|-
|2
|2.0L DOHC, 16-valve turbo/intercooled EJ205 flat-4. MPI.
|Subaru Impreza WRX '02-'05, Saab 9-2X Aero '05
|-
|2
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi '15-'21, STi S209 '19
|-
|3
|3.3L DOHC, 24-valve EG33 flat-6. MPI.
|Subaru SVX '92-'95
|-
|3
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. FWD.
|Subaru Legacy L '96
|-
|3
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi Type RA '18
|-
|4
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru DL Wagon 2wd '81-'84, GL 2-d Hardtop 2wd '83-'84, GL 4-d Sedan, Wagon 2wd '81-'84,<br> GLF 2-d Hardtop 2wd '81-'82, GL-10 2-d Hardtop, 4-d Sedan '83-'84, GL-10 Wagon '83,<br> GL Hatchback 2wd '81-'85, GL Hatchback 2wd w/auto. trans. '86-'87, GL Hatchback 2wd '88-'89
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 2WD.
|Subaru DL 3-d coupe 2wd '86, DL sedan, wagon 2wd '85-'86, GL sedan, wagon 2wd '85,<br> GL 3-d coupe, sedan, wagon 2wd w/man. trans. '86
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 2WD.
|Subaru DL 3-d coupe, sedan, wagon 2wd '87-'89, GL 3-d coupe, sedan, wagon 2wd w/auto. trans. '86, GL 3-d coupe, sedan, wagon 2wd '87-'89, GL-10 sedan, wagon 2wd '86-'88, Loyale 2wd '90-'93
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. MPI. 2WD.
|Subaru GL-10 sedan, wagon 2wd '85, XT coupe 2wd '85-'91
|-
|4
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 2WD.
|Subaru GL Turbo 2wd 3-d coupe '87, GL Turbo 2wd sedan '87, GL Turbo 2wd wagon '87,<br> GL-10 Turbo 2wd sedan '86-'89, GL-10 Turbo 2wd wagon '86-'89, Loyale Turbo 2wd '90,<br> XT coupe Turbo 2wd '85-'87
|-
|4
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. AWD.
|Subaru Impreza L '96-'01, LX '96, Impreza Outback Sport '96-'01,<br> Legacy Brighton, L '96-'99, LS '96, Outback '96
|-
|5
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 4WD. (Some models had 1-bbl. carb. in '82)
|Subaru DL Wagon 4wd '81-'84, GL 4-d Sedan 4wd '84, GL Wagon 4wd '81-'84,<br> Standard Hatchback 4wd '81, DL Hatchback 4wd '81, GL Hatchback 4wd '81-'89,<br> Brat DL 4wd '81-'83, Brat GL 4wd '81-'87
|-
|5
|1.8L OHV, 8-valve turbo EA81T flat-4. MPI. 4WD.
|Subaru Turbo 2-d Hardtop 4wd '84, Turbo Wagon 4wd '83-'84, Brat Turbo 4wd '83-'84
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 4WD.
|Subaru DL wagon 4wd '85-'86, DL wagon 4wd '87 (49-state version), GL sedan, wagon 4wd '85,<br> GL 3-d coupe, sedan, wagon 4wd '86, GL 3-d coupe, sedan, wagon 4wd '87 (49-state version)
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 4WD.
|Subaru DL wagon 4wd '87 (CA version), '88-'89;<br> GL 3-d coupe, sedan, wagon 4wd '87 (CA version), '88-'89; Loyale 4wd '90-'94
|-
|5
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD.
|Subaru GL Turbo 4wd 3-d coupe '86-'87, RX Turbo 4wd 3-d coupe '87-'89, RX Turbo 4wd sedan '85-'88, Turbo 4wd wagon '85, GL Turbo 4wd wagon '87-'89, GL-10 Turbo 4wd wagon w/man. trans. '86-'88, GL-10 Turbo 4wd wagon '89, Loyale Turbo 4wd '90
|-
|6
|2.2L SOHC, 16-valve EJ22 flat-4. MPI.
|Subaru Impreza L 2.2 '95, LX '95, Impreza Outback Sport 2.2 '95, Legacy '90-'95
|-
|6
|2.2L SOHC, 16-valve turbo EJ22T flat-4. MPI.
|Subaru Legacy Sport Sedan '91-'94, [LE] Touring Wagon '92-'94
|-
|6
|2.5L DOHC, 16-valve EJ25D flat-4 (Phase I). MPI.
|Subaru Impreza 2.5RS '98, Forester '98, Legacy 2.5GT '96-'99, LSi '96-'97,<br> SUS '97-'99, Outback '96-'99
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4 (Phase II). MPI.
|Subaru Impreza 2.5RS '99-'01, Impreza (except WRX) '02-'05,<br> Impreza Outback Sport '02-'05, Forester '99-'05, Legacy '00-'05,<br> Outback '00-'05, Baja Base '03, Sport '03-'06, Saab 9-2X Linear '05
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4. MPI. Intake VVL.
|Subaru Impreza (except WRX) '06-'11, Subaru Impreza Outback Sport '06-'11, Forester '06-'10, Legacy '06-'09, Outback '06-'09, Saab 9-2X 2.5i '06
|-
|6
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Forester XT '04-'10, Legacy GT '05-'09, Outback XT '05-'09,<br> Baja Turbo '04-'06
|-
|7
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 2wd.
|Subaru Justy '87-'89, Justy DL '90-'92
|-
|7
|1.2L SOHC, 9-valve EF12 I3. MPI. 2wd.
|Subaru Justy GL '90-'94, Justy DL '93-'94
|-
|7
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD w/air suspension.
|Subaru Turbo 4wd sedan '85, GL-10 Turbo 4wd sedan '86-'89, GL-10 Turbo 4wd wagon w/auto. trans. '86-'89, XT coupe Turbo 4wd '85-'89
|-
|7
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Impreza WRX '06-'14, Impreza WRX STi '04-'07, Impreza 2.5GT '09-'10,<br> Saab 9-2X Aero '06
|-
|8
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 4wd.
|Subaru Justy GL 4wd '88-'89
|-
|8
|1.2L SOHC, 9-valve EF12 I3. MPI. 4wd.
|Subaru Justy GL 4wd '90-'94
|-
|8
|2.7L SOHC, 12-valve ER27 flat-6. MPI. FWD.
|Subaru XT6 '88-'91
|-
|8
|3.3L DOHC, 24-valve EG33 flat-6. MPI. AWD.
|Subaru SVX '96-'97
|-
|8
|3.0L DOHC, 24-valve EZ30D flat-6. MPI. Intake VVT & VVL.
|Subaru Legacy 3.0R '08-'09, Outback H6-3.0 '01-'04, Outback 3.0R '05-'09,<br> B9 Tribeca '06-'07
|-
|8
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru Impreza WRX STi '08-'14
|-
|9
|2.7L SOHC, 12-valve ER27 flat-6. MPI. AWD.
|Subaru XT6 '88-'91
|-
|9
|3.6L DOHC, 24-valve EZ36D flat-6. MPI. Dual VVT.
|Subaru Tribeca '08-'14
|}
</div>
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|4
|FB 1600cc DIT AWD 2015+
|-
|D
|2000cc DOHC Turbo Diesel
|}
</div>
===Model===
The '''model''' is identified in the '''<u>seventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|Standard model '81-'87, Loyale RS 3-door coupe (non-Turbo) '90
|-
|1
|Impreza Base model '93-'95, 2.5i '07, 2.5i Special Edition '07, Impreza 2.5i '08-'09, Impreza 2.5i Premium '08, Saab 9-2X Linear '05, Saab 9-2X 2.5i '06
|-
|1
|Legacy 2.5i '05-'08, 2.5i Special Edition '06-'09
|-
|1
|Outback H6-3.0 wagon 35th Anniv. Ed. '04, Outback 2.5i '05-'08, 2.5i Special Edition '06, '09, 2.5i Basic '07, 2.5i L.L. Bean Edition '07-'08
|-
|1
|Forester Base model '98-'99, 2.5X '09
|-
|1
|Tribeca 5-psgr. base model '08-'09
|-
|1
|Baja Base model '03
|-
|2
|DL '81-'89, Loyale (non-Turbo) '90-'94, Brat DL '81-'83, Justy DL '87-'94, XT coupe DL '85-'88
|-
|2
|Impreza L fwd sedan w/man. trans. [w/o opt. power equipment, A/C, & stereo] '93, Impreza L Early '94 (only has driver-side airbag),<br> Impreza Brighton coupe '96-'97, Impreza Brighton wagon - Canada only: '98-'01, Impreza Outback Sport '07, Saab 9-2X Aero '05-'06
|-
|2
|Legacy Base model '90, '95, Legacy Brighton wagon '95-'00, Legacy L 35th Anniv. Ed. '04, Legacy 2.5i Limited '05-'09
|-
|2
|Outback 2.5i Limited wagon '05-'08, 2.5i Limited sedan '06-'07, 2.5i Limited L.L. Bean Edition wagon '07-'08
|-
|2
|SVX L Early '94 (has motorized seatbelts & driver-side airbag)
|-
|2
|B9 Tribeca 5-psgr. '06-'07
|-
|2
|Tribeca 5-psgr. Limited '08-'09, Tribeca 5-psgr. Special Edition '09
|-
|2
|Baja Sport '03-'06
|-
|3
|GL '81-'89, Brat GL '81-'87, Justy GL '87-'94, Justy RS '88-'89, XT coupe GL '85-'89, '91
|-
|3
|Impreza L '94 (has dual airbags), L '95-'01, Outback Sport '95, Impreza Outback Sport Special Edition '07, Impreza Outback Sport '08-'09
|-
|3
|Legacy L '90-'04, Legacy Sun Sport, Alpine Sport, Outdoor, & GT wagons '94, Legacy Outback '95, Legacy L Special Edition '03
|-
|3
|Outback 2.5XT Limited '07-'09
|-
|3
|SVX L '94-'97 (has manual seatbelts & dual airbags)
|-
|3
|Forester L '98-'02, 2.5X '03-'08, Sports 2.5X '07, 2.5X Premium '09
|-
|3
|B9 Tribeca 5-psgr. '06-'07
|-
|3
|Tribeca 5-psgr. Limited w/Navigation '08-'09
|-
|3
|Baja Turbo '04-'06
|-
|4
|GLF '81-'82, GL-10 '85-'89, XT6 coupe '88-'89, '91
|-
|4
|Impreza L "Plus" [L fwd sedan w/man. trans. w/opt. power equipment, A/C, & stereo plus all other Impreza L models] '93,<br> Impreza WRX '07-'08, WRX Limited '07, Impreza 2.5GT '09
|-
|4
|Legacy LS '90, 2.5GT '00-'04, 3.0R '09
|-
|4
|Outback 3.0R sedan '05, 3.0R wagon w/cloth seats '06
|-
|4
|SVX LS '92, '94
|-
|4
|Forester 2.5X L.L. Bean Edition '09, 2.5X Limited '09
|-
|5
|GL Turbo (except '87 4wd wagon) '83-'87, GL-10 Turbo '86-'89, Brat GL Turbo '83-'84, XT coupe GL-10 Turbo '85-'87
|-
|5
|Impreza LS '93-'94, LX '95-'96, 2.5TS '02-'04, Impreza WRX TR '07, Impreza WRX Premium '08
|-
|5
|Legacy LS "Special" '90, Legacy LS '91-'96, Legacy LSi '91-'95, 2.5GT Limited '00-'02, 3.0R Limited '08-'09
|-
|5
|Outback 3.0R VDC Limited wagon '05-'06, 3.0R Limited '09
|-
|5
|SVX LS-L (LS w/Touring Package) '92-'93, SVX LSi Awd '94-'95
|-
|5
|Forester S '98-'02, 2.5XS '03-'05, 2.5X Premium '06-'08, 2.5XT '09
|-
|5
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|RX Turbo '85-'89
|-
|6
|Impreza WRX STi '07, Impreza WRX '09, WRX Premium '09
|-
|6
|Legacy LSi '96-'97, Outback base model '00-'02, Outback 'Audio Edition' (Premium Audio instead of All-Weather Pkg.) wagon '03
|-
|6
|Outback 3.0R L.L. Bean Edition wagon '05-'08, 3.0R L.L. Bean Edition sedan '06-'07, 2.5i Limited '09
|-
|6
|SVX LSi '96-'97
|-
|6
|Forester Sports 2.5X '08, Sports 2.5XT '08, Forester 2.5XT Limited '09
|-
|6
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|Tribeca 7-psgr. base model '08-'09
|-
|7
|GL Turbo 4wd wagon '87-'89, Loyale Turbo '90, Loyale RS Turbo 3-door coupe '90
|-
|7
|Impreza 2.5RS '98-'05, 2.5i '06, Impreza WRX STi Limited '07
|-
|7
|Legacy Sport Sedan '91-'94, Legacy [LE] Touring Wagon '92-'94, Legacy 2.5GT '96-'99, Legacy 2.5GT Limited '98-'99, Outback w/All-Weather Pkg. '00-'02, Outback base model '03-'04, Legacy 2.5GT Limited '05-'09, Legacy 2.5GT Limited spec.B '06
|-
|7
|Outback 2.5XT Limited '05-'06
|-
|7
|Forester 2.5XS L.L. Bean Edition '05, 2.5X L.L. Bean Edition '06-'08
|-
|7
|Tribeca 7-psgr. Limited '08-'09, Tribeca 7-psgr. Special Edition '09
|-
|8
|Impreza Outback Sport '96-'06, Impreza Outback Sport Special Edition '05-'06
|-
|8
|Legacy 2.5GT '05
|-
|8
|Legacy Outback '96-'99, Legacy Outback Limited '97-'99, Legacy SUS '97-'99, Outback Limited wagon '00-'04, Outback Limited sedan '00-'04, Outback 2.5XT '05-'06
|-
|8
|Tribeca 7-psgr. Limited w/Navigation '08-'09
|-
|9
|Impreza WRX '02-'06, WRX TR '06, WRX Limited '06, Impreza WRX STi '08-'09
|-
|9
|Legacy L Awd wagon rhd Postal Vehicle '95-'99, Outback H6-3.0 VDC wagon '01-'04, Outback H6-3.0 wagon w/cloth seats '03, Outback H6-3.0 sedan '02-'04, Outback H6-3.0 VDC sedan '02-'04, Legacy 2.5GT spec.B '07-'09
|-
|9
|Forester 2.5XT '04-'05, 2.5XT Limited '06-'08, Sports 2.5XT '07
|-
|0
|Impreza WRX STi '04-'06, Impreza 2.5i Premium '09
|-
|0
|Legacy 2.5i '09
|-
|0
|Outback H6-3.0 L.L. Bean Edition wagon '01-'04, Outback base model '08, Outback 2.5i '09
|-
|0
|Tribeca 7-psgr. Limited w/Navigation & Rear-seat DVD Entertainment System '08-'09
|-
|}
</div>
rhd=right-hand drive
===Restraint Type (Passenger) or Weight Class (MPV)===
The '''restraint type''', for passenger vehicles, or the weight class (Gross Vehicle Weight Rating), for MPVs & trucks, is specified in the '''<u>eighth</u>''' character of the Subaru VIN. Beginning in 2010, MPVs include both '''restraint type''' and weight class (Gross Vehicle Weight Rating).
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|No Passive Restraint
|-
|2
|Automatic Seat Belt w/o Airbag
|-
|3
|Automatic Seat Belt w/Driver Airbag (1992-1994 Legacy, SVX)
|-
|4
|Manual Seat Belt w/Driver Airbag (1993-1994 Impreza)
|-
|5
|Manual Seat Belt w/Driver/Passenger Airbags
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and Side Airbags. (Includes '05-'06 Saab 9-2X.)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front-row Side Curtain Airbags <br> ('13-'20 BRZ, '13-'16 Scion FR-S, '17-'20 Toyota 86)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front-row Side Curtain Airbags & Driver's Knee Airbag <br> ('22-'26 BRZ, '22-'26 Toyota GR86)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front to rear Side Curtain Airbags <br> ('10-'11 Impreza, '10-'14 Impreza WRX, '10-'14 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('12-'23 Impreza, '15-'26 WRX)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags ('15-'19 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Legacy)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Impreza)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Impreza)
|-
|A
|Class A (GVWR 3000 lbs. or less)
|-
|B
|Class B (GVWR 3001-4000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.)
|-
|6
|Class C (GVWR 4001-5000 lbs.) (For '09 Forester only)
|-
|D
|Class D (GVWR 5001-6000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags <br> ('10-'13 Forester, '10-'14 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('13-'15 XV Crosstrek, '16-'23 Crosstrek, '14-'24 Forester, '25 Forester Wilderness)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags <br> ('15-'19 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Outback, '24-'25 Crosstrek [Japanese-built models], '25 Forester [except Wilderness & Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Crosstrek [US-built models], '26- Forester [except Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek)
|-
|7
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags <br> ('10-'14 Tribeca)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags for all 3 rows & Driver's Knee Airbag <br> ('19-'26 Ascent)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'26 Outback, '25 Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek Hybrid)
|}
</div>
The '''Check Digit''' is identified in the '''<u>ninth</u>''' character of the Subaru VIN
The '''Model Year''' is identified in the '''<u>tenth</u>''' character of the Subaru VIN
Letters began being reused in 2010.
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|2001
|-
|2
|2002
|-
|3
|2003
|-
|4
|2004
|-
|5
|2005
|-
|6
|2006
|-
|7
|2007
|-
|8
|2008
|-
|9
|2009
|-
|A
|1980, 2010
|-
|B
|1981, 2011
|-
|C
|1982, 2012
|-
|D
|1983, 2013
|-
|E
|1984, 2014
|-
|F
|1985, 2015
|-
|G
|1986, 2016
|-
|H
|1987, 2017
|-
|I
|not used
|-
|J
|1988, 2018
|-
|K
|1989, 2019
|-
|L
|1990, 2020
|-
|M
|1991, 2021
|-
|N
|1992, 2022
|-
|P
|1993, 2023
|-
|R
|1994, 2024
|-
|S
|1995, 2025
|-
|T
|1996, 2026
|-
|V
|1997, 2027
|-
|W
|1998
|-
|X
|1999
|-
|Y
|2000
|}
</div>
===Plants and transmission type===
The '''assembly plant''' and '''transmission type''' is specified in the '''<u>eleventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Plant
!Transmission
|-
|1
|SIA
|FWD 5MT ('90-'96 Legacy)
|-
|1
|SIA
|Full-time AWD 5MT ('17-'23 Impreza)
|-
|1
|SIA
|Full-time AWD 6MT ('10-'14 & in Canada: '15-'17 Legacy, Outback)
|-
|2
|SIA
|Full-time AWD 5AT ('10-'14 Legacy 3.6R, Outback 3.6R)
|-
|3
|SIA
|Full-time AWD 6MT ('07-'09 Legacy GT spec.B).
|-
|3
|SIA
|Full-time AWD CVT ('10-'25 Legacy 2.5, Outback 2.5, '15-'19 Legacy 3.6R, Outback 3.6R,<br> '20-'25 Legacy 2.4T, Outback 2.4T, '17-'23 Impreza, '19-'26 Ascent, '24-'26 Crosstrek, '26- Forester, '26- Forester Hybrid)
|-
|4
|SIA
|Full-time AWD 5AT ('05-'09 Legacy, Outback, '06-'07 B9 Tribeca, '08-'14 Tribeca)
|-
|5
|SIA
|Full-time AWD 4-spd. Automatic w/Sport Shift ('03-'04 Legacy GT)
|-
|6
|SIA
|Full-time AWD 5MT
|-
|7
|SIA
|Full-time AWD 4EAT
|-
|8
|SIA
|Full-time AWD 4EAT ('95-'99 Legacy wagon RHD Postal vehicle)
|-
|9
|SIA
|FWD 4EAT ('90-'96 Legacy)
|-
|A
|FHI
|FWD 4MT
|-
|B
|FHI
|FWD 5MT
|-
|C
|FHI
|FWD 3AT ('81-'89 compact models, '90-'93 Loyale). FWD 4AT ('88-'91 XT/XT6).<br> FWD ECVT ('89-'93 Justy).
|-
|D
|FHI
|On-demand 4WD 4MT ('81-'84), On-demand 4WD 5MT ('85-'94)
|-
|E
|FHI
|4MT Dual Range 4wd ('81-'84, '85-'89 Hatchback, '85-'87 Brat).<br> 5MT Dual Range 4wd '85-'89 (excluding Hatchback & Brat)
|-
|F
|FHI
|On-demand 4WD 3AT ('83-'89 compact models, '90-'94 Loyale, '85-'87 XT coupe GL-10 Turbo 4wd).<br> On-demand 4WD ECVT ('90-'93 Justy).
|-
|G
|FHI
|Full-time AWD 5MT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 5MT ('12-'16 Impreza, '12-'14 Impreza WRX, '13-'15 XV Crosstrek, '16-'17 Crosstrek,<br> '12-'13 Forester)
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('14-'18 Forester, '18-'23 Crosstrek).
|-
|H
|FHI
|Full-time AWD 4EAT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 4EAT ('12-'13 Forester).
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('12-'16 Impreza, '13-'15 XV Crosstrek, '14-'15 XV Crosstrek Hybrid,<br> '16-'25 Crosstrek, '16 Crosstrek Hybrid, '19-'23 Crosstrek Hybrid (PHEV), '14-'25 Forester).
|-
|K
|FHI
|FWD 4EAT
|-
|L
|FHI
|Full-time AWD 6MT ('04-'11 Impreza WRX STi)
|-
|L
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('12-'14 Impreza WRX STi)
|-
|P
|FHI
|Full-time AWD 4EAT ('91-'94 Legacy wagon RHD Postal vehicle)
|-
|Y
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('26- Outback)
|-
|1
|FHI
|RWD 6MT ('13 BRZ, Scion FR-S)
|-
|2
|FHI
|RWD 6AT ('13 BRZ, Scion FR-S)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6AT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6MT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD CVT ('14-'16, '24-'26 Impreza, '14-'15 XV Crosstrek, '16-'25 Crosstrek, '26- Crosstrek Hybrid, '15-'26 WRX)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 5MT ('14-'16 Impreza, '14-'15 XV Crosstrek, '16-'17 Crosstrek)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 6MT ('15-'26 WRX, '15-'21 WRX STi, '18-'23 Crosstrek)
|}
</div>
** SIA = Subaru-Isuzu Automotive (now known as Subaru of Indiana Automotive), Lafayette, Indiana
** FHI = Fuji Heavy Industries, Gunma prefecture, Japan
===Positions 12–17, Serial Number===
The '''Vehicle Production Sequence''' number is specified in the '''<u>twelfth - seventeenth</u>''' characters of the Subaru VIN
** 002001 and after - Touring Wagon ('89), Loyale Touring wagon ('90)
** 002001 - 199999 - Impreza sedan ('12-'16), Impreza WRX sedan ('12-'14)
** 002001 - 199999 - Legacy sedan ('12-'19)
** 002001 - 099999 - Legacy sedan ('20-'25)
** 002001 and after - Forester, Forester Hybrid ('26-)
** 050001 - 059999 - Saab 9-2X ('05-'06)
** 100000 and after - Hatchback
** 100000 and after - SVX
** 100000 and after - Legacy Sedan SUS (Jan 98 - May 98)
** 100000 and after - Baja
** 100001 - 299999 - Outback wagon ('20-'25)
** 200001 and after - 4-dr sedan ('81-'89), Loyale 4-dr sedan ('90-'93)
** 200001 and after - Legacy Sedan '96-'08, Outback Sedan '00-'07
** 200001 - 399999 - Impreza hatchback ('12-'16, '24-'26), Impreza WRX hatchback ('12-'14), XV Crosstrek ('13-'15), Crosstrek ('16-'23)
** 200001 - 399999 - Crosstrek [Japan-built] ('24-'25), Crosstrek Hybrid [Japan-built] ('26-)
** 200001 - 399999 - Outback wagon ('12-'19)
** 210001 and after - Legacy Sedan '95, '09-'11
** 300001 and after - Hardtop coupe ('81-'84)
** 300001 and after - XT/XT6 coupe ('85-'91)
** 300001 and after - Legacy Station Wagon '96-'07; Outback wagon '05-'08
** 310001 and after - Legacy Station Wagon '95; Outback wagon '09-'11
** 370001 and after - Legacy Outback wagon '96
** 400001 and after - Station Wagon ('81-'89), Loyale station wagon ('90-'94)
** 400001 and after - Impreza Coupe ('95-'01)
** 400001 and after - B9 Tribeca ('06-'07)/Tribeca ('08-'11)
** 400001 - 599999 - Forester ('12-'25)
** 400001 - 599999 - Tribeca ('12-'14); Ascent ('19-'26)
** 450001 and after - Outback ('26-)
** 500001 and after - Brat
** 500001 and after - Impreza Sedan ('93-'11)
** 600001 and after - Legacy sedan ('90-'93: All, '94: Japanese-built)
** 640001 and after - Legacy sedan ('94: US-built)
** 600001 and after - Outback wagon '97-'04
** 600001 - 699999 - BRZ ('13-'19)
** 600001 - 699999 - Impreza Sedan ('17-'23)
** 700001 and after - Justy 3-d ('87-'94)
** 700001 and after - Forester ('98-'11)
** 700001 - 799999 - Scion FR-S ('13-'16), Toyota 86 ('17-'19)
** 700001 - 749999 - BRZ ('20, '22-'26)
** 700001 - 899999 - Impreza 5-door hatchback ('17-'23)
** 700001 - 899999 - Crosstrek [US-built] ('24-'26)
** 750001 and after - Justy 5-d ('90-'94)
** 750001 - 799999 - Toyota 86 ('20), Toyota GR86 ('22-'26)
** 800001 and after - 3-door coupe ('86-'89), Loyale 3-door coupe ('90)
** 800001 and after - Impreza Sports Wagon ('93-'07); Impreza 5-door hatchback ('08-'11)
** 800001 - 899999 - WRX ('15-'26)
** 800001 - 999999 - Crosstrek [Japan-built] ('24)
** 900001 and after - Legacy wagon ('90-'93: All, '94: Japanese-built)
** 940001 and after - Legacy wagon ('94: US-built)
** 990001 and after - Legacy GT wagon w/stepped roof ('94: US-built)
==External links==
Online [http://www.vindecoderz.com/EN/Subaru Subaru VIN decoder]
Online [www.auto-vin-decoder.com Universal VIN decoder]
{{BookCat}}
ds4z6npctl8uhkwhpsr6fs6by8hyst6
4672285
4672284
2026-09-25T09:03:50Z
JustTheFacts33
3434282
/* Positions 12–17, Serial Number */
4672285
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This chart is applicable to Subaru models made for North America.
Subaru uses a '''17-character VIN''' format and code for vehicles sold in the United States. These rules also apply to the Saab 9-2X, a badge-engineered Subaru Impreza wagon and to the Scion FR-S/Toyota 86/Toyota GR86, a twin of the Subaru BRZ.
For Subaru Uncharted, Solterra, and Trailseeker, see the Toyota VIN page: [[Vehicle Identification Numbers (VIN codes)/Toyota/VIN Codes]].
==Subaru VIN code==
The following sample is the sequence and meaning of each character in the Subaru VIN:
<div class=center>
<table class="wikitable" border="1"><caption></caption><tr>
<th>Position</th>
<th>Sample</th>
<th>Description</th>
</tr><tr>
<td>1</td>
<td>J</td>
<td rowspan=3>[[#Subaru WMIs|World Manufacturer Identifier]]</td>
</tr><tr>
<td>2</td>
<td>F</td>
</tr><tr>
<td>3</td>
<td>1</td>
</tr><tr>
<td>4</td>
<td>C</td>
<td>[[#Line types|Line type]]</td>
</tr><tr>
<td>5</td>
<td>X</td>
<td>[[#Body styles|Body style]]</td>
</tr><tr>
<td>6</td>
<td>8</td>
<td>[[#Engine types|Engine type]]</td>
</tr><tr>
<td>7</td>
<td>6</td>
<td>[[#Models|Model identifier]]</td>
</tr><tr>
<td>8</td>
<td>5</td>
<td>[[#Restraint types|Restraint type]]</td>
</tr><tr>
<td>9</td>
<td>9</td>
<td>[[../../Check digit/]]</td>
</tr><tr>
<td>10</td>
<td>T</td>
<td>[[../../Model year/]]</td>
</tr><tr>
<td>11</td>
<td>H</td>
<td>[[#Plants and transmission types|Plant of manufacture & transmission type]]</td>
</tr><tr>
<td>12</td>
<td>1</td>
<td rowspan=6>Sequential production number
</tr><tr>
<td>13</td>
<td>0</td>
</tr><tr>
<td>14</td>
<td>0</td>
</tr><tr>
<td>15</td>
<td>2</td>
</tr><tr>
<td>16</td>
<td>1</td>
</tr><tr>
<td>17</td>
<td>6</td>
</table>
</div>
<div class="center"><small>The above serial number describes the following vehicle built in Japan by Fuji Heavy Industries:</small></div>
<div class="center"><small>1996 Subaru Alcyone SVX, 3.3L EG33 engine, AWD 4EAT transmission, manual seat belts<br />with driver / passenger airbags. The 216th vehicle produced during the 1996 model year.</small></div>
===Subaru WMIs===
The '''WMI''' is specified in the '''<u>first three</u>''' characters of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!WMI
!Country
!Description
!Vehicle Types
|-
|JF1
|Japan
|Fuji Heavy Industries/Subaru Corp. (Includes Scion FR-S/Toyota 86/Toyota GR86.)
|Passenger Vehicle
|-
|JF2
|Japan
|Fuji Heavy Industries/Subaru Corp.
|MPV
|-
|JF3
|Japan
|Fuji Heavy Industries
|truck
|-
|JF4
|Japan
|Fuji Heavy Industries-built Saab (9-2X)
|Passenger Vehicle
|-
|MMR
|Thailand
|Tan Chong Subaru Automotive (Thailand) Ltd.
|
|-
|PLP
|Malaysia
|Tan Chong Motor Assemblies
|
|-
|4S3
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|Passenger Vehicle
|-
|4S4
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|MPV
|}
MPV means Multi-Purpose Vehicle (Normally includes SUV or passenger van. Subaru has often classified 4wd versions of other body styles as an MPV as well.)
</div>
===Line type===
The '''line type''' is specified in the '''<u>fourth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|STD/DL/GL/GLF/GL-10/RX/Loyale/Brat
|-
|A
|XT/XT6
|-
|B
|Legacy/Outback/Baja
|-
|C
|SVX
|-
|G
|Subaru Impreza '93-/Impreza WRX '02-'14/XV Crosstrek '13-'15/Crosstrek '16-/Saab 9-2X '05-'06
|-
|K
|Justy '87-'94 & '95 in Canada
|-
|S
|Forester
|-
|V
|WRX '15-
|-
|V
|Levorg (2nd gen. known as WRX Sportswagon in Australia & WRX wagon in S.E. Asia) (Not sold in North America)
|-
|W
|B9 Tribeca/Tribeca
|-
|W
|Ascent
|-
|Z
|Subaru BRZ/Scion FR-S/Toyota 86/Toyota GR86
|}
A also indicated Restraint type for 1981-1986 models. A meant Manual seatbelts.
</div>
===Body style===
The '''body style''' is specified in the '''<u>fifth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|'87-'94 Justy 3-Door
|-
|A
|'15-'21 WRX, WRX STi sedan (1st gen.)
|-
|B
|'81-'84 DL/GL 4-door sedan (2nd gen.)
|-
|B
|'22- WRX sedan (2nd gen.)
|-
|C
|'85-'93 DL/GL/GL-10/RX/Turbo/Loyale sedan (3rd gen.)
|-
|C
|'90-'94 Legacy sedan (1st gen.)
|-
|C
|'93-'01 Impreza sedan (1st gen.)
|-
|C
|'13-'20 BRZ coupe (1st gen.)
|-
|D
|'90-'94 Justy 5-Door
|-
|D
|'95-'99 Legacy sedan, '97-'99 Legacy SUS (2nd gen. Legacy)
|-
|D
|'02-'07 Impreza sedan, Impreza WRX sedan (2nd gen.)
|-
|D
|'22- BRZ coupe (2nd gen.)
|-
|E
|'00-'04 Legacy sedan, Outback sedan (3rd gen. Legacy)
|-
|E
|'08-'11 Impreza sedan, '08-'10 Impreza WRX sedan (3rd gen.)
|-
|F
|'81-'89 STD/DL/GL 3-door hatchback (2nd gen.)
|-
|F
|'93-'01 Impreza wagon, '95-'01 Impreza Outback Sport (1st gen.)
|-
|F
|'94 Legacy GT wagon [raised-roof] (1st gen.)
|-
|F
|Wagon: Forester (1st gen.) '98-'02
|-
|G
|'86-'90 DL/GL/RX/Turbo/Loyale 3-door coupe (3rd gen.)
|-
|G
|'96-'99 Legacy Outback wagon [raised-roof] (2nd gen. Legacy)
|-
|G
|'02-'07 Impreza wagon, Impreza WRX wagon, Impreza Outback Sport (2nd gen.), '05-'06 Saab 9-2X
|-
|G
|Wagon: Forester (2nd gen.) '03-'08
|-
|H
|'00-'04 Legacy wagon, Outback wagon (3rd gen. Legacy)
|-
|H
|'08-'11 Impreza 5-door hatchback, '08-'11 Impreza Outback Sport, '08-'10 Impreza WRX 5-door hatchback (3rd gen.)
|-
|H
|Wagon: Forester (3rd gen.) '09-'13
|-
|J
|'90-'94 Legacy wagon [non-raised-roof] (1st gen.)
|-
|J
|'12-'16 Impreza sedan (4th gen.)
|-
|J
|Wagon: Forester (4th gen.) '14-'18
|-
|K
|'89-'90 GL/GL-10/Turbo/Loyale Touring wagon [raised roof] (3rd gen.)
|-
|K
|'95-'99 Legacy wagon [non-raised-roof] (2nd gen.)
|-
|K
|'17-'23 Impreza sedan (5th gen.)
|-
|K
|Wagon: Forester (5th gen.) '19-'24, Forester Wilderness '22-'25
|-
|L
|'05-'09 Legacy sedan, '05-'07 Outback sedan (4th gen. Legacy)
|-
|L
|Wagon: Forester (6th gen.) '25-, Forester Wilderness '26-
|-
|M
|'81-'84 DL/GL 4-door wagon (2nd gen.)
|-
|M
|'95-'01 Impreza coupe (1st gen.)
|-
|M
|'10-'14 Legacy sedan (5th gen.)
|-
|M
|'19- Ascent (1st gen.)
|-
|M
|Levorg wagon (1st gen.) (Not sold in North America)
|-
|N
|'85-'94 DL/GL/GL-10/Turbo/Loyale wagon (3rd gen.)
|-
|N
|'13-'16 Scion FR-S, '17-'20 Toyota 86, '22- Toyota GR86 coupe
|-
|N
|'15-'19 Legacy sedan (6th gen.)
|-
|N
|Levorg wagon (WRX Sportswagon in Australia/WRX wagon in S.E. Asia) (2nd gen.) (Not sold in North America)
|-
|P
|'05-'07 (& '08-'09 in Canada) Legacy wagon, '05-'09 Outback wagon (4th gen. Legacy)
|-
|P
|'12-'16 Impreza 5-door hatchback (4th gen.), '13-'15 XV Crosstrek, '16-'17 Crosstrek (1st gen.)
|-
|R
|Brat 1981 (1st gen.)
|-
|R
|'08-'14 Impreza WRX STi 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'11-'14 Impreza WRX 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'10-'14 Outback wagon
|-
|S
|'15-'19 Outback Wagon
|-
|T
|Brat 1982-1985 (2nd gen.)
|-
|T
|'03-'06 Baja
|-
|T
|'17-'23 Impreza 5-door hatchback (5th gen.), '18-'23 Crosstrek (2nd gen.)
|-
|T
|'20-'25 Outback Wagon
|-
|U
|Brat 1986-1987 (2nd gen.)
|-
|U
|'24- Impreza 5-door hatchback (6th gen.), '24- Crosstrek (3rd gen.)
|-
|U
|'26- Outback
|-
|V
|'11-'14 Impreza WRX, WRX STi sedan [widebody] (3rd gen.)
|-
|W
|'81-'84 DL/GL/GLF 2-door hardtop coupe (2nd gen.)
|-
|W
|'20-'25 Legacy sedan (7th gen.)
|-
|X
|'85-'91 XT/XT6 coupe
|-
|X
|'92-'97 SVX coupe
|-
|X
|'06-'07 B9 Tribeca, '08-'14 Tribeca
|}
</div>
===Engine type===
The '''engine type''' is specified in the '''<u>sixth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable"
|+Position 6
!VIN code
!Engine
!Application
|-
|A
|2.0L DOHC, 16-valve FA20D flat-4 (Toyota 4U-GSE).<br> Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '13-'20, Toyota Scion FR-S '13-'16, Toyota 86 '17-'20
|-
|A
|2.0L DOHC, 16-valve FB20B flat-4. MPI. Dual VVT.
|Subaru Impreza '12-'16 (except WRX models), XV Crosstrek '13-'15,<br> Crosstrek '16-'17
|-
|A
|2.0L DOHC, 16-valve FB20D flat-4. Direct injection. Dual VVT.
|Subaru Impreza '17-'23, Impreza Base '24-'25, Sport '24-'26,<br> Crosstrek Base '18-'25, Premium '18-'24, Limited '18-'20
|-
|A
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '19-'24, Forester Wilderness '22-'25, Legacy '20-'25,<br> Outback '20-'25
|-
|A
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Ascent '19-'26, WRX '22-'26
|-
|B
|2.0L DOHC, 16-valve FB20X flat-4 + 1 electric motor.<br> Nickel-metal hydride Battery Pack. MPI. Dual VVT.
|Subaru XV Crosstrek Hybrid '14-'15, Crosstrek Hybrid '16
|-
|B
|2.4L DOHC, 16-valve FA24D flat-4. Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '22-'26, Toyota GR86 '22-'26
|-
|D
|2.0L DOHC, 16-valve FB20V flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Crosstrek Hybrid ([[w:PHEV|PHEV]]) '19-'23
|-
|D
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '25 (except Wilderness), '26
|-
|G
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Legacy XT '20-'25, Legacy Sport '23-'25,<br> Outback XT '20-'25, Outback Wilderness '22-'25
|-
|H
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Impreza RS '24-'26,<br> Crosstrek Sport '21-'26, Limited '21-'26, Wilderness '24-'26, Premium '25-'26, Base model '26-
|-
|P
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|R
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|S
|2.5L DOHC, 16-valve FB25D flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Forester Hybrid '25-'26, Crosstrek Hybrid '26-
|-
|1
|2.0L DOHC, 16-valve turbo/intercooled FA20F flat-4. Direct injection. Dual VVT.
|Subaru WRX '15-'21
|-
|2
|1.6L OHV, 8-valve EA71 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru Standard Hatchback 2wd '81-'87, DL Hatchback, 2-d Hardtop, 4-d Sedan 2wd '81-'84,<br> GL Hatchback 2wd w/man. trans. '86-'87
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI.
|Subaru Impreza (all models) '93-'94, Impreza Base, L 1.8, Outback Sport 1.8 '95
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI. AWD.
|Subaru Impreza Brighton '96-'97
|-
|2
|2.0L DOHC, 16-valve turbo/intercooled EJ205 flat-4. MPI.
|Subaru Impreza WRX '02-'05, Saab 9-2X Aero '05
|-
|2
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi '15-'21, STi S209 '19
|-
|3
|3.3L DOHC, 24-valve EG33 flat-6. MPI.
|Subaru SVX '92-'95
|-
|3
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. FWD.
|Subaru Legacy L '96
|-
|3
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi Type RA '18
|-
|4
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru DL Wagon 2wd '81-'84, GL 2-d Hardtop 2wd '83-'84, GL 4-d Sedan, Wagon 2wd '81-'84,<br> GLF 2-d Hardtop 2wd '81-'82, GL-10 2-d Hardtop, 4-d Sedan '83-'84, GL-10 Wagon '83,<br> GL Hatchback 2wd '81-'85, GL Hatchback 2wd w/auto. trans. '86-'87, GL Hatchback 2wd '88-'89
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 2WD.
|Subaru DL 3-d coupe 2wd '86, DL sedan, wagon 2wd '85-'86, GL sedan, wagon 2wd '85,<br> GL 3-d coupe, sedan, wagon 2wd w/man. trans. '86
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 2WD.
|Subaru DL 3-d coupe, sedan, wagon 2wd '87-'89, GL 3-d coupe, sedan, wagon 2wd w/auto. trans. '86, GL 3-d coupe, sedan, wagon 2wd '87-'89, GL-10 sedan, wagon 2wd '86-'88, Loyale 2wd '90-'93
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. MPI. 2WD.
|Subaru GL-10 sedan, wagon 2wd '85, XT coupe 2wd '85-'91
|-
|4
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 2WD.
|Subaru GL Turbo 2wd 3-d coupe '87, GL Turbo 2wd sedan '87, GL Turbo 2wd wagon '87,<br> GL-10 Turbo 2wd sedan '86-'89, GL-10 Turbo 2wd wagon '86-'89, Loyale Turbo 2wd '90,<br> XT coupe Turbo 2wd '85-'87
|-
|4
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. AWD.
|Subaru Impreza L '96-'01, LX '96, Impreza Outback Sport '96-'01,<br> Legacy Brighton, L '96-'99, LS '96, Outback '96
|-
|5
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 4WD. (Some models had 1-bbl. carb. in '82)
|Subaru DL Wagon 4wd '81-'84, GL 4-d Sedan 4wd '84, GL Wagon 4wd '81-'84,<br> Standard Hatchback 4wd '81, DL Hatchback 4wd '81, GL Hatchback 4wd '81-'89,<br> Brat DL 4wd '81-'83, Brat GL 4wd '81-'87
|-
|5
|1.8L OHV, 8-valve turbo EA81T flat-4. MPI. 4WD.
|Subaru Turbo 2-d Hardtop 4wd '84, Turbo Wagon 4wd '83-'84, Brat Turbo 4wd '83-'84
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 4WD.
|Subaru DL wagon 4wd '85-'86, DL wagon 4wd '87 (49-state version), GL sedan, wagon 4wd '85,<br> GL 3-d coupe, sedan, wagon 4wd '86, GL 3-d coupe, sedan, wagon 4wd '87 (49-state version)
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 4WD.
|Subaru DL wagon 4wd '87 (CA version), '88-'89;<br> GL 3-d coupe, sedan, wagon 4wd '87 (CA version), '88-'89; Loyale 4wd '90-'94
|-
|5
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD.
|Subaru GL Turbo 4wd 3-d coupe '86-'87, RX Turbo 4wd 3-d coupe '87-'89, RX Turbo 4wd sedan '85-'88, Turbo 4wd wagon '85, GL Turbo 4wd wagon '87-'89, GL-10 Turbo 4wd wagon w/man. trans. '86-'88, GL-10 Turbo 4wd wagon '89, Loyale Turbo 4wd '90
|-
|6
|2.2L SOHC, 16-valve EJ22 flat-4. MPI.
|Subaru Impreza L 2.2 '95, LX '95, Impreza Outback Sport 2.2 '95, Legacy '90-'95
|-
|6
|2.2L SOHC, 16-valve turbo EJ22T flat-4. MPI.
|Subaru Legacy Sport Sedan '91-'94, [LE] Touring Wagon '92-'94
|-
|6
|2.5L DOHC, 16-valve EJ25D flat-4 (Phase I). MPI.
|Subaru Impreza 2.5RS '98, Forester '98, Legacy 2.5GT '96-'99, LSi '96-'97,<br> SUS '97-'99, Outback '96-'99
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4 (Phase II). MPI.
|Subaru Impreza 2.5RS '99-'01, Impreza (except WRX) '02-'05,<br> Impreza Outback Sport '02-'05, Forester '99-'05, Legacy '00-'05,<br> Outback '00-'05, Baja Base '03, Sport '03-'06, Saab 9-2X Linear '05
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4. MPI. Intake VVL.
|Subaru Impreza (except WRX) '06-'11, Subaru Impreza Outback Sport '06-'11, Forester '06-'10, Legacy '06-'09, Outback '06-'09, Saab 9-2X 2.5i '06
|-
|6
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Forester XT '04-'10, Legacy GT '05-'09, Outback XT '05-'09,<br> Baja Turbo '04-'06
|-
|7
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 2wd.
|Subaru Justy '87-'89, Justy DL '90-'92
|-
|7
|1.2L SOHC, 9-valve EF12 I3. MPI. 2wd.
|Subaru Justy GL '90-'94, Justy DL '93-'94
|-
|7
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD w/air suspension.
|Subaru Turbo 4wd sedan '85, GL-10 Turbo 4wd sedan '86-'89, GL-10 Turbo 4wd wagon w/auto. trans. '86-'89, XT coupe Turbo 4wd '85-'89
|-
|7
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Impreza WRX '06-'14, Impreza WRX STi '04-'07, Impreza 2.5GT '09-'10,<br> Saab 9-2X Aero '06
|-
|8
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 4wd.
|Subaru Justy GL 4wd '88-'89
|-
|8
|1.2L SOHC, 9-valve EF12 I3. MPI. 4wd.
|Subaru Justy GL 4wd '90-'94
|-
|8
|2.7L SOHC, 12-valve ER27 flat-6. MPI. FWD.
|Subaru XT6 '88-'91
|-
|8
|3.3L DOHC, 24-valve EG33 flat-6. MPI. AWD.
|Subaru SVX '96-'97
|-
|8
|3.0L DOHC, 24-valve EZ30D flat-6. MPI. Intake VVT & VVL.
|Subaru Legacy 3.0R '08-'09, Outback H6-3.0 '01-'04, Outback 3.0R '05-'09,<br> B9 Tribeca '06-'07
|-
|8
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru Impreza WRX STi '08-'14
|-
|9
|2.7L SOHC, 12-valve ER27 flat-6. MPI. AWD.
|Subaru XT6 '88-'91
|-
|9
|3.6L DOHC, 24-valve EZ36D flat-6. MPI. Dual VVT.
|Subaru Tribeca '08-'14
|}
</div>
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|4
|FB 1600cc DIT AWD 2015+
|-
|D
|2000cc DOHC Turbo Diesel
|}
</div>
===Model===
The '''model''' is identified in the '''<u>seventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|Standard model '81-'87, Loyale RS 3-door coupe (non-Turbo) '90
|-
|1
|Impreza Base model '93-'95, 2.5i '07, 2.5i Special Edition '07, Impreza 2.5i '08-'09, Impreza 2.5i Premium '08, Saab 9-2X Linear '05, Saab 9-2X 2.5i '06
|-
|1
|Legacy 2.5i '05-'08, 2.5i Special Edition '06-'09
|-
|1
|Outback H6-3.0 wagon 35th Anniv. Ed. '04, Outback 2.5i '05-'08, 2.5i Special Edition '06, '09, 2.5i Basic '07, 2.5i L.L. Bean Edition '07-'08
|-
|1
|Forester Base model '98-'99, 2.5X '09
|-
|1
|Tribeca 5-psgr. base model '08-'09
|-
|1
|Baja Base model '03
|-
|2
|DL '81-'89, Loyale (non-Turbo) '90-'94, Brat DL '81-'83, Justy DL '87-'94, XT coupe DL '85-'88
|-
|2
|Impreza L fwd sedan w/man. trans. [w/o opt. power equipment, A/C, & stereo] '93, Impreza L Early '94 (only has driver-side airbag),<br> Impreza Brighton coupe '96-'97, Impreza Brighton wagon - Canada only: '98-'01, Impreza Outback Sport '07, Saab 9-2X Aero '05-'06
|-
|2
|Legacy Base model '90, '95, Legacy Brighton wagon '95-'00, Legacy L 35th Anniv. Ed. '04, Legacy 2.5i Limited '05-'09
|-
|2
|Outback 2.5i Limited wagon '05-'08, 2.5i Limited sedan '06-'07, 2.5i Limited L.L. Bean Edition wagon '07-'08
|-
|2
|SVX L Early '94 (has motorized seatbelts & driver-side airbag)
|-
|2
|B9 Tribeca 5-psgr. '06-'07
|-
|2
|Tribeca 5-psgr. Limited '08-'09, Tribeca 5-psgr. Special Edition '09
|-
|2
|Baja Sport '03-'06
|-
|3
|GL '81-'89, Brat GL '81-'87, Justy GL '87-'94, Justy RS '88-'89, XT coupe GL '85-'89, '91
|-
|3
|Impreza L '94 (has dual airbags), L '95-'01, Outback Sport '95, Impreza Outback Sport Special Edition '07, Impreza Outback Sport '08-'09
|-
|3
|Legacy L '90-'04, Legacy Sun Sport, Alpine Sport, Outdoor, & GT wagons '94, Legacy Outback '95, Legacy L Special Edition '03
|-
|3
|Outback 2.5XT Limited '07-'09
|-
|3
|SVX L '94-'97 (has manual seatbelts & dual airbags)
|-
|3
|Forester L '98-'02, 2.5X '03-'08, Sports 2.5X '07, 2.5X Premium '09
|-
|3
|B9 Tribeca 5-psgr. '06-'07
|-
|3
|Tribeca 5-psgr. Limited w/Navigation '08-'09
|-
|3
|Baja Turbo '04-'06
|-
|4
|GLF '81-'82, GL-10 '85-'89, XT6 coupe '88-'89, '91
|-
|4
|Impreza L "Plus" [L fwd sedan w/man. trans. w/opt. power equipment, A/C, & stereo plus all other Impreza L models] '93,<br> Impreza WRX '07-'08, WRX Limited '07, Impreza 2.5GT '09
|-
|4
|Legacy LS '90, 2.5GT '00-'04, 3.0R '09
|-
|4
|Outback 3.0R sedan '05, 3.0R wagon w/cloth seats '06
|-
|4
|SVX LS '92, '94
|-
|4
|Forester 2.5X L.L. Bean Edition '09, 2.5X Limited '09
|-
|5
|GL Turbo (except '87 4wd wagon) '83-'87, GL-10 Turbo '86-'89, Brat GL Turbo '83-'84, XT coupe GL-10 Turbo '85-'87
|-
|5
|Impreza LS '93-'94, LX '95-'96, 2.5TS '02-'04, Impreza WRX TR '07, Impreza WRX Premium '08
|-
|5
|Legacy LS "Special" '90, Legacy LS '91-'96, Legacy LSi '91-'95, 2.5GT Limited '00-'02, 3.0R Limited '08-'09
|-
|5
|Outback 3.0R VDC Limited wagon '05-'06, 3.0R Limited '09
|-
|5
|SVX LS-L (LS w/Touring Package) '92-'93, SVX LSi Awd '94-'95
|-
|5
|Forester S '98-'02, 2.5XS '03-'05, 2.5X Premium '06-'08, 2.5XT '09
|-
|5
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|RX Turbo '85-'89
|-
|6
|Impreza WRX STi '07, Impreza WRX '09, WRX Premium '09
|-
|6
|Legacy LSi '96-'97, Outback base model '00-'02, Outback 'Audio Edition' (Premium Audio instead of All-Weather Pkg.) wagon '03
|-
|6
|Outback 3.0R L.L. Bean Edition wagon '05-'08, 3.0R L.L. Bean Edition sedan '06-'07, 2.5i Limited '09
|-
|6
|SVX LSi '96-'97
|-
|6
|Forester Sports 2.5X '08, Sports 2.5XT '08, Forester 2.5XT Limited '09
|-
|6
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|Tribeca 7-psgr. base model '08-'09
|-
|7
|GL Turbo 4wd wagon '87-'89, Loyale Turbo '90, Loyale RS Turbo 3-door coupe '90
|-
|7
|Impreza 2.5RS '98-'05, 2.5i '06, Impreza WRX STi Limited '07
|-
|7
|Legacy Sport Sedan '91-'94, Legacy [LE] Touring Wagon '92-'94, Legacy 2.5GT '96-'99, Legacy 2.5GT Limited '98-'99, Outback w/All-Weather Pkg. '00-'02, Outback base model '03-'04, Legacy 2.5GT Limited '05-'09, Legacy 2.5GT Limited spec.B '06
|-
|7
|Outback 2.5XT Limited '05-'06
|-
|7
|Forester 2.5XS L.L. Bean Edition '05, 2.5X L.L. Bean Edition '06-'08
|-
|7
|Tribeca 7-psgr. Limited '08-'09, Tribeca 7-psgr. Special Edition '09
|-
|8
|Impreza Outback Sport '96-'06, Impreza Outback Sport Special Edition '05-'06
|-
|8
|Legacy 2.5GT '05
|-
|8
|Legacy Outback '96-'99, Legacy Outback Limited '97-'99, Legacy SUS '97-'99, Outback Limited wagon '00-'04, Outback Limited sedan '00-'04, Outback 2.5XT '05-'06
|-
|8
|Tribeca 7-psgr. Limited w/Navigation '08-'09
|-
|9
|Impreza WRX '02-'06, WRX TR '06, WRX Limited '06, Impreza WRX STi '08-'09
|-
|9
|Legacy L Awd wagon rhd Postal Vehicle '95-'99, Outback H6-3.0 VDC wagon '01-'04, Outback H6-3.0 wagon w/cloth seats '03, Outback H6-3.0 sedan '02-'04, Outback H6-3.0 VDC sedan '02-'04, Legacy 2.5GT spec.B '07-'09
|-
|9
|Forester 2.5XT '04-'05, 2.5XT Limited '06-'08, Sports 2.5XT '07
|-
|0
|Impreza WRX STi '04-'06, Impreza 2.5i Premium '09
|-
|0
|Legacy 2.5i '09
|-
|0
|Outback H6-3.0 L.L. Bean Edition wagon '01-'04, Outback base model '08, Outback 2.5i '09
|-
|0
|Tribeca 7-psgr. Limited w/Navigation & Rear-seat DVD Entertainment System '08-'09
|-
|}
</div>
rhd=right-hand drive
===Restraint Type (Passenger) or Weight Class (MPV)===
The '''restraint type''', for passenger vehicles, or the weight class (Gross Vehicle Weight Rating), for MPVs & trucks, is specified in the '''<u>eighth</u>''' character of the Subaru VIN. Beginning in 2010, MPVs include both '''restraint type''' and weight class (Gross Vehicle Weight Rating).
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|No Passive Restraint
|-
|2
|Automatic Seat Belt w/o Airbag
|-
|3
|Automatic Seat Belt w/Driver Airbag (1992-1994 Legacy, SVX)
|-
|4
|Manual Seat Belt w/Driver Airbag (1993-1994 Impreza)
|-
|5
|Manual Seat Belt w/Driver/Passenger Airbags
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and Side Airbags. (Includes '05-'06 Saab 9-2X.)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front-row Side Curtain Airbags <br> ('13-'20 BRZ, '13-'16 Scion FR-S, '17-'20 Toyota 86)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front-row Side Curtain Airbags & Driver's Knee Airbag <br> ('22-'26 BRZ, '22-'26 Toyota GR86)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front to rear Side Curtain Airbags <br> ('10-'11 Impreza, '10-'14 Impreza WRX, '10-'14 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('12-'23 Impreza, '15-'26 WRX)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags ('15-'19 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Legacy)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Impreza)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Impreza)
|-
|A
|Class A (GVWR 3000 lbs. or less)
|-
|B
|Class B (GVWR 3001-4000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.)
|-
|6
|Class C (GVWR 4001-5000 lbs.) (For '09 Forester only)
|-
|D
|Class D (GVWR 5001-6000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags <br> ('10-'13 Forester, '10-'14 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('13-'15 XV Crosstrek, '16-'23 Crosstrek, '14-'24 Forester, '25 Forester Wilderness)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags <br> ('15-'19 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Outback, '24-'25 Crosstrek [Japanese-built models], '25 Forester [except Wilderness & Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Crosstrek [US-built models], '26- Forester [except Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek)
|-
|7
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags <br> ('10-'14 Tribeca)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags for all 3 rows & Driver's Knee Airbag <br> ('19-'26 Ascent)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'26 Outback, '25 Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek Hybrid)
|}
</div>
The '''Check Digit''' is identified in the '''<u>ninth</u>''' character of the Subaru VIN
The '''Model Year''' is identified in the '''<u>tenth</u>''' character of the Subaru VIN
Letters began being reused in 2010.
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|2001
|-
|2
|2002
|-
|3
|2003
|-
|4
|2004
|-
|5
|2005
|-
|6
|2006
|-
|7
|2007
|-
|8
|2008
|-
|9
|2009
|-
|A
|1980, 2010
|-
|B
|1981, 2011
|-
|C
|1982, 2012
|-
|D
|1983, 2013
|-
|E
|1984, 2014
|-
|F
|1985, 2015
|-
|G
|1986, 2016
|-
|H
|1987, 2017
|-
|I
|not used
|-
|J
|1988, 2018
|-
|K
|1989, 2019
|-
|L
|1990, 2020
|-
|M
|1991, 2021
|-
|N
|1992, 2022
|-
|P
|1993, 2023
|-
|R
|1994, 2024
|-
|S
|1995, 2025
|-
|T
|1996, 2026
|-
|V
|1997, 2027
|-
|W
|1998
|-
|X
|1999
|-
|Y
|2000
|}
</div>
===Plants and transmission type===
The '''assembly plant''' and '''transmission type''' is specified in the '''<u>eleventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Plant
!Transmission
|-
|1
|SIA
|FWD 5MT ('90-'96 Legacy)
|-
|1
|SIA
|Full-time AWD 5MT ('17-'23 Impreza)
|-
|1
|SIA
|Full-time AWD 6MT ('10-'14 & in Canada: '15-'17 Legacy, Outback)
|-
|2
|SIA
|Full-time AWD 5AT ('10-'14 Legacy 3.6R, Outback 3.6R)
|-
|3
|SIA
|Full-time AWD 6MT ('07-'09 Legacy GT spec.B).
|-
|3
|SIA
|Full-time AWD CVT ('10-'25 Legacy 2.5, Outback 2.5, '15-'19 Legacy 3.6R, Outback 3.6R,<br> '20-'25 Legacy 2.4T, Outback 2.4T, '17-'23 Impreza, '19-'26 Ascent, '24-'26 Crosstrek, '26- Forester, '26- Forester Hybrid)
|-
|4
|SIA
|Full-time AWD 5AT ('05-'09 Legacy, Outback, '06-'07 B9 Tribeca, '08-'14 Tribeca)
|-
|5
|SIA
|Full-time AWD 4-spd. Automatic w/Sport Shift ('03-'04 Legacy GT)
|-
|6
|SIA
|Full-time AWD 5MT
|-
|7
|SIA
|Full-time AWD 4EAT
|-
|8
|SIA
|Full-time AWD 4EAT ('95-'99 Legacy wagon RHD Postal vehicle)
|-
|9
|SIA
|FWD 4EAT ('90-'96 Legacy)
|-
|A
|FHI
|FWD 4MT
|-
|B
|FHI
|FWD 5MT
|-
|C
|FHI
|FWD 3AT ('81-'89 compact models, '90-'93 Loyale). FWD 4AT ('88-'91 XT/XT6).<br> FWD ECVT ('89-'93 Justy).
|-
|D
|FHI
|On-demand 4WD 4MT ('81-'84), On-demand 4WD 5MT ('85-'94)
|-
|E
|FHI
|4MT Dual Range 4wd ('81-'84, '85-'89 Hatchback, '85-'87 Brat).<br> 5MT Dual Range 4wd '85-'89 (excluding Hatchback & Brat)
|-
|F
|FHI
|On-demand 4WD 3AT ('83-'89 compact models, '90-'94 Loyale, '85-'87 XT coupe GL-10 Turbo 4wd).<br> On-demand 4WD ECVT ('90-'93 Justy).
|-
|G
|FHI
|Full-time AWD 5MT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 5MT ('12-'16 Impreza, '12-'14 Impreza WRX, '13-'15 XV Crosstrek, '16-'17 Crosstrek,<br> '12-'13 Forester)
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('14-'18 Forester, '18-'23 Crosstrek).
|-
|H
|FHI
|Full-time AWD 4EAT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 4EAT ('12-'13 Forester).
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('12-'16 Impreza, '13-'15 XV Crosstrek, '14-'15 XV Crosstrek Hybrid,<br> '16-'25 Crosstrek, '16 Crosstrek Hybrid, '19-'23 Crosstrek Hybrid (PHEV), '14-'25 Forester).
|-
|K
|FHI
|FWD 4EAT
|-
|L
|FHI
|Full-time AWD 6MT ('04-'11 Impreza WRX STi)
|-
|L
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('12-'14 Impreza WRX STi)
|-
|P
|FHI
|Full-time AWD 4EAT ('91-'94 Legacy wagon RHD Postal vehicle)
|-
|Y
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('26- Outback)
|-
|1
|FHI
|RWD 6MT ('13 BRZ, Scion FR-S)
|-
|2
|FHI
|RWD 6AT ('13 BRZ, Scion FR-S)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6AT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6MT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD CVT ('14-'16, '24-'26 Impreza, '14-'15 XV Crosstrek, '16-'25 Crosstrek, '26- Crosstrek Hybrid, '15-'26 WRX)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 5MT ('14-'16 Impreza, '14-'15 XV Crosstrek, '16-'17 Crosstrek)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 6MT ('15-'26 WRX, '15-'21 WRX STi, '18-'23 Crosstrek)
|}
</div>
** SIA = Subaru-Isuzu Automotive (now known as Subaru of Indiana Automotive), Lafayette, Indiana
** FHI = Fuji Heavy Industries, Gunma prefecture, Japan
===Serial Number===
The '''Vehicle Production Sequence''' number is specified in the '''<u>twelfth - seventeenth</u>''' characters of the Subaru VIN
** 002001 and after - Touring Wagon ('89), Loyale Touring wagon ('90)
** 002001 - 199999 - Impreza sedan ('12-'16), Impreza WRX sedan ('12-'14)
** 002001 - 199999 - Legacy sedan ('12-'19)
** 002001 - 099999 - Legacy sedan ('20-'25)
** 002001 and after - Forester, Forester Hybrid ('26-)
** 050001 - 059999 - Saab 9-2X ('05-'06)
** 100000 and after - Hatchback
** 100000 and after - SVX
** 100000 and after - Legacy Sedan SUS (Jan 98 - May 98)
** 100000 and after - Baja
** 100001 - 299999 - Outback wagon ('20-'25)
** 200001 and after - 4-dr sedan ('81-'89), Loyale 4-dr sedan ('90-'93)
** 200001 and after - Legacy Sedan '96-'08, Outback Sedan '00-'07
** 200001 - 399999 - Impreza hatchback ('12-'16, '24-'26), Impreza WRX hatchback ('12-'14), XV Crosstrek ('13-'15), Crosstrek ('16-'23)
** 200001 - 399999 - Crosstrek [Japan-built] ('24-'25), Crosstrek Hybrid [Japan-built] ('26-)
** 200001 - 399999 - Outback wagon ('12-'19)
** 210001 and after - Legacy Sedan '95, '09-'11
** 300001 and after - Hardtop coupe ('81-'84)
** 300001 and after - XT/XT6 coupe ('85-'91)
** 300001 and after - Legacy Station Wagon '96-'07; Outback wagon '05-'08
** 310001 and after - Legacy Station Wagon '95; Outback wagon '09-'11
** 370001 and after - Legacy Outback wagon '96
** 400001 and after - Station Wagon ('81-'89), Loyale station wagon ('90-'94)
** 400001 and after - Impreza Coupe ('95-'01)
** 400001 and after - B9 Tribeca ('06-'07)/Tribeca ('08-'11)
** 400001 - 599999 - Forester ('12-'25)
** 400001 - 599999 - Tribeca ('12-'14); Ascent ('19-'26)
** 450001 and after - Outback ('26-)
** 500001 and after - Brat
** 500001 and after - Impreza Sedan ('93-'11)
** 600001 and after - Legacy sedan ('90-'93: All, '94: Japanese-built)
** 640001 and after - Legacy sedan ('94: US-built)
** 600001 and after - Outback wagon '97-'04
** 600001 - 699999 - BRZ ('13-'19)
** 600001 - 699999 - Impreza Sedan ('17-'23)
** 700001 and after - Justy 3-d ('87-'94)
** 700001 and after - Forester ('98-'11)
** 700001 - 799999 - Scion FR-S ('13-'16), Toyota 86 ('17-'19)
** 700001 - 749999 - BRZ ('20, '22-'26)
** 700001 - 899999 - Impreza 5-door hatchback ('17-'23)
** 700001 - 899999 - Crosstrek [US-built] ('24-'26)
** 750001 and after - Justy 5-d ('90-'94)
** 750001 - 799999 - Toyota 86 ('20), Toyota GR86 ('22-'26)
** 800001 and after - 3-door coupe ('86-'89), Loyale 3-door coupe ('90)
** 800001 and after - Impreza Sports Wagon ('93-'07); Impreza 5-door hatchback ('08-'11)
** 800001 - 899999 - WRX ('15-'26)
** 800001 - 999999 - Crosstrek [Japan-built] ('24)
** 900001 and after - Legacy wagon ('90-'93: All, '94: Japanese-built)
** 940001 and after - Legacy wagon ('94: US-built)
** 990001 and after - Legacy GT wagon w/stepped roof ('94: US-built)
==External links==
Online [http://www.vindecoderz.com/EN/Subaru Subaru VIN decoder]
Online [www.auto-vin-decoder.com Universal VIN decoder]
{{BookCat}}
rqshiosr5t81730ebo6uj5rjdk9z7yi
4672286
4672285
2026-09-25T09:05:18Z
JustTheFacts33
3434282
/* Subaru VIN code */
4672286
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This chart is applicable to Subaru models made for North America.
Subaru uses a '''17-character VIN''' format and code for vehicles sold in the United States. These rules also apply to the Saab 9-2X, a badge-engineered Subaru Impreza wagon and to the Scion FR-S/Toyota 86/Toyota GR86, a twin of the Subaru BRZ.
For Subaru Uncharted, Solterra, and Trailseeker, see the Toyota VIN page: [[Vehicle Identification Numbers (VIN codes)/Toyota/VIN Codes]].
==Subaru VIN code==
The following sample is the sequence and meaning of each character in the Subaru VIN:
<div class=center>
<table class="wikitable" border="1"><caption></caption><tr>
<th>Position</th>
<th>Sample</th>
<th>Description</th>
</tr><tr>
<td>1</td>
<td>J</td>
<td rowspan=3>[[#Subaru WMIs|World Manufacturer Identifier]]</td>
</tr><tr>
<td>2</td>
<td>F</td>
</tr><tr>
<td>3</td>
<td>1</td>
</tr><tr>
<td>4</td>
<td>C</td>
<td>[[#Line types|Line type]]</td>
</tr><tr>
<td>5</td>
<td>X</td>
<td>[[#Body styles|Body style]]</td>
</tr><tr>
<td>6</td>
<td>8</td>
<td>[[#Engine types|Engine type]]</td>
</tr><tr>
<td>7</td>
<td>6</td>
<td>[[#Models|Model identifier]]</td>
</tr><tr>
<td>8</td>
<td>5</td>
<td>[[#Restraint types|Restraint type]]</td>
</tr><tr>
<td>9</td>
<td>9</td>
<td>[[../../Check digit/]]</td>
</tr><tr>
<td>10</td>
<td>T</td>
<td>[[../../Model year/]]</td>
</tr><tr>
<td>11</td>
<td>H</td>
<td>[[#Plants and transmission types|Plant of manufacture & transmission type]]</td>
</tr><tr>
<td>12</td>
<td>1</td>
<td rowspan=6>[[#Serial Number|Sequential production number]]</td>
</tr><tr>
<td>13</td>
<td>0</td>
</tr><tr>
<td>14</td>
<td>0</td>
</tr><tr>
<td>15</td>
<td>2</td>
</tr><tr>
<td>16</td>
<td>1</td>
</tr><tr>
<td>17</td>
<td>6</td>
</table>
</div>
<div class="center"><small>The above serial number describes the following vehicle built in Japan by Fuji Heavy Industries:</small></div>
<div class="center"><small>1996 Subaru Alcyone SVX, 3.3L EG33 engine, AWD 4EAT transmission, manual seat belts<br />with driver / passenger airbags. The 216th vehicle produced during the 1996 model year.</small></div>
===Subaru WMIs===
The '''WMI''' is specified in the '''<u>first three</u>''' characters of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!WMI
!Country
!Description
!Vehicle Types
|-
|JF1
|Japan
|Fuji Heavy Industries/Subaru Corp. (Includes Scion FR-S/Toyota 86/Toyota GR86.)
|Passenger Vehicle
|-
|JF2
|Japan
|Fuji Heavy Industries/Subaru Corp.
|MPV
|-
|JF3
|Japan
|Fuji Heavy Industries
|truck
|-
|JF4
|Japan
|Fuji Heavy Industries-built Saab (9-2X)
|Passenger Vehicle
|-
|MMR
|Thailand
|Tan Chong Subaru Automotive (Thailand) Ltd.
|
|-
|PLP
|Malaysia
|Tan Chong Motor Assemblies
|
|-
|4S3
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|Passenger Vehicle
|-
|4S4
|USA
|Subaru-Isuzu Automotive /<br>Subaru of Indiana Automotive
|MPV
|}
MPV means Multi-Purpose Vehicle (Normally includes SUV or passenger van. Subaru has often classified 4wd versions of other body styles as an MPV as well.)
</div>
===Line type===
The '''line type''' is specified in the '''<u>fourth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|STD/DL/GL/GLF/GL-10/RX/Loyale/Brat
|-
|A
|XT/XT6
|-
|B
|Legacy/Outback/Baja
|-
|C
|SVX
|-
|G
|Subaru Impreza '93-/Impreza WRX '02-'14/XV Crosstrek '13-'15/Crosstrek '16-/Saab 9-2X '05-'06
|-
|K
|Justy '87-'94 & '95 in Canada
|-
|S
|Forester
|-
|V
|WRX '15-
|-
|V
|Levorg (2nd gen. known as WRX Sportswagon in Australia & WRX wagon in S.E. Asia) (Not sold in North America)
|-
|W
|B9 Tribeca/Tribeca
|-
|W
|Ascent
|-
|Z
|Subaru BRZ/Scion FR-S/Toyota 86/Toyota GR86
|}
A also indicated Restraint type for 1981-1986 models. A meant Manual seatbelts.
</div>
===Body style===
The '''body style''' is specified in the '''<u>fifth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|A
|'87-'94 Justy 3-Door
|-
|A
|'15-'21 WRX, WRX STi sedan (1st gen.)
|-
|B
|'81-'84 DL/GL 4-door sedan (2nd gen.)
|-
|B
|'22- WRX sedan (2nd gen.)
|-
|C
|'85-'93 DL/GL/GL-10/RX/Turbo/Loyale sedan (3rd gen.)
|-
|C
|'90-'94 Legacy sedan (1st gen.)
|-
|C
|'93-'01 Impreza sedan (1st gen.)
|-
|C
|'13-'20 BRZ coupe (1st gen.)
|-
|D
|'90-'94 Justy 5-Door
|-
|D
|'95-'99 Legacy sedan, '97-'99 Legacy SUS (2nd gen. Legacy)
|-
|D
|'02-'07 Impreza sedan, Impreza WRX sedan (2nd gen.)
|-
|D
|'22- BRZ coupe (2nd gen.)
|-
|E
|'00-'04 Legacy sedan, Outback sedan (3rd gen. Legacy)
|-
|E
|'08-'11 Impreza sedan, '08-'10 Impreza WRX sedan (3rd gen.)
|-
|F
|'81-'89 STD/DL/GL 3-door hatchback (2nd gen.)
|-
|F
|'93-'01 Impreza wagon, '95-'01 Impreza Outback Sport (1st gen.)
|-
|F
|'94 Legacy GT wagon [raised-roof] (1st gen.)
|-
|F
|Wagon: Forester (1st gen.) '98-'02
|-
|G
|'86-'90 DL/GL/RX/Turbo/Loyale 3-door coupe (3rd gen.)
|-
|G
|'96-'99 Legacy Outback wagon [raised-roof] (2nd gen. Legacy)
|-
|G
|'02-'07 Impreza wagon, Impreza WRX wagon, Impreza Outback Sport (2nd gen.), '05-'06 Saab 9-2X
|-
|G
|Wagon: Forester (2nd gen.) '03-'08
|-
|H
|'00-'04 Legacy wagon, Outback wagon (3rd gen. Legacy)
|-
|H
|'08-'11 Impreza 5-door hatchback, '08-'11 Impreza Outback Sport, '08-'10 Impreza WRX 5-door hatchback (3rd gen.)
|-
|H
|Wagon: Forester (3rd gen.) '09-'13
|-
|J
|'90-'94 Legacy wagon [non-raised-roof] (1st gen.)
|-
|J
|'12-'16 Impreza sedan (4th gen.)
|-
|J
|Wagon: Forester (4th gen.) '14-'18
|-
|K
|'89-'90 GL/GL-10/Turbo/Loyale Touring wagon [raised roof] (3rd gen.)
|-
|K
|'95-'99 Legacy wagon [non-raised-roof] (2nd gen.)
|-
|K
|'17-'23 Impreza sedan (5th gen.)
|-
|K
|Wagon: Forester (5th gen.) '19-'24, Forester Wilderness '22-'25
|-
|L
|'05-'09 Legacy sedan, '05-'07 Outback sedan (4th gen. Legacy)
|-
|L
|Wagon: Forester (6th gen.) '25-, Forester Wilderness '26-
|-
|M
|'81-'84 DL/GL 4-door wagon (2nd gen.)
|-
|M
|'95-'01 Impreza coupe (1st gen.)
|-
|M
|'10-'14 Legacy sedan (5th gen.)
|-
|M
|'19- Ascent (1st gen.)
|-
|M
|Levorg wagon (1st gen.) (Not sold in North America)
|-
|N
|'85-'94 DL/GL/GL-10/Turbo/Loyale wagon (3rd gen.)
|-
|N
|'13-'16 Scion FR-S, '17-'20 Toyota 86, '22- Toyota GR86 coupe
|-
|N
|'15-'19 Legacy sedan (6th gen.)
|-
|N
|Levorg wagon (WRX Sportswagon in Australia/WRX wagon in S.E. Asia) (2nd gen.) (Not sold in North America)
|-
|P
|'05-'07 (& '08-'09 in Canada) Legacy wagon, '05-'09 Outback wagon (4th gen. Legacy)
|-
|P
|'12-'16 Impreza 5-door hatchback (4th gen.), '13-'15 XV Crosstrek, '16-'17 Crosstrek (1st gen.)
|-
|R
|Brat 1981 (1st gen.)
|-
|R
|'08-'14 Impreza WRX STi 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'11-'14 Impreza WRX 5-door hatchback [widebody] (3rd gen.)
|-
|R
|'10-'14 Outback wagon
|-
|S
|'15-'19 Outback Wagon
|-
|T
|Brat 1982-1985 (2nd gen.)
|-
|T
|'03-'06 Baja
|-
|T
|'17-'23 Impreza 5-door hatchback (5th gen.), '18-'23 Crosstrek (2nd gen.)
|-
|T
|'20-'25 Outback Wagon
|-
|U
|Brat 1986-1987 (2nd gen.)
|-
|U
|'24- Impreza 5-door hatchback (6th gen.), '24- Crosstrek (3rd gen.)
|-
|U
|'26- Outback
|-
|V
|'11-'14 Impreza WRX, WRX STi sedan [widebody] (3rd gen.)
|-
|W
|'81-'84 DL/GL/GLF 2-door hardtop coupe (2nd gen.)
|-
|W
|'20-'25 Legacy sedan (7th gen.)
|-
|X
|'85-'91 XT/XT6 coupe
|-
|X
|'92-'97 SVX coupe
|-
|X
|'06-'07 B9 Tribeca, '08-'14 Tribeca
|}
</div>
===Engine type===
The '''engine type''' is specified in the '''<u>sixth</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable"
|+Position 6
!VIN code
!Engine
!Application
|-
|A
|2.0L DOHC, 16-valve FA20D flat-4 (Toyota 4U-GSE).<br> Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '13-'20, Toyota Scion FR-S '13-'16, Toyota 86 '17-'20
|-
|A
|2.0L DOHC, 16-valve FB20B flat-4. MPI. Dual VVT.
|Subaru Impreza '12-'16 (except WRX models), XV Crosstrek '13-'15,<br> Crosstrek '16-'17
|-
|A
|2.0L DOHC, 16-valve FB20D flat-4. Direct injection. Dual VVT.
|Subaru Impreza '17-'23, Impreza Base '24-'25, Sport '24-'26,<br> Crosstrek Base '18-'25, Premium '18-'24, Limited '18-'20
|-
|A
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '19-'24, Forester Wilderness '22-'25, Legacy '20-'25,<br> Outback '20-'25
|-
|A
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Ascent '19-'26, WRX '22-'26
|-
|B
|2.0L DOHC, 16-valve FB20X flat-4 + 1 electric motor.<br> Nickel-metal hydride Battery Pack. MPI. Dual VVT.
|Subaru XV Crosstrek Hybrid '14-'15, Crosstrek Hybrid '16
|-
|B
|2.4L DOHC, 16-valve FA24D flat-4. Toyota D-4S Direct/Port injection. Dual VVT.
|Subaru BRZ '22-'26, Toyota GR86 '22-'26
|-
|D
|2.0L DOHC, 16-valve FB20V flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Crosstrek Hybrid ([[w:PHEV|PHEV]]) '19-'23
|-
|D
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Forester '25 (except Wilderness), '26
|-
|G
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Legacy XT '20-'25, Legacy Sport '23-'25,<br> Outback XT '20-'25, Outback Wilderness '22-'25
|-
|H
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Impreza RS '24-'26,<br> Crosstrek Sport '21-'26, Limited '21-'26, Wilderness '24-'26, Premium '25-'26, Base model '26-
|-
|P
|2.5L DOHC, 16-valve FB25D flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|R
|2.4L DOHC, 16-valve turbo/intercooled FA24F flat-4. Direct injection. Dual VVT.
|Subaru Outback '26-
|-
|S
|2.5L DOHC, 16-valve FB25D flat-4 + 2 electric motors. Lithium-ion battery pack. Direct injection. Dual VVT. Atkinson cycle.
|Subaru Forester Hybrid '25-'26, Crosstrek Hybrid '26-
|-
|1
|2.0L DOHC, 16-valve turbo/intercooled FA20F flat-4. Direct injection. Dual VVT.
|Subaru WRX '15-'21
|-
|2
|1.6L OHV, 8-valve EA71 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru Standard Hatchback 2wd '81-'87, DL Hatchback, 2-d Hardtop, 4-d Sedan 2wd '81-'84,<br> GL Hatchback 2wd w/man. trans. '86-'87
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI.
|Subaru Impreza (all models) '93-'94, Impreza Base, L 1.8, Outback Sport 1.8 '95
|-
|2
|1.8L SOHC, 16-valve EJ18 flat-4. MPI. AWD.
|Subaru Impreza Brighton '96-'97
|-
|2
|2.0L DOHC, 16-valve turbo/intercooled EJ205 flat-4. MPI.
|Subaru Impreza WRX '02-'05, Saab 9-2X Aero '05
|-
|2
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi '15-'21, STi S209 '19
|-
|3
|3.3L DOHC, 24-valve EG33 flat-6. MPI.
|Subaru SVX '92-'95
|-
|3
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. FWD.
|Subaru Legacy L '96
|-
|3
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru WRX STi Type RA '18
|-
|4
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 2WD. (Some 49-state models had 1-bbl. carb. in '83-'84)
|Subaru DL Wagon 2wd '81-'84, GL 2-d Hardtop 2wd '83-'84, GL 4-d Sedan, Wagon 2wd '81-'84,<br> GLF 2-d Hardtop 2wd '81-'82, GL-10 2-d Hardtop, 4-d Sedan '83-'84, GL-10 Wagon '83,<br> GL Hatchback 2wd '81-'85, GL Hatchback 2wd w/auto. trans. '86-'87, GL Hatchback 2wd '88-'89
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 2WD.
|Subaru DL 3-d coupe 2wd '86, DL sedan, wagon 2wd '85-'86, GL sedan, wagon 2wd '85,<br> GL 3-d coupe, sedan, wagon 2wd w/man. trans. '86
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 2WD.
|Subaru DL 3-d coupe, sedan, wagon 2wd '87-'89, GL 3-d coupe, sedan, wagon 2wd w/auto. trans. '86, GL 3-d coupe, sedan, wagon 2wd '87-'89, GL-10 sedan, wagon 2wd '86-'88, Loyale 2wd '90-'93
|-
|4
|1.8L SOHC, 8-valve EA82 flat-4. MPI. 2WD.
|Subaru GL-10 sedan, wagon 2wd '85, XT coupe 2wd '85-'91
|-
|4
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 2WD.
|Subaru GL Turbo 2wd 3-d coupe '87, GL Turbo 2wd sedan '87, GL Turbo 2wd wagon '87,<br> GL-10 Turbo 2wd sedan '86-'89, GL-10 Turbo 2wd wagon '86-'89, Loyale Turbo 2wd '90,<br> XT coupe Turbo 2wd '85-'87
|-
|4
|2.2L SOHC, 16-valve EJ22 flat-4. MPI. AWD.
|Subaru Impreza L '96-'01, LX '96, Impreza Outback Sport '96-'01,<br> Legacy Brighton, L '96-'99, LS '96, Outback '96
|-
|5
|1.8L OHV, 8-valve EA81 flat-4. 2-bbl. carb. 4WD. (Some models had 1-bbl. carb. in '82)
|Subaru DL Wagon 4wd '81-'84, GL 4-d Sedan 4wd '84, GL Wagon 4wd '81-'84,<br> Standard Hatchback 4wd '81, DL Hatchback 4wd '81, GL Hatchback 4wd '81-'89,<br> Brat DL 4wd '81-'83, Brat GL 4wd '81-'87
|-
|5
|1.8L OHV, 8-valve turbo EA81T flat-4. MPI. 4WD.
|Subaru Turbo 2-d Hardtop 4wd '84, Turbo Wagon 4wd '83-'84, Brat Turbo 4wd '83-'84
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. 2-bbl. carb. 4WD.
|Subaru DL wagon 4wd '85-'86, DL wagon 4wd '87 (49-state version), GL sedan, wagon 4wd '85,<br> GL 3-d coupe, sedan, wagon 4wd '86, GL 3-d coupe, sedan, wagon 4wd '87 (49-state version)
|-
|5
|1.8L SOHC, 8-valve EA82 flat-4. TBI. 4WD.
|Subaru DL wagon 4wd '87 (CA version), '88-'89;<br> GL 3-d coupe, sedan, wagon 4wd '87 (CA version), '88-'89; Loyale 4wd '90-'94
|-
|5
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD.
|Subaru GL Turbo 4wd 3-d coupe '86-'87, RX Turbo 4wd 3-d coupe '87-'89, RX Turbo 4wd sedan '85-'88, Turbo 4wd wagon '85, GL Turbo 4wd wagon '87-'89, GL-10 Turbo 4wd wagon w/man. trans. '86-'88, GL-10 Turbo 4wd wagon '89, Loyale Turbo 4wd '90
|-
|6
|2.2L SOHC, 16-valve EJ22 flat-4. MPI.
|Subaru Impreza L 2.2 '95, LX '95, Impreza Outback Sport 2.2 '95, Legacy '90-'95
|-
|6
|2.2L SOHC, 16-valve turbo EJ22T flat-4. MPI.
|Subaru Legacy Sport Sedan '91-'94, [LE] Touring Wagon '92-'94
|-
|6
|2.5L DOHC, 16-valve EJ25D flat-4 (Phase I). MPI.
|Subaru Impreza 2.5RS '98, Forester '98, Legacy 2.5GT '96-'99, LSi '96-'97,<br> SUS '97-'99, Outback '96-'99
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4 (Phase II). MPI.
|Subaru Impreza 2.5RS '99-'01, Impreza (except WRX) '02-'05,<br> Impreza Outback Sport '02-'05, Forester '99-'05, Legacy '00-'05,<br> Outback '00-'05, Baja Base '03, Sport '03-'06, Saab 9-2X Linear '05
|-
|6
|2.5L SOHC, 16-valve EJ253 flat-4. MPI. Intake VVL.
|Subaru Impreza (except WRX) '06-'11, Subaru Impreza Outback Sport '06-'11, Forester '06-'10, Legacy '06-'09, Outback '06-'09, Saab 9-2X 2.5i '06
|-
|6
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Forester XT '04-'10, Legacy GT '05-'09, Outback XT '05-'09,<br> Baja Turbo '04-'06
|-
|7
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 2wd.
|Subaru Justy '87-'89, Justy DL '90-'92
|-
|7
|1.2L SOHC, 9-valve EF12 I3. MPI. 2wd.
|Subaru Justy GL '90-'94, Justy DL '93-'94
|-
|7
|1.8L SOHC, 8-valve turbo EA82T flat-4. MPI. 4WD w/air suspension.
|Subaru Turbo 4wd sedan '85, GL-10 Turbo 4wd sedan '86-'89, GL-10 Turbo 4wd wagon w/auto. trans. '86-'89, XT coupe Turbo 4wd '85-'89
|-
|7
|2.5L DOHC, 16-valve turbo/intercooled EJ255 flat-4. MPI. Intake VVT.
|Subaru Impreza WRX '06-'14, Impreza WRX STi '04-'07, Impreza 2.5GT '09-'10,<br> Saab 9-2X Aero '06
|-
|8
|1.2L SOHC, 9-valve EF12 I3. 2-bbl. carb. 4wd.
|Subaru Justy GL 4wd '88-'89
|-
|8
|1.2L SOHC, 9-valve EF12 I3. MPI. 4wd.
|Subaru Justy GL 4wd '90-'94
|-
|8
|2.7L SOHC, 12-valve ER27 flat-6. MPI. FWD.
|Subaru XT6 '88-'91
|-
|8
|3.3L DOHC, 24-valve EG33 flat-6. MPI. AWD.
|Subaru SVX '96-'97
|-
|8
|3.0L DOHC, 24-valve EZ30D flat-6. MPI. Intake VVT & VVL.
|Subaru Legacy 3.0R '08-'09, Outback H6-3.0 '01-'04, Outback 3.0R '05-'09,<br> B9 Tribeca '06-'07
|-
|8
|2.5L DOHC, 16-valve turbo/intercooled EJ257 flat-4. MPI. Dual VVT.
|Subaru Impreza WRX STi '08-'14
|-
|9
|2.7L SOHC, 12-valve ER27 flat-6. MPI. AWD.
|Subaru XT6 '88-'91
|-
|9
|3.6L DOHC, 24-valve EZ36D flat-6. MPI. Dual VVT.
|Subaru Tribeca '08-'14
|}
</div>
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|4
|FB 1600cc DIT AWD 2015+
|-
|D
|2000cc DOHC Turbo Diesel
|}
</div>
===Model===
The '''model''' is identified in the '''<u>seventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|Standard model '81-'87, Loyale RS 3-door coupe (non-Turbo) '90
|-
|1
|Impreza Base model '93-'95, 2.5i '07, 2.5i Special Edition '07, Impreza 2.5i '08-'09, Impreza 2.5i Premium '08, Saab 9-2X Linear '05, Saab 9-2X 2.5i '06
|-
|1
|Legacy 2.5i '05-'08, 2.5i Special Edition '06-'09
|-
|1
|Outback H6-3.0 wagon 35th Anniv. Ed. '04, Outback 2.5i '05-'08, 2.5i Special Edition '06, '09, 2.5i Basic '07, 2.5i L.L. Bean Edition '07-'08
|-
|1
|Forester Base model '98-'99, 2.5X '09
|-
|1
|Tribeca 5-psgr. base model '08-'09
|-
|1
|Baja Base model '03
|-
|2
|DL '81-'89, Loyale (non-Turbo) '90-'94, Brat DL '81-'83, Justy DL '87-'94, XT coupe DL '85-'88
|-
|2
|Impreza L fwd sedan w/man. trans. [w/o opt. power equipment, A/C, & stereo] '93, Impreza L Early '94 (only has driver-side airbag),<br> Impreza Brighton coupe '96-'97, Impreza Brighton wagon - Canada only: '98-'01, Impreza Outback Sport '07, Saab 9-2X Aero '05-'06
|-
|2
|Legacy Base model '90, '95, Legacy Brighton wagon '95-'00, Legacy L 35th Anniv. Ed. '04, Legacy 2.5i Limited '05-'09
|-
|2
|Outback 2.5i Limited wagon '05-'08, 2.5i Limited sedan '06-'07, 2.5i Limited L.L. Bean Edition wagon '07-'08
|-
|2
|SVX L Early '94 (has motorized seatbelts & driver-side airbag)
|-
|2
|B9 Tribeca 5-psgr. '06-'07
|-
|2
|Tribeca 5-psgr. Limited '08-'09, Tribeca 5-psgr. Special Edition '09
|-
|2
|Baja Sport '03-'06
|-
|3
|GL '81-'89, Brat GL '81-'87, Justy GL '87-'94, Justy RS '88-'89, XT coupe GL '85-'89, '91
|-
|3
|Impreza L '94 (has dual airbags), L '95-'01, Outback Sport '95, Impreza Outback Sport Special Edition '07, Impreza Outback Sport '08-'09
|-
|3
|Legacy L '90-'04, Legacy Sun Sport, Alpine Sport, Outdoor, & GT wagons '94, Legacy Outback '95, Legacy L Special Edition '03
|-
|3
|Outback 2.5XT Limited '07-'09
|-
|3
|SVX L '94-'97 (has manual seatbelts & dual airbags)
|-
|3
|Forester L '98-'02, 2.5X '03-'08, Sports 2.5X '07, 2.5X Premium '09
|-
|3
|B9 Tribeca 5-psgr. '06-'07
|-
|3
|Tribeca 5-psgr. Limited w/Navigation '08-'09
|-
|3
|Baja Turbo '04-'06
|-
|4
|GLF '81-'82, GL-10 '85-'89, XT6 coupe '88-'89, '91
|-
|4
|Impreza L "Plus" [L fwd sedan w/man. trans. w/opt. power equipment, A/C, & stereo plus all other Impreza L models] '93,<br> Impreza WRX '07-'08, WRX Limited '07, Impreza 2.5GT '09
|-
|4
|Legacy LS '90, 2.5GT '00-'04, 3.0R '09
|-
|4
|Outback 3.0R sedan '05, 3.0R wagon w/cloth seats '06
|-
|4
|SVX LS '92, '94
|-
|4
|Forester 2.5X L.L. Bean Edition '09, 2.5X Limited '09
|-
|5
|GL Turbo (except '87 4wd wagon) '83-'87, GL-10 Turbo '86-'89, Brat GL Turbo '83-'84, XT coupe GL-10 Turbo '85-'87
|-
|5
|Impreza LS '93-'94, LX '95-'96, 2.5TS '02-'04, Impreza WRX TR '07, Impreza WRX Premium '08
|-
|5
|Legacy LS "Special" '90, Legacy LS '91-'96, Legacy LSi '91-'95, 2.5GT Limited '00-'02, 3.0R Limited '08-'09
|-
|5
|Outback 3.0R VDC Limited wagon '05-'06, 3.0R Limited '09
|-
|5
|SVX LS-L (LS w/Touring Package) '92-'93, SVX LSi Awd '94-'95
|-
|5
|Forester S '98-'02, 2.5XS '03-'05, 2.5X Premium '06-'08, 2.5XT '09
|-
|5
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|RX Turbo '85-'89
|-
|6
|Impreza WRX STi '07, Impreza WRX '09, WRX Premium '09
|-
|6
|Legacy LSi '96-'97, Outback base model '00-'02, Outback 'Audio Edition' (Premium Audio instead of All-Weather Pkg.) wagon '03
|-
|6
|Outback 3.0R L.L. Bean Edition wagon '05-'08, 3.0R L.L. Bean Edition sedan '06-'07, 2.5i Limited '09
|-
|6
|SVX LSi '96-'97
|-
|6
|Forester Sports 2.5X '08, Sports 2.5XT '08, Forester 2.5XT Limited '09
|-
|6
|B9 Tribeca 7-psgr. '06-'07
|-
|6
|Tribeca 7-psgr. base model '08-'09
|-
|7
|GL Turbo 4wd wagon '87-'89, Loyale Turbo '90, Loyale RS Turbo 3-door coupe '90
|-
|7
|Impreza 2.5RS '98-'05, 2.5i '06, Impreza WRX STi Limited '07
|-
|7
|Legacy Sport Sedan '91-'94, Legacy [LE] Touring Wagon '92-'94, Legacy 2.5GT '96-'99, Legacy 2.5GT Limited '98-'99, Outback w/All-Weather Pkg. '00-'02, Outback base model '03-'04, Legacy 2.5GT Limited '05-'09, Legacy 2.5GT Limited spec.B '06
|-
|7
|Outback 2.5XT Limited '05-'06
|-
|7
|Forester 2.5XS L.L. Bean Edition '05, 2.5X L.L. Bean Edition '06-'08
|-
|7
|Tribeca 7-psgr. Limited '08-'09, Tribeca 7-psgr. Special Edition '09
|-
|8
|Impreza Outback Sport '96-'06, Impreza Outback Sport Special Edition '05-'06
|-
|8
|Legacy 2.5GT '05
|-
|8
|Legacy Outback '96-'99, Legacy Outback Limited '97-'99, Legacy SUS '97-'99, Outback Limited wagon '00-'04, Outback Limited sedan '00-'04, Outback 2.5XT '05-'06
|-
|8
|Tribeca 7-psgr. Limited w/Navigation '08-'09
|-
|9
|Impreza WRX '02-'06, WRX TR '06, WRX Limited '06, Impreza WRX STi '08-'09
|-
|9
|Legacy L Awd wagon rhd Postal Vehicle '95-'99, Outback H6-3.0 VDC wagon '01-'04, Outback H6-3.0 wagon w/cloth seats '03, Outback H6-3.0 sedan '02-'04, Outback H6-3.0 VDC sedan '02-'04, Legacy 2.5GT spec.B '07-'09
|-
|9
|Forester 2.5XT '04-'05, 2.5XT Limited '06-'08, Sports 2.5XT '07
|-
|0
|Impreza WRX STi '04-'06, Impreza 2.5i Premium '09
|-
|0
|Legacy 2.5i '09
|-
|0
|Outback H6-3.0 L.L. Bean Edition wagon '01-'04, Outback base model '08, Outback 2.5i '09
|-
|0
|Tribeca 7-psgr. Limited w/Navigation & Rear-seat DVD Entertainment System '08-'09
|-
|}
</div>
rhd=right-hand drive
===Restraint Type (Passenger) or Weight Class (MPV)===
The '''restraint type''', for passenger vehicles, or the weight class (Gross Vehicle Weight Rating), for MPVs & trucks, is specified in the '''<u>eighth</u>''' character of the Subaru VIN. Beginning in 2010, MPVs include both '''restraint type''' and weight class (Gross Vehicle Weight Rating).
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|No Passive Restraint
|-
|2
|Automatic Seat Belt w/o Airbag
|-
|3
|Automatic Seat Belt w/Driver Airbag (1992-1994 Legacy, SVX)
|-
|4
|Manual Seat Belt w/Driver Airbag (1993-1994 Impreza)
|-
|5
|Manual Seat Belt w/Driver/Passenger Airbags
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and Side Airbags. (Includes '05-'06 Saab 9-2X.)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front-row Side Curtain Airbags <br> ('13-'20 BRZ, '13-'16 Scion FR-S, '17-'20 Toyota 86)
|-
|1
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front-row Side Curtain Airbags & Driver's Knee Airbag <br> ('22-'26 BRZ, '22-'26 Toyota GR86)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags and front seat-mounted Side Airbags and roof-mounted front to rear Side Curtain Airbags <br> ('10-'11 Impreza, '10-'14 Impreza WRX, '10-'14 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('12-'23 Impreza, '15-'26 WRX)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags ('15-'19 Legacy)
|-
|6
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Legacy)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Impreza)
|-
|C
|Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Impreza)
|-
|A
|Class A (GVWR 3000 lbs. or less)
|-
|B
|Class B (GVWR 3001-4000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.)
|-
|6
|Class C (GVWR 4001-5000 lbs.) (For '09 Forester only)
|-
|D
|Class D (GVWR 5001-6000 lbs.)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags <br> ('10-'13 Forester, '10-'14 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag <br> ('13-'15 XV Crosstrek, '16-'23 Crosstrek, '14-'24 Forester, '25 Forester Wilderness)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver/Fr. Psgr. <br> Seat Cushion Airbags <br> ('15-'19 Outback)
|-
|C
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'25 Outback, '24-'25 Crosstrek [Japanese-built models], '25 Forester [except Wilderness & Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('24-'25 Crosstrek [US-built models], '26- Forester [except Hybrid])
|-
|6
|Class C (GVWR 4001-5000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek)
|-
|7
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags <br> ('10-'14 Tribeca)
|-
|D
|Class D (GVWR 5001-6000 lbs.), Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted side curtain Airbags for all 3 rows & Driver's Knee Airbag <br> ('19-'26 Ascent)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('20-'26 Outback, '25 Forester Hybrid)
|-
|D
|Class D (GVWR 5001-6000 lbs.), <br> Manual Seat Belt w/Driver/Passenger Airbags & front seat-mounted Side Airbags & rear seat-mounted Side Airbags & roof-mounted front to rear Side Curtain Airbags & Driver's Knee Airbag & Fr. Psgr. Seat Cushion Airbag ('26- Crosstrek Hybrid)
|}
</div>
The '''Check Digit''' is identified in the '''<u>ninth</u>''' character of the Subaru VIN
The '''Model Year''' is identified in the '''<u>tenth</u>''' character of the Subaru VIN
Letters began being reused in 2010.
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Description
|-
|1
|2001
|-
|2
|2002
|-
|3
|2003
|-
|4
|2004
|-
|5
|2005
|-
|6
|2006
|-
|7
|2007
|-
|8
|2008
|-
|9
|2009
|-
|A
|1980, 2010
|-
|B
|1981, 2011
|-
|C
|1982, 2012
|-
|D
|1983, 2013
|-
|E
|1984, 2014
|-
|F
|1985, 2015
|-
|G
|1986, 2016
|-
|H
|1987, 2017
|-
|I
|not used
|-
|J
|1988, 2018
|-
|K
|1989, 2019
|-
|L
|1990, 2020
|-
|M
|1991, 2021
|-
|N
|1992, 2022
|-
|P
|1993, 2023
|-
|R
|1994, 2024
|-
|S
|1995, 2025
|-
|T
|1996, 2026
|-
|V
|1997, 2027
|-
|W
|1998
|-
|X
|1999
|-
|Y
|2000
|}
</div>
===Plants and transmission type===
The '''assembly plant''' and '''transmission type''' is specified in the '''<u>eleventh</u>''' character of the Subaru VIN
<div class="center">
{| class="wikitable" border="1"
|+
!VIN Code
!Plant
!Transmission
|-
|1
|SIA
|FWD 5MT ('90-'96 Legacy)
|-
|1
|SIA
|Full-time AWD 5MT ('17-'23 Impreza)
|-
|1
|SIA
|Full-time AWD 6MT ('10-'14 & in Canada: '15-'17 Legacy, Outback)
|-
|2
|SIA
|Full-time AWD 5AT ('10-'14 Legacy 3.6R, Outback 3.6R)
|-
|3
|SIA
|Full-time AWD 6MT ('07-'09 Legacy GT spec.B).
|-
|3
|SIA
|Full-time AWD CVT ('10-'25 Legacy 2.5, Outback 2.5, '15-'19 Legacy 3.6R, Outback 3.6R,<br> '20-'25 Legacy 2.4T, Outback 2.4T, '17-'23 Impreza, '19-'26 Ascent, '24-'26 Crosstrek, '26- Forester, '26- Forester Hybrid)
|-
|4
|SIA
|Full-time AWD 5AT ('05-'09 Legacy, Outback, '06-'07 B9 Tribeca, '08-'14 Tribeca)
|-
|5
|SIA
|Full-time AWD 4-spd. Automatic w/Sport Shift ('03-'04 Legacy GT)
|-
|6
|SIA
|Full-time AWD 5MT
|-
|7
|SIA
|Full-time AWD 4EAT
|-
|8
|SIA
|Full-time AWD 4EAT ('95-'99 Legacy wagon RHD Postal vehicle)
|-
|9
|SIA
|FWD 4EAT ('90-'96 Legacy)
|-
|A
|FHI
|FWD 4MT
|-
|B
|FHI
|FWD 5MT
|-
|C
|FHI
|FWD 3AT ('81-'89 compact models, '90-'93 Loyale). FWD 4AT ('88-'91 XT/XT6).<br> FWD ECVT ('89-'93 Justy).
|-
|D
|FHI
|On-demand 4WD 4MT ('81-'84), On-demand 4WD 5MT ('85-'94)
|-
|E
|FHI
|4MT Dual Range 4wd ('81-'84, '85-'89 Hatchback, '85-'87 Brat).<br> 5MT Dual Range 4wd '85-'89 (excluding Hatchback & Brat)
|-
|F
|FHI
|On-demand 4WD 3AT ('83-'89 compact models, '90-'94 Loyale, '85-'87 XT coupe GL-10 Turbo 4wd).<br> On-demand 4WD ECVT ('90-'93 Justy).
|-
|G
|FHI
|Full-time AWD 5MT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 5MT ('12-'16 Impreza, '12-'14 Impreza WRX, '13-'15 XV Crosstrek, '16-'17 Crosstrek,<br> '12-'13 Forester)
|-
|G
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('14-'18 Forester, '18-'23 Crosstrek).
|-
|H
|FHI
|Full-time AWD 4EAT '88-'11. Includes '05-'06 Saab 9-2X.
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 4EAT ('12-'13 Forester).
|-
|H
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('12-'16 Impreza, '13-'15 XV Crosstrek, '14-'15 XV Crosstrek Hybrid,<br> '16-'25 Crosstrek, '16 Crosstrek Hybrid, '19-'23 Crosstrek Hybrid (PHEV), '14-'25 Forester).
|-
|K
|FHI
|FWD 4EAT
|-
|L
|FHI
|Full-time AWD 6MT ('04-'11 Impreza WRX STi)
|-
|L
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD 6MT ('12-'14 Impreza WRX STi)
|-
|P
|FHI
|Full-time AWD 4EAT ('91-'94 Legacy wagon RHD Postal vehicle)
|-
|Y
|FHI Yajima plant - Ota, Gunma prefecture, Japan
|Full-time AWD CVT ('26- Outback)
|-
|1
|FHI
|RWD 6MT ('13 BRZ, Scion FR-S)
|-
|2
|FHI
|RWD 6AT ('13 BRZ, Scion FR-S)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6AT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|RWD 6MT ('14-'20, '22-'26 BRZ, '14-'16 Scion FR-S, '17-'20 Toyota 86, '22-'26 Toyota GR86)
|-
|8
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD CVT ('14-'16, '24-'26 Impreza, '14-'15 XV Crosstrek, '16-'25 Crosstrek, '26- Crosstrek Hybrid, '15-'26 WRX)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 5MT ('14-'16 Impreza, '14-'15 XV Crosstrek, '16-'17 Crosstrek)
|-
|9
|FHI Main plant - Ota, Gunma prefecture, Japan
|AWD 6MT ('15-'26 WRX, '15-'21 WRX STi, '18-'23 Crosstrek)
|}
</div>
** SIA = Subaru-Isuzu Automotive (now known as Subaru of Indiana Automotive), Lafayette, Indiana
** FHI = Fuji Heavy Industries, Gunma prefecture, Japan
===Serial Number===
The '''Vehicle Production Sequence''' number is specified in the '''<u>twelfth - seventeenth</u>''' characters of the Subaru VIN
** 002001 and after - Touring Wagon ('89), Loyale Touring wagon ('90)
** 002001 - 199999 - Impreza sedan ('12-'16), Impreza WRX sedan ('12-'14)
** 002001 - 199999 - Legacy sedan ('12-'19)
** 002001 - 099999 - Legacy sedan ('20-'25)
** 002001 and after - Forester, Forester Hybrid ('26-)
** 050001 - 059999 - Saab 9-2X ('05-'06)
** 100000 and after - Hatchback
** 100000 and after - SVX
** 100000 and after - Legacy Sedan SUS (Jan 98 - May 98)
** 100000 and after - Baja
** 100001 - 299999 - Outback wagon ('20-'25)
** 200001 and after - 4-dr sedan ('81-'89), Loyale 4-dr sedan ('90-'93)
** 200001 and after - Legacy Sedan '96-'08, Outback Sedan '00-'07
** 200001 - 399999 - Impreza hatchback ('12-'16, '24-'26), Impreza WRX hatchback ('12-'14), XV Crosstrek ('13-'15), Crosstrek ('16-'23)
** 200001 - 399999 - Crosstrek [Japan-built] ('24-'25), Crosstrek Hybrid [Japan-built] ('26-)
** 200001 - 399999 - Outback wagon ('12-'19)
** 210001 and after - Legacy Sedan '95, '09-'11
** 300001 and after - Hardtop coupe ('81-'84)
** 300001 and after - XT/XT6 coupe ('85-'91)
** 300001 and after - Legacy Station Wagon '96-'07; Outback wagon '05-'08
** 310001 and after - Legacy Station Wagon '95; Outback wagon '09-'11
** 370001 and after - Legacy Outback wagon '96
** 400001 and after - Station Wagon ('81-'89), Loyale station wagon ('90-'94)
** 400001 and after - Impreza Coupe ('95-'01)
** 400001 and after - B9 Tribeca ('06-'07)/Tribeca ('08-'11)
** 400001 - 599999 - Forester ('12-'25)
** 400001 - 599999 - Tribeca ('12-'14); Ascent ('19-'26)
** 450001 and after - Outback ('26-)
** 500001 and after - Brat
** 500001 and after - Impreza Sedan ('93-'11)
** 600001 and after - Legacy sedan ('90-'93: All, '94: Japanese-built)
** 640001 and after - Legacy sedan ('94: US-built)
** 600001 and after - Outback wagon '97-'04
** 600001 - 699999 - BRZ ('13-'19)
** 600001 - 699999 - Impreza Sedan ('17-'23)
** 700001 and after - Justy 3-d ('87-'94)
** 700001 and after - Forester ('98-'11)
** 700001 - 799999 - Scion FR-S ('13-'16), Toyota 86 ('17-'19)
** 700001 - 749999 - BRZ ('20, '22-'26)
** 700001 - 899999 - Impreza 5-door hatchback ('17-'23)
** 700001 - 899999 - Crosstrek [US-built] ('24-'26)
** 750001 and after - Justy 5-d ('90-'94)
** 750001 - 799999 - Toyota 86 ('20), Toyota GR86 ('22-'26)
** 800001 and after - 3-door coupe ('86-'89), Loyale 3-door coupe ('90)
** 800001 and after - Impreza Sports Wagon ('93-'07); Impreza 5-door hatchback ('08-'11)
** 800001 - 899999 - WRX ('15-'26)
** 800001 - 999999 - Crosstrek [Japan-built] ('24)
** 900001 and after - Legacy wagon ('90-'93: All, '94: Japanese-built)
** 940001 and after - Legacy wagon ('94: US-built)
** 990001 and after - Legacy GT wagon w/stepped roof ('94: US-built)
==External links==
Online [http://www.vindecoderz.com/EN/Subaru Subaru VIN decoder]
Online [www.auto-vin-decoder.com Universal VIN decoder]
{{BookCat}}
e54f1w9c0n7pzpvqdec0kajk8g2yi9d
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Bc5/4. c3
0
148193
4672307
4440708
2026-09-25T11:54:18Z
JCrue
2226064
4672307
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|Classical variation
|eco=[[Chess/ECOC|C53]]
|parent=[[Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4|Italian game]] → [[../|3...Bc5]]
}}
== 4. c3 · Classical variation ==
White increases control of the d4 square.
This prepares to play d4, e.g. if Black plays a passive move like [[/4...d6|'''4...d6''']]. After 5. d4 exd4 6. cxd4 Bb6, the La Bourdonnais variation, White has achieved a strong, two-pawn centre and all the space it controls.
[[/4...Nf6|'''4...Nf6''']] is by far the main move. Because White has occupied the c3 square, Black takes advantage of this by attacking the e4 pawn, and White no longer has Nc3 to defend it. The main line is 5. d3 to defend e4, reaching the main tabiya of the giuoco pianissimo (the "quietest game", otherwise reached by the move order 4. d3 Nf6 5. c3). More combative options include 5. d4, attacking the bishop and intending 5...exd4 6. e5, the Greco gambit, or 5. b4!?, Bird's attack. which may try and trap the Black bishop. White's secondary aim is to bring the queen to b3, thus intensifying the pressure on Black's f7-pawn.
==Theory table==
{{Chess Opening Theory/Table}}
'''1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. c3'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left">4</th>
<th align="left">5</th>
<th align="left">6</th>
<th align="left">7</th>
</tr>
<tr>
<th align="right"></th>
<td>...<br>[[/4...Nf6|Nf6]]</td>
<td>d3<br>d6</td>
<td>O-O<br>O-O</td>
<td>Re1<br>Bg4</td>
<td>=</td>
</tr>
<tr>
<th align="right">Closed</th>
<td>...<br>[[/4...Qe7|Qe7]]</td>
<td>d4<br>Bb6</td>
<td>O-O<br>d6</td>
<td>Bg5<br>Nf6</td>
<td>+=</td>
</tr>
</table>
{{ChessMid}}
==References==
{{reflist}}
{{wikipedia|Giuoco Piano}}
{{BCO2}}
{{Chess Opening Theory/Footer}}
__NOTOC__
4pc9o8nvys297y7252e3v2sd5gcd1ef
Modern Greek/Lesson 02.1
0
150925
4672248
4430454
2026-09-24T23:39:47Z
It-is-Truly-Meet
3624460
4672248
wikitext
text/x-wiki
= Lesson 2.1: Common Greek Expressions =
This table will get you started speaking Greek. Don't worry for now that there isn't much explanation, here we just want to familiarise ourselves with the sounds and learn a few expressions which you might commonly hear.
{| {{Modern_Greek/Translations table|Vocabulary|Common Phrases|Συχνές Εκφράσεις}}
|Ελληνικά || {{IPA|/ɛlini'ka/|approx=eh-lee-nee-KAH}}|| Greek
|-
|Γεια σας || {{IPA|/'ʝa sas/|approx=YA sass}} || Hi (formal/plural)
|-
|Γεια σου || {{IPA|/'ʝa su/|approx=YA soo}} || Hi (informal/singular)
|-
|Καλημέρα||{{IPA|/kali'mera/}}||Good morning
|-
|Καλησπέρα||{{IPA|/kali'spera/}}||Good evening
|-
|Καληνύχτα||{{IPA|/ka.li'ni.xta/}}||Good night
|-
|Παρακαλώ || {{IPA|/paraka'lɔ/|approx=pah-rah-kah-LOH}} || Please
|-
|Ευχαριστώ || {{IPA|/ɛfxari'stɔ/|approx=ef-khah-ree-SSTOH}} || Thank you
|-
|Εκείνο || {{IPA|/e'kinɔ/|approx=eh-KEE-noh}} || That one
|-
|Πόσο κάνει; || {{IPA|/'pɔsɔ 'kani/|approx=POH-soh KAH-nee}} || How much?
|-
|Αγγλικά || {{IPA|/aŋgli'ka/|approx=ang-glee-KAH}} || English
|-
|Ναι || {{IPA|/nɛ/|approx=neh}} || Yes ''(this is a [[w:false friend|faux ami]] for speakers of many European languages)''
|-
|Όχι || {{IPA|/'ɔçi/|approx=|OH-hee}} || No
|-
|Συγγνώμη || {{IPA|/siŋ'ɣno.mi/|approx=sigg-NOH-mee}} || Sorry
|-
|Δεν καταλαβαίνω || {{IPA|/'ðɛŋ katala'vɛnɔ/|approx=dheng kah-tah-lah-VEH-noh}} || I don't understand
|-
|Πού είναι η τουαλέτα; || {{IPA|/'pu 'inɛ i tua'lɛta/|approx=poo EE-neh ee too-ah-LEH-ta}} || Where is the bathroom?
|-
|Γεια μας ||{{IPA|/'ʝa mas/|approx=YAH mass}} || "Good health/cheers" (Generic toast)
|-
|Μιλάτε αγγλικά; || {{IPA|/mi'latɛ aŋgli'ka/|approx=mee-LAH-teh ung-glee-KAH}} || Do you speak English?
|}
Keep practicing, and then when you're ready, move on to the [[Modern Greek/Lesson 02.2|next lesson]].
<br>
{{Modern Greek}}
i2at3kfuvrvsahkiss8ddlchytivmr1
Wikibooks:Reading room/Proposals
4
155682
4672189
4671232
2026-09-24T18:06:11Z
Codename Noreste
3441010
/* Approve Wikibooks:CheckUser as a local policy? */ Format. ([[:m:User:Max/MaxEdit.js|MaxEdit]])
4672189
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)
== 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)
qxu8pxmunbgzhzmur7rfhecohzc5kkd
Chess/Opening theory table
0
158283
4672178
4647206
2026-09-24T15:58:26Z
~2026-51472-06
3626766
vedscv
4672178
wikitext
text/x-wiki
<ref>{{Cite journal |last=Hưng |first=Nguyễn Đức |date=2016-04-14 |title=Sử dụng một số chế phẩm thảo dược trong điều trị hội chứng hô hấp (HCHH) ở gà nuôi tại Thừa Thiên Huế |url=https://doi.org/10.26459/jard.v119i5.2902 |journal=Hue University Journal of Science: Agriculture and Rural Development |volume=119 |issue=5 |doi=10.26459/jard.v119i5.2902 |issn=2615-9708}}</ref>''This article uses [[Chess/Algebraic notation|algebraic notation]] to describe chess moves.''
A '''chess opening theory table''' or '''ECO (Encyclopedia of Chess Openings) table''' presents lines of moves, typically (but not always) from the starting position. Notated [[chess]] moves are presented in the table from left to right. Variations on a given line are given horizontally below the parent line.
==Theory tables on Wikibooks==
Theory tables are a way of representing chess variations from a position in a quick reference manner. [[#External sources of chess theory tables|Chess opening books]] sometimes make extensive use of them to represent a good amount of information in a compact form. Here on Wikibooks the compactness is not so useful, but the quick reference manner can help the chess player familiar with theory tables quickly locate the information required.
==Arrangement==
Chess opening theory tables are commonly published in opening books with annotations by experienced chess players. These tables are typically arranged in a compact manner to allow experienced players to see variations from a position quickly. Usually, the table indicates that either White or Black has equal, slightly better, or better chances at the end of the variation. Sometimes, this information is distilled down to mere symbols or the percentage of games (usually tournament games) where White won – no information is usually given on what the assessment is based on or how to proceed in the game.
==Notation==
Typically, each table has a heading indicating the moves required to reach the position for which the table provides an analysis. The first row provides the move numbers with subsequent row representing different variations. White half-moves are shown above black half-moves. Ellipses (...) represent moves that, for the variation, are identical to the variation above. Bold type indicates that another variation is considered elsewhere – usually in another table. A dash (-) indicates that the variation transposes to a variation elsewhere. Transpositions are common in chess – a given position can often be reached by different move orders – even move orders with more or fewer moves.
It is common to add notes regarding whether a certain variation is considered better for White or for Black. This is done at the end (i.e. to the right) of every variation, using shorthand notation [[Chess/Algebraic notation#Regarding specific positions|regarding specific positions]]. For instance, the remark += (or +/=) indicates that White has a slight advantage. If reversed (=+ or =/+) this would be true for Black instead. {{Wikipedia|Chess annotation symbols|anchor1=Positions}}
==Example theory table==
=== Example 1 ===
'''1. d4 Nf6 2. c4 e5'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left"><span style="font-size: small;">3</span></th>
<th align="left"><span style="font-size: small;">4</span></th>
<th align="left"><span style="font-size: small;">5</span></th>
<th align="left"><span style="font-size: small;">6</span></th>
<th align="left"><span style="font-size: small;">7</span></th>
<th align="left"><span style="font-size: small;">8</span></th>
</tr>
<tr>
<th align="right"></th>
<td>[[/3. d5|d5]]<br/>Bc5</td>
<td>Nc3<br/>d6</td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>[[/3. dxe5|dxe5]]<br/>Ne4</td>
<td>Nf3<br/>Nc6</td>
<td>a3<br/>d6</td>
<td>exd6<br/>Bxd6</td>
<td>Nbd2<br/>Bf5</td>
<td>Nxe4
</td>
<td>+=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br/>Ng4</td>
<td>Nf3<br/>Bc5</td>
<td>e3<br/>Nc6</td>
<td>Be2<br/>O-O</td>
<td>O-O<br/>Re8</td>
<td>Nc3
</td>
<td>+=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br/>...</td>
<td>Bf4<br/>Nc6</td>
<td>Nf3<br/>Bb4+</td>
<td>Nbd2<br/>Qe7</td>
<td>e3<br/>Ngxe5</td>
<td>Nxe5<br/>Nxe5</td>
<td>+=</td>
</tr>
</table>
=== Example 2 ===
'''1.e4 Nf6'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left">2</th>
<th align="left">3</th>
<th align="left">4</th>
<th align="left">5</th>
<th align="left">6</th>
</tr>
<tr>
<th align="right">Main Line</th>
<td>[[/2. e5|e5]]<br>Nd5</td>
<td>d4<br>d6</td>
<td>Nf3<br>Bg4</td>
<td>Be2<br>e6</td>
<td>O-O<br>Be7</td>
<td>∞/=</td>
</tr>
<tr>
<th align="right"></th>
<td>[[/2. Nc3|Nc3]]<br>d5</td>
<td>exd5<br>Nxd5</td>
<td>Bc4<br>Nb6</td>
<td>Bb3<br>Nc6</td>
<td>Nf3<br>Bf5</td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>[[/2. d3|d3]]<br>e5</td>
<td>Nf3<br>Nc6</td>
<td>g3<br>Bc5</td>
<td>Bg2<br>O-O</td>
<td>O-O<br>d6</td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>...</td>
<td>f4<br>Nc6</td>
<td>Nf3<br>d5</td>
<td>fxe5<br>dxe4</td>
<td>exf6<br>exf3</td>
<td>=/+</td>
</tr>
<tr>
<th align="right">Krejcik Variation</th>
<td>[[/2. Bc4|Bc4]]<br>Nxe4</td>
<td>Bxf7+<br>Kxf7</td>
<td>Qh5+<br>[[/2. Bc4/2...Nxe4/3. Bxf7/3...Kxf7/4. Qh5/4...Kg8|Kg8]]</td>
<td>Qd5+<br>e6</td>
<td>Qxe4<br>d5</td>
<td>=+</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>...</td>
<td>...<br>...</td>
<td>...<br>[[/2. Bc4/2...Nxe4/3. Bxf7/3...Kxf7/4. Qh5/4...g6|g6]]</td>
<td>Qd5+<br>e6</td>
<td>Qxe4<br>d5</td>
<td>=+</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>...</td>
<td>...<br>...</td>
<td>...<br>...</td>
<td>...<br>Ke8</td>
<td>Qxe4<br>d5</td>
<td>=+</td>
</tr>
</table>
==Shortcomings==
Chess opening theory books that provide these tables are usually quite large and difficult for beginners to use. Because the table entries typically do not include the themes or goals involved in a given line, beginners will either try to memorize the tables (not an easy task) or simply drown in the detail. '''[[Chess Opening Theory]]''' aims to bridge this gap by providing this type of information at the end of each line.
==External sources of chess theory tables==
{{NCO}}
{{MCO14}}
{{BCO2}}
*Aleksandar Matanovic, editor, Encyclopaedia of Chess Openings, 5 volumes (Belgrade: Šahovski informator)
{{ChessFooter}}
[[{{BOOKCATEGORY|Chess}}]]
[[{{BOOKCATEGORY|Chess Opening Theory}}]]
m5by6haqdlo17or2kaoxol8dva0zqe2
4672233
4672178
2026-09-24T22:38:10Z
TechVindicator
3626296
Undid revision [[Special:Diff/4672178|4672178]] by [[Special:Contributions/~2026-51472-06|~2026-51472-06]] ([[User talk:~2026-51472-06|discuss]]) // link to journal unrelated to chess opening theory
4672233
wikitext
text/x-wiki
''This article uses [[Chess/Algebraic notation|algebraic notation]] to describe chess moves.''
A '''chess opening theory table''' or '''ECO (Encyclopedia of Chess Openings) table''' presents lines of moves, typically (but not always) from the starting position. Notated [[chess]] moves are presented in the table from left to right. Variations on a given line are given horizontally below the parent line.
==Theory tables on Wikibooks==
Theory tables are a way of representing chess variations from a position in a quick reference manner. [[#External sources of chess theory tables|Chess opening books]] sometimes make extensive use of them to represent a good amount of information in a compact form. Here on Wikibooks the compactness is not so useful, but the quick reference manner can help the chess player familiar with theory tables quickly locate the information required.
==Arrangement==
Chess opening theory tables are commonly published in opening books with annotations by experienced chess players. These tables are typically arranged in a compact manner to allow experienced players to see variations from a position quickly. Usually, the table indicates that either White or Black has equal, slightly better, or better chances at the end of the variation. Sometimes, this information is distilled down to mere symbols or the percentage of games (usually tournament games) where White won – no information is usually given on what the assessment is based on or how to proceed in the game.
==Notation==
Typically, each table has a heading indicating the moves required to reach the position for which the table provides an analysis. The first row provides the move numbers with subsequent row representing different variations. White half-moves are shown above black half-moves. Ellipses (...) represent moves that, for the variation, are identical to the variation above. Bold type indicates that another variation is considered elsewhere – usually in another table. A dash (-) indicates that the variation transposes to a variation elsewhere. Transpositions are common in chess – a given position can often be reached by different move orders – even move orders with more or fewer moves.
It is common to add notes regarding whether a certain variation is considered better for White or for Black. This is done at the end (i.e. to the right) of every variation, using shorthand notation [[Chess/Algebraic notation#Regarding specific positions|regarding specific positions]]. For instance, the remark += (or +/=) indicates that White has a slight advantage. If reversed (=+ or =/+) this would be true for Black instead. {{Wikipedia|Chess annotation symbols|anchor1=Positions}}
==Example theory table==
=== Example 1 ===
'''1. d4 Nf6 2. c4 e5'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left"><span style="font-size: small;">3</span></th>
<th align="left"><span style="font-size: small;">4</span></th>
<th align="left"><span style="font-size: small;">5</span></th>
<th align="left"><span style="font-size: small;">6</span></th>
<th align="left"><span style="font-size: small;">7</span></th>
<th align="left"><span style="font-size: small;">8</span></th>
</tr>
<tr>
<th align="right"></th>
<td>[[/3. d5|d5]]<br/>Bc5</td>
<td>Nc3<br/>d6</td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>[[/3. dxe5|dxe5]]<br/>Ne4</td>
<td>Nf3<br/>Nc6</td>
<td>a3<br/>d6</td>
<td>exd6<br/>Bxd6</td>
<td>Nbd2<br/>Bf5</td>
<td>Nxe4
</td>
<td>+=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br/>Ng4</td>
<td>Nf3<br/>Bc5</td>
<td>e3<br/>Nc6</td>
<td>Be2<br/>O-O</td>
<td>O-O<br/>Re8</td>
<td>Nc3
</td>
<td>+=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br/>...</td>
<td>Bf4<br/>Nc6</td>
<td>Nf3<br/>Bb4+</td>
<td>Nbd2<br/>Qe7</td>
<td>e3<br/>Ngxe5</td>
<td>Nxe5<br/>Nxe5</td>
<td>+=</td>
</tr>
</table>
=== Example 2 ===
'''1.e4 Nf6'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left">2</th>
<th align="left">3</th>
<th align="left">4</th>
<th align="left">5</th>
<th align="left">6</th>
</tr>
<tr>
<th align="right">Main Line</th>
<td>[[/2. e5|e5]]<br>Nd5</td>
<td>d4<br>d6</td>
<td>Nf3<br>Bg4</td>
<td>Be2<br>e6</td>
<td>O-O<br>Be7</td>
<td>∞/=</td>
</tr>
<tr>
<th align="right"></th>
<td>[[/2. Nc3|Nc3]]<br>d5</td>
<td>exd5<br>Nxd5</td>
<td>Bc4<br>Nb6</td>
<td>Bb3<br>Nc6</td>
<td>Nf3<br>Bf5</td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>[[/2. d3|d3]]<br>e5</td>
<td>Nf3<br>Nc6</td>
<td>g3<br>Bc5</td>
<td>Bg2<br>O-O</td>
<td>O-O<br>d6</td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>...</td>
<td>f4<br>Nc6</td>
<td>Nf3<br>d5</td>
<td>fxe5<br>dxe4</td>
<td>exf6<br>exf3</td>
<td>=/+</td>
</tr>
<tr>
<th align="right">Krejcik Variation</th>
<td>[[/2. Bc4|Bc4]]<br>Nxe4</td>
<td>Bxf7+<br>Kxf7</td>
<td>Qh5+<br>[[/2. Bc4/2...Nxe4/3. Bxf7/3...Kxf7/4. Qh5/4...Kg8|Kg8]]</td>
<td>Qd5+<br>e6</td>
<td>Qxe4<br>d5</td>
<td>=+</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>...</td>
<td>...<br>...</td>
<td>...<br>[[/2. Bc4/2...Nxe4/3. Bxf7/3...Kxf7/4. Qh5/4...g6|g6]]</td>
<td>Qd5+<br>e6</td>
<td>Qxe4<br>d5</td>
<td>=+</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>...</td>
<td>...<br>...</td>
<td>...<br>...</td>
<td>...<br>Ke8</td>
<td>Qxe4<br>d5</td>
<td>=+</td>
</tr>
</table>
==Shortcomings==
Chess opening theory books that provide these tables are usually quite large and difficult for beginners to use. Because the table entries typically do not include the themes or goals involved in a given line, beginners will either try to memorize the tables (not an easy task) or simply drown in the detail. '''[[Chess Opening Theory]]''' aims to bridge this gap by providing this type of information at the end of each line.
==External sources of chess theory tables==
{{NCO}}
{{MCO14}}
{{BCO2}}
*Aleksandar Matanovic, editor, Encyclopaedia of Chess Openings, 5 volumes (Belgrade: Šahovski informator)
{{ChessFooter}}
[[{{BOOKCATEGORY|Chess}}]]
[[{{BOOKCATEGORY|Chess Opening Theory}}]]
2azmqbtenz8vu226kack57n13pnb0k7
MediaWiki:Group-checkuser
8
170851
4672196
1672543
2026-09-24T18:14:21Z
Codename Noreste
3441010
Lowercasing the word "U".
4672196
wikitext
text/x-wiki
Checkusers
2h7nbcvpb9rgiu73ubw7l4au3jq329g
Metabolomics/Applications/Nutrition/Personal Metabolomics
0
174831
4672169
4655492
2026-09-24T15:33:33Z
R. Henrik Nilsson
3395618
commited > committed
4672169
wikitext
text/x-wiki
Back to Previous Chapter: [[Metabolomics/Databases| Databases]]<br>
Next chapter:[[Metabolomics/Contributors| Contributors ]]<br>
First Category: [[Metabolomics/Applications/Disease Research| Disease Research]]<br>
Go to:[[Metabolomics/Applications/Nutrition/Lifestyle| Lifestyle]]<br>
Go back to:[[Metabolomics/Applications/Nutrition/Nutrigenomics| Nutrigenomics]]<br>
#[[Metabolomics/Applications/Nutrition/Personal_Metabolomics/Phenotypes|Phenotypes]]<br>
#[[Metabolomics/Applications/Nutrition/Personal_Metabolomics/Genotypes|Genotypes]]<br>
=Personal Metabolomics=
:As technology progress and new algorithms for computer programs are discovered, we will see the ability for medical researchers to detect changes in the concentrations of a person's metabolites. This could lead to the discovery of new bio-markers for diseases such as schizophrenia. These ideas were shared between the articles about schizophrenia bio-markers and potentials of personal metabolomics by Elain Holmes and Leroy Hood and colleagues.
:Personal metabolomics will be an easy method in the future to diagnose and treat metabolic disorders on an individual basis. Metabolites in urine or blood can be analyzed and through the data collected, illnesses that the individual may have can be examined. Our review focus was mostly on diabetes, as it is one of the most studied and well known metabolic disorders.
:In the paper “Correlative and quantitativate (1)H NMR-based metabolomics reveals specific metabolic pathway disturbances in diabetic rats”, rats were induced to develop diabetes by utilizing streptozotocin. Afterwards, urine and plasma were analyzed to discover metabolites that may indicate diabetes. Seventeen different metabolites where found, many in excess. By taking this information to a further level, in the future, it could be used to easily diagnose or treat diabetes in humans.
:Similarly, in the article “Comprehensive two-dimensional gas chromatography/time of flight mass spectrometry for metabonomics: Biomarker discovery for diabetes mellitus”, five potential biomarkers were found in human patients. However, in contrast to the first paper, instead of NMR, two dimensional gas chromatography was used. Potential biomarkers found included glucose and linoleic acid. Again, these discoveries are useful for further diagnoses and treatments.
[[File:Blue circle for diabetes.svg|thumb|Universal blue symbol for diabetes]]
:The third article, “Nitric Oxide Synthesis and Isoprostane Production in Subjects With Type 1 Diabetes and Normal Urinary Albumin Excretion” showed that in type 1 diabetic patients, nitric oxide (NO) levels are higher than in normal healthy individuals. However, this increase in NO has no effect on renal function, as the diabetic patients had normal albumin excretion in their urine. NO is a metabolite that could be used further for diagnosis and study of diabetes.
:The article "Personal Metabolics as a Next Generation Nutritional Assessment" discusses how current and future technologies as well as collaborating laboratories and databases on aspects of metabolism such as lipids will be the key to assessing metabolic disease as well as personalizing health and diet in humans in the very near future.
:The article "Prospective health care: the second transformation of medicine" describes how current databases and standards for predicting disease are inadequate. Instead predictive modeling, such as using the Gail model with breast cancer, should be used to not only assess risk of disease or adverse effects of a disease but to also help work towards an appropriate treatment based upon an individual's personalized assessment and predictive model.
:Websites found were mostly resource websites directed towards researchers and professionals rather than normal consumers. Chenomx Inc is a life sciences company offering metabolomics researchers for pharmaceutical companies chemistry software, and data analysis solutions among other things. They have a patented NMR suite 5.1, which is comprised of five different functional tools like Chenomx Profiler, and Chenomx Compound Builder. The software they provide is very reliable and accurate, capable of quickly identifying and quantifying metabolites. Currently, there are over 250 metabolites in their database, which provides a wealth of information to metabolomic researchers.
:The PreDX was the only website directed towards consumers or the average Joe, rather than research facilities or large companies. The website offers a new type of blood test assesses different metabolites that have been found present in individuals at risk for diabetes. This is extremely important because some cases of diabetes can be prevented through diet and exercise change. Knowing the risks of developing diabetes can greatly aid individuals in the prevention process. The technology provided is easily accessible through phone, online or fax.
:The last website belongs to The Society of Metabolomics, which is a group of well known metabolomic scientists that are trying to expand their field further. They offer tutorials and workshops on new technologies and methods in the field of metabolomics in addition to, providing resources. The website has links to various types of software used for metabolomics. Although though this is not useful for the general public, it is a good resource for metabolomic researchers or medical doctors hoping to use metabolomics to help diagnose their patients.
= Website Sources =
==Chenomx.com==
http://www.chenomx.com
=== General Overview ===
:Chenomx NMR Suite helps scientists correlate metabolic responses with pathology, toxicity, drug efficacy, and genetics.
Main Focus:
:To provide access to technology for analysis of metabolites found in various biological samples through the use of NMR spectroscopy and by unique, innovative software.
Summary:
:Chenomx Inc is a life sciences company that has much to offer metabolomics researchers for pharmaceutical companies and institutions all over the world. Through partnership with some of the leading providers in specific areas of expertise, including chemistry software and data analysis solutions in systems biology, Chenomx grants access to a bevy of efficient, cost-effective, and timely services through their website. These services consist of nuclear magnetic resonance (NMR) spectroscopy data acquisition, targeted profiling of metabolite analysis and statistical analysis of numerous biological samples. This is all obtained through the their one-of-a-kind, patented Chenomx NMR suite 5.1; a suite compiled of five different functional tools such as the Chenomx Profiler, Chenomx Compound Builder, Chenomx Spin Simulator, Chenomx Library Manager, and Chenomx Processor.
:Chenomx employ highly trained and skilled scientists to carry out all their services. Over the years, Chenomx has gained experience in the handling and analysis of a variety of biological samples. Standard protocols for urine, plasma, serum, saliva and cell extracts exist at the Chenomx labs. Chenomx continues to improve and expand their knowledge in working with new samples that may be analyzed for specific metabolite detection from NMR spectroscopy. The NMR spectroscopy at Chenomx is a powerful tool in quick detection of the contents of biofluids. The NMR spectrometer utilized at Chenomx has field strengths of 400 to 800 MHz. Coupling NMR spectroscopy with their software provides efficient one-step biofluid analysis. The Chenomx software accurately, reliably, and quickly identifies and quantifies metabolites giving researchers complete and thorough analysis presented in various formats or databases: delimited text, Microsoft Excel, XML, SIMCA-P, Mat lab, and much more.
:Currently Chenomx provides sample preparation services for alcohols, fatty acids, amino acids, sugars, organic acids, and nucleic acid components to name a few. With over 250 compounds in the Chenomx database, metabolomic researchers in need of interpretation of compounds or pathways they study are just a few clicks away from accessing an advantageous tool provided at www.chenomx.com.
=== New Terms ===
;NMR : a family of scientific methods that exploit nuclear magnetic resonance to study molecules ("NMR spectroscopy") ( http://en.wikipedia.org/wiki/NMR )
;chemometric : The use of mathematical statistics in the design of experiments, and the evaluation of the resulting data (http://en.wiktionary.org/wiki/chemometrics)
;metabolite : Any substance produced by, or taking part in, a metabolic reaction (http://en.wiktionary.org/wiki/metabolite)
;field strength : the vector sum of all the forces exerted by an electrical or magnetic field (on a unit mass or unit charge or unit magnetic pole) at a given point in the field (http://wordnetweb.princeton.edu/perl/webwn?s=field%20strength)
;serum : The clear yellowish fluid obtained upon separating whole blood into its solid and liquid components after it has been allowed to clot (http://en.wiktionary.org/wiki/serum)
=== Course Relevance ===
:This website offers technology to analyze various metabolites, some of which we have discussed in this course.
==PredictMyRisk.com==
http://predictmyrisk.com/about.html
===General Overview===
Identifies patients in danger of contracting diabetes within five years.
Main Focus:
:The main focus is to use metabolite blood testing to find patients at risk for diabetes, and to do so using metabolic indicators other then glucose.
Summary:
:Diabetes is a major health concern for many. It can lead to other health problems such as high blood pressure, blood clots, loss of vision, stroke, and many other maladies. Today doctors have some ability to test for diabetes risk factors in an effort to prevents this condition before it happens. Doctors use a blood test that tests for the level of glucose in the blood during a period of fasting. Unfortunately this test has been found to be not as accurate as previously assumed.
:PreDX is a website offering a new type of blood test that will test for the appearance of many different metabolites that have been found to be present in persons at risk for diabetes. This new test could be extremely helpful to doctors because it analyzes the blood for metabolites, which gives a much more accurate measure of diabetes risk then the traditional fasting blood glucose test. The website claims that its blood test is capable of identifying patients at risk for diabetes as much as five years before they would contract it. PreDX claims to be a simple to run and sensitive test that gives an easy to interpret readout of the patients risk and the reasons for that risk. This test could also be used on current diabetic patients to more fully test how well their diabetes is being controlled.
:The test is preformed on a fasting blood sample. An algorithm analyzes a number of proteins and blood born biomarkers. This algorithm then compiles this data into a single numerical score that can be converted into a percentage of risk. This technology can be be obtained by phone, on line, or by faxing information to a number on the website.
===New Terms===
;Biomarkers : a substance used as an indicator of a biologic state. (http://en.wikipedia.org/wiki/Biomarkers)
;Protein : organic compounds made of amino acids arranged in a linear chain and joined together by peptide bonds between the carboxyl and amino groups of adjacent amino acid residues. (http://en.wikipedia.org/wiki/Protein)
;Stroke : the rapidly developing loss of brain functions due to a disturbance in the blood vessels supplying blood to the brain. (http://en.wikipedia.org/wiki/Stroke)
;Macrovascular: referring to the large blood vessels. (http://diabetes.org.au/glossary.htm)
;Fasting blood glucose: a method for learning how much glucose there is in a blood sample taken after an overnight fast. (http://www.medterms.com/script/main/art.asp?articlekey=3393)
;Genetic marker: a specific gene that produces a recognizable trait and can be used in family or population studies. (http://wordnetweb.princeton.edu/perl/webwn?s=genetic%20marker)
;Retinopathy: is a general term that refers to some form of non-inflammatory damage to the retina of the eye. Most commonly it is a problem with the blood supply that is the cause for this condition. (http://en.wikipedia.org/wiki/Retinopathy)
===Course Relevance===
:This website offers a test to analyze metabolites pertaining to diabetes. This is relevant because it shows the complex interactions of metabolism and how they affect the body.
==Metabolomics Society==
http://www.metabolomicssociety.org
===General Overview===
:The Metabolomics Society is a website committed to the growth of the metabolomics field. It is a non-profit organization containing more than 500 members in 20 countries. The society also publishes its very own journal titled Metabolomics, which is a peer-reviewed journal published by Springer that is released every 3-4months. This site provides multiple metabolomics resources, including numerous software and databases. However, these sources are more for research users rather than “everyday” individuals. In other words, it is NOT the WebMD of metabolomics, but still provides information that could be used by doctors or researchers to aid the “everyday” person with personal metabolomics.
:Almost all software listed on the site uses either NMR or various types of mass spectrometry. Using this, they are able to detect certain metabolites by comparing to a large database, and sometimes even structuralize new metabolites found. XCMS(2) is capable of using a “similarity search” which can take an unknown metabolite and come up with possible structural motifs, allowing for possible identification of an unknown metabolite. MetaboMiner is a program capable of “identifying metabolites in complex biofluids”, which would be useful in a medical setting. HORA is probably the most relevant, because it’s a database made of up metabolites specifically in human blood. It allows you to tell which metabolites are abnormal, and conveniently also provides graphs to manage data. Although there is more software available, these last two were the most relevant to Personal Metabolomics. The website also provides databases for metabolites, including some related to diseases such as the OMIM. Aside from software, the Metabolomics Society also offers a variety of tutorial workshops, including “The NIH Roadmap to Understanding Biological Pathways and Networks with Metabolomics” and “PubChem: A Public Repository for Chemical Biology Screening Results”. The most important part of this website are the software resources, although there are other useful aspects of the site.
===New Terms===
;NIH : National Institutes of Health (http://en.wikipedia.org/wiki/NIH)
;Metabolic profiling: Metabolic profiling employs a range of analytical approaches (e.g., mass spectrometry and high- resolution 1H nuclear magnetic resonance spectroscopy) suited to the chemical properties of the metabolite class(es) of interest. (http://www.genomicglossaries.com/content/metabolic_engineering.asp)
;Metabolic fingerprinting: a rapid classification of samples according to their origin or their biological relevance. (http://www.genomicglossaries.com/content/metabolic_engineering.asp)
;Footprinting: is a technique for identifying the site on DNA bound by some protein by virtue of the protection of bonds in this region against attack by nucleases. (http://www.hgsc.bcm.tmc.edu/docs/HGSC_glossary.html)
;Transcriptome analysis: Analysis of the global gene expression of a cell by identification of all the messenger RNA present in the cell. (http://www.nature.com/nrmicro/journal/v2/n12/glossary/nrmicro1046_glossary.html)
;Metabolic flux analysis: an analysis technique similar to Flux Base Analysis used to determine the rate at which a metabolite is produced during a bioprocess. (http://en.wikipedia.org/wiki/Metabolic_flux_analysis)
;Metabolome: refers to the complete set of small-molecule metabolites (such as metabolic intermediates, hormones and other signalling molecules, and secondary metabolites) to be found within a biological sample, such as a single organism. (http://en.wikipedia.org/wiki/Metabolome)
= Article Sources =
==Systems Medicine: The Future of Medical Genomics and Healthcare==
:Auffray, Charles; Chen, Zhu; Hood, Leroy. Systems medicine: the Future of medical genomics and healthcare. Genome Medicine 2009, I:2. http://genomemedicine.com/content.I/I/2.
==General Overview:==
:Systems biology can be used in the determination and early warnings of certain diseases, made possible through the advances in computation and technology.
==Main Focus:==
:By making robust hypothesis, a biological system can be monitored by taking samples of certain metabolites and using well thought out mathematical methodologies to make informative decisions about data. The data can then be shared with other scientist through a series of networks.
==Summary==
:Through well thought out hypothesis-driven methods synthetic biology and dynamic processes can be created that allow the user to change the parameters of the metabolites to predict effects of different concentrations. Using these well-thought out methods, the personal genome project would be able to determine the differences between normal and diseased phenotypes. Without high quality design and assessment the usefulness of the resulting biomarkers would be compromised. However, recent advances in micro array and PCR technology along with advances in proteomic tools allow for accurate readings and high quality data. Using robust computer programs, network processes can be produced that show protein to protein interactions. Some limitations on computing are the variations in annotated data. Different languages of programming, along with the fact that a cell's system is continuously changing is what makes it difficult to write an ideal program that will encompasses all changes in a cel. As technologies progress new computational methods will allow for the modeling of entire cell systems and organs. This project is very dependent on annotated information so all organizations should use a standard for annotation and pay close attention to the quality of their experiments.
==Terms:==
Systems biology - using complex biological systems knowledge can be determined by the behavior and differing conditions.
Synthetic biology - using modular processes biological systems can be designed and modeled.
Stratification - appearance
www.dictionary.com
allometric - measure of growth
www.dictionary.com
elucidate - make clear
www.dictionary.com
systematic - having a plan
www.dictionary.com
cytometry - cell counting
www.dictionary.com
==Metabolic Profiling of Patients with Schizophrenia ==
Kaddurah-Daouk, Rima. Metabolic Profiling of Patients with Schizophrenia. PLoS Medicine. August 2006, V.3, I.8; pg 1222-1223.
==General Overview:==
:Metabolomics can be used to monitor and develop biomarkers in different human diseases.
==Main Focus:==
:This article provides the idea that with proper measurement tools, environmental factors can be used to discovery new bio-markers for diseases, such as schizophrenia.
==Summary:==
:In this time of developing medicine, new ideas for discovering and preventing diseases are proposed. Mental illnesses, more specifically schizophrenia, hinders the daily activity of many people around the world. This disease has a treatment course, but many Schizophrenics find it hard to continue on the course. Often stopping their treatments, only to relapse and make symptoms worse. Elaine Holmes and her colleagues presented the fact that schizophrenia has no known biomarkers. They focus their work on identifying biomarkers for schizophrenia, by identifying changes in samples of cerebrospinal fluid. To do this Nuclear Magnetic Resonance (NMR) was used to record several resonance coefficients. They tracked the metabolites for two different groups of schizophrenics and treated one group with anti psychotics. What they found was that once the treatment was given, the subset of the metabolom being tested stabilized to normal levels. Elaine Holmes and her colleagues believe that by studying metabolomics, scientists can figure impairments in energy and lipid biosynthesized metabolism. In further testing of this study, it should include a larger sample population as well as the ability to replicate and validate results. This would reduce confounding effects and allow for more meaningful biological hypothesis.
==Terms:==
aberrant - deviations from normal.
leading coefficients - constant factor in multiplication
Cerebrospinal fluid(CSF)- clear fluid by the spine around the brain
nuclear magnetic resonance(NMR)- physical resonance using quantum magnetics
Type 2 diabetes mellitus - non insulin dependent diabetes
==Correlative and quantitative 1H NMR-based metabolomics reveals specific metabolic pathway disturbances in diabetic rats==
Zhang, Shucha. Nagana Gowda,GA. Asiago, V. Shanaiah, N. Barbas, C. "Correlative and quantitative (1)H NMR-based metabolomics reveals specific metabolic pathway disturbances in diabetic rats". Analytical Biochemistry 383. May 2008. 76-84. 11 Feb 2009
http://www.ncbi.nlm.nih.gov/pubmed/18775407?ordinalpos=1&itool=EntrezSystem2.PEntrez.Pubmed.Pubmed_ResultsPanel.Pubmed_DefaultReportPanel.Pubmed_RVDocSum
=== General Overview ===
[[File:Streptozocin.svg|thumb|200px|Streptozotocin - a glucosamine-nitrosourea compound that is toxic to the insulin-producing beta cells of the mammalian pancreas. It is use to treat cancers cells in the Islet of Langerhans and has been experimentally use in animal models to treat Type 1 diabetes.]]
:Type 1 diabetes is an autoimmune illness caused by the body’s destruction of beta cells in the pancreas. Even though diabetes is a well studied topic, the causes and preventions of it are still not well understood. In this study, researchers used the metabolomic approach to study Type 1 diabetes. Specifically, researchers combined nuclear magnetic resonance (NMR) and mass spectroscopy with multivariate statistical analysis (MSA). These techniques enable the researchers to screen large samples of metabolites and collect data that pertains to the normal individuals as well as diabetic patients in a relatively cost-effective and time-efficient fashion. The use of metabolomics as a way to study diseases is very common. For instance, it has been employed to study cancer, Type 2 diabetes, inborn errors of metabolism, and even diet and nutrition.
:In this study, researchers injected rats with streptozotocin (STZ) to induce Type 1 diabetes. They were then examined for glucose level increases of more than 200 mg/dl after 4 days to confirm that they are diabetic. The controls chosen were both equivalent in age and gender. Both groups of rats were kept in proper condition with appropriate food and water supply. Urine samples were collected every 8 h after seven days after the initial injection. Blood samples were collected by cardiac puncture before sacrificing the rats. Data were collected from urine and blood samples and analyzed using NMR spectrometer supplied with HCN 1H inverse detection probe. After analysis, 17 metabolites were identified and quantified.
:In diabetic rats, glucose, alpha-tocopherol, urea, triglycerides, TBARS, and liver alpha-tocopherol were all higher than the control. In addition, the diabetic rats consumed and secreted 10 times more urine volume than the control in the 24 h time frame.
:The diabetic rats had high-intensity peaks from glucose along with a variety of other smaller molecules. Specific quantities of glucose averaged to about 7500-fold higher than in control rats. Lactate was observed to be the second highest increase with about 40-fold.
:In order to confirm that the data compiled was accurate, researchers carried out a multivariate analysis: principal component analysis (PCA). The PCA results showed that the controls and the diabetic rats were well distinguished due to the large quantities of metabolites. The removal of glucose did not affect the analysis distinguishing diabetic rats from control rats.
:Using the metabolomics approach to studying Type 1 diabetes, researchers found that even after the removal of the most significant marker (glucose) from the samples, there was still a significant difference in metabolites that separate the control rats from the diabetic rats. Furthermore, the researchers developed a network showing the metabolite changes and its correlation with each other.
=== New Terms ===
;Autoimmune : the failure of an organism to recognize its own constituent parts as self, which results in an immune response against its own cells and tissues (http://en.wikipedia.org/wiki/Autoimmune)
;Glucose : a monosaccharide (or simple sugar) also known as grape sugar, blood sugar, or corn sugar, is a very important carbohydrate in biology (http://en.wikipedia.org/wiki/Glucose)
;Inborn errors of metabolism : comprise a large class of genetic diseases involving disorders of metabolism (http://en.wikipedia.org/wiki/Inborn_errors_of_metabolism)
;Mass spectroscopy : a charged particle passing through a magnetic field is deflected along a circular path on a radius that is proportional to the mass to charge ratio, m/e (http://www.chem.ucalgary.ca/courses/351/Carey/Ch13/ch13-ms.html)
;Metabolites : is the "systematic study of the unique chemical fingerprints that specific cellular processes leave behind" : specifically, the study of their small-molecule metabolite profiles (http://en.wikipedia.org/wiki/Metabolites)
;Nuclear magnetic resonance (NMR) : is a physical phenomenon based upon the quantum mechanical magnetic properties of an atom's nucleus (http://en.wikipedia.org/wiki/Nuclear_magnetic_resonance)
;Principal components analysis : determining a smaller set of synthetic variables that could explain the original set (http://en.wikipedia.org/wiki/Principal_components_analysis)
;Streptozotocin : a naturally occurring chemical that is particularly toxic to the insulin-producing beta cells of the pancreas in mammals(http://en.wikipedia.org/wiki/Streptozotocin)
;Triglyceride : chemical form in which most fat exists in food as well as in the body (http://www.americanheart.org/presenter.jhtml?identifier=4778)
;Type 1 diabetes : Type 1 diabetes is an autoimmune disease that results in destruction of insulin-producing beta cells of the pancreas (http://en.wikipedia.org/wiki/Type_1_diabetes)
===Course Relevance===
:This pertains to the overall study of metabolism.
==Comprehensive two-dimensional gas chromatography/time-of-flight mass spectrometry for metabonomics: Biomarker discovery for diabetes mellitus ==
Li, Xiang. Xu,Z. Lu, X. Yang, X. Yin, P. Kong, H. Xu, G. "Comprehensive two-dimensional gas chromatography/time-of-flight mass spectrometry for metabonomics: Biomarker discovery for diabetes mellitus." Analytica Chimica Acta 663. Nov. 2008. 257-262. 11 Feb 2009 <http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6TF4-4V2NKGK-2&_user=47004&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000005018&_version=1&_urlVersion=0&_userid=47004&md5=bc0216cfd9f5107aa5fd79797ede270b>.
===General Overview===
:Metabolomics can be utilized to diagnose disease and help with mechanism research. Researchers have used linear chromatography – mass spectroscopy (LC-MS) and gas chromatography-mass spectroscopy (GC-MS) to examine metabolite contents that required high sensitivity, selectivity, and that had a large linear range. In this study, researchers investigated levels of plasma phospholipids in Type 2 diabetes mellitus (T2DB) patients by LC-MS and multivariate statistical analysis (MSA). Some standard methods were modified to examine the metabolite profile differences between healthy and diabetic patients. For example, researchers combined GC X GC-MS with ultra performance liquid chromatography mass spectroscopy (UPLC-MS) to acquire global metabolite profiles in rats. GC X GC has been used in a variety of ways. However, when it is coupled with MS, metabolic profiles can be contrasted among samples.
:Metabolites were extracted from blood plasma and analyzed by GC X GC-TOFMS. The data was submitted to data processing software. Peak alignment adjustments and pattern recognition were performed. Potential biomarker metabolites were obtained according to their variable importance in the projection (VIP). They were identified by ChromaTOF and NIST MS search 2.0 software.
:Forty-eight diabetes mellitus patients and thirty-one healthy control volunteers participated in this study. Blood samples were collected and plasma proteins were obtained. The plasma samples were then analyzed by LECO Pegasus 4D GC X GC-TOFMS device. After that, differences between the healthy and diabetic patients were revealed using the partial least-square discriminant analysis (PLSDA). Orthogonal signal correction (OSC) was used to exclude the variations between the two sample types.
:As mentioned above, VIP values of greater than 1.0 were chosen as potential biomarkers. After further analysis and exclusion of unrelated data, the researchers concluded that if similarity were greater than 750, then it would be a positive match with the published data. They found that 4/9 of potential biomarkers had a positive match. Palmitic acid, phosphate, 2-hydroxyisobutyric acid, and linoleic acid were all identified as positive matches.
:It is known that glucose and lipids are key features of Type 2 diabetes mellitus. In T2DM’s, an increase level of free fatty acids (FFA) is detected circulating the blood. This could be a cause of T2DM development or it could just be the result of T2DM. In addition, FFAs could compete with glucose for substrate level oxidation, thus interfering with the activities of pyruvate dehydrogenase. This leads to elevated levels of glucose intracellularly. The increased levels of FFA could also lead to hyperinsulinemia. Hyperinsulinemia could be the beginning of insulin resistance in T2DM patients. Since the biomarkers found were either associated with hyperglycemia or problems with beta-oxidation. They may be utilized to help with diagnosis or for further research.
===New Terms===
;Gas chromatography : specifically gas-liquid chromatography - involves a sample being vaporized and injected onto the head of the chromatographic column (http://teaching.shu.ac.uk/hwb/chemistry/tutorials/chrom/gaschrm.htm)
;Multivariate statistical analysis : describes a collection of procedures which involve observation and analysis of more than one statistical variable at a time (http://en.wikipedia.org/wiki/Multivariate_statistical_analysis)
;Time of flight mass spectroscopy (TOFMS) : ions are accelerated by an electrical field to the same kinetic energy with the velocity of the ion depending on the mass-to-charge ratio (http://en.wikipedia.org/wiki/Time-of-flight_mass_spectrometry)
;Type 2 Diabetes : a metabolic disorder that is characterized by high blood glucose in the context of insulin resistance and relative insulin deficiency. (http://en.wikipedia.org/wiki/Diabetes_mellitus_type_2)
;Hyperinsulinemia : present in people with diabetes mellitus type 2 or insulin resistance where excess levels of circulating insulin are in the blood. (http://en.wikipedia.org/wiki/Hyperinsulinemia)
;Ultra performance liquid chromatography : a column that holds chromatographic packing material (stationary phase), a pump that moves the mobile phase(s) through the column, and a detector that shows the retention times of the molecules (http://en.wikipedia.org/wiki/Ultra_performance_liquid_chromatography)
===Course Relevance===
:This pertains to the overall study of metabolism.
==Nitric Oxide Synthesis and Isoprostane Production in Subjects With Type 1 Diabetes and Normal Urinary Albumin Excretion==
O'Byrne, Sharon, P Forte, LJ Roberts II, JD Morrow, A Johnston, E Anggard, RDG Leslie, and Nigel Benjamin. "Nitric Oxide Synthesis and Isoprostane Production in Subjects With Type 1 Diabetes and Normal Urinary Albumin Excretion." Diabetes. 49. 5, 857-862. May 2000.
http://diabetes.diabetesjournals.org/cgi/reprint/49/5/857
===General Overview===
[[Image: Nitric-oxide-2D.svg|thumb|right]]
[[Image: Peroxynitrite-ion-2D.png|thumb|right]]
:People with type 1 diabetes are at a high risk of developing serious microvascular complications. Investigations into these complications have been conducted with considerable emphasis on endothelium and nitric oxide (NO) production. NO plays an important role in everyday normal functioning of the body’s microvasculature. NO action is tightly regulated by the balance between its own production and the production of the free radical, superoxide (O2-). When NO and O2- interact, a highly reactive peroxynitrite (ONOO-) forms, which catalyzes isoprostane formation in LDL cholesterol. Isoprostanes serve as markers for hyperglycemia; a disorder associated with diabetes that can induce proliferation of tissues vital for maintaining vasculature, thus causing complications. In this study, researchers designed a method to accurately quantify NO synthesis in order to delve into the relationship between NO and free radical production in type 1 diabetics with normal urinary albumin excretion (UAER) and matching healthy diabetic-free individuals.
:The methodology required injection of the stable isotope L-[15N]2-arginine, which converts into 15N-nitrate, into each subject with their urine collected every 12 hours over a 36 hour period. Subjects followed strict guidelines, such as refraining from physical exercise for 3 days prior to and during the study. The major metabolite of a certain isoprostane, 2,3-dinor-5,6-dihydro-F2-IsoP, was used to quantify free radical production for the first 12h period through isotope dilution mass spectrometric assay. Measuring whole-body NO production was detected through levels of 15N-nitrate, excreted in urine, using isotope ratio mass spectrometry. Careful considerations and actions were taken in order to limit factors of variability between diabetic and healthy subjects that could possibly alter results, including age, BMI, blood pressure, and cholesterol.
:According to results, in comparison to the control group, a significant increase in whole-body NO synthesis was exhibited by type 1 diabetics, particularly those individuals with a history of diabetes greater than 20 years. All variables pertaining to individual characteristics, creatinine clearance and rate of elimination were negligible. Only differences in sex had an effect on 15N-nitrate levels regardless of diabetes, with females showing the highest production of NO overall. Levels of the F2-isoprostanes, which determined oxidative stress in vivo, revealed an inverse relationship between NO synthesis and free radicals. This was consistent with earlier hypotheses stating that presence of oxidative species, free radicals, inactivates NO synthesis. Isoprostrane concentration was similar in both diabetic and control groups, therefore one explanation for higher NO production in the diabetic group could possibly be due to the antioxidant and protective activity of NO. NO inhibits free radicals, which are built up during hyperglycemic conditions developed by diabetic patients. This study’s results show promising new insights into the role of NO in people with type 1 diabetes.
===New Terms===
;Microvascular : referring to small blood vessels (http://diabetes.org.au/glossary.htm)
;Anigiopathy : any disease of the blood vessels or lymph ducts (http://wordnetweb.princeton.edu/perl/webwn?s=angiopathy)
;Microalbuminuria : leakage of small amounts of protein (albumin) into the urine; an early warning of kidney damage (http://diabetes.org.au/glossary.htm)
;Mitogenesis : induction of mitosis in a cell (http://medical-dictionary.thefreedictionary.com/mitogenesis)
;Euglycemic : of or pertaining to euglycemia; having the standard blood glucose level in the body (http://en.wiktionary.org/wiki/euglycemic)
===Course Relevance===
:To further understand the relationship between NO, from the metabolism of arginine to praline, production and free radicals and the emergence of microvascular diseases in individuals with type 1 diabetes.
==Personal Metabolomics as a Next Generation Nutritional Assessment==
German, J. Bruce. Roberts, Matthew-Alan. and Watkins, Steven M. “Personal Metabolomics as a Next Generation Nutritional Assessment” The American Society for Nutritional Sciences. J. Nutr. May 2009. 133:4260-4266, December 2003. http://jn.nutrition.org/cgi/content/full/133/12/4260
===General Overview===
[[:Image:FAB_MS.jpg]]
:Every human differs in their metabolic regulation and because of this there is not necessarily an optimum diet that each person must follow. Personalized assessment of a person’s unique metabolism will be necessary in the future. The ultimate goal will be to individualize each person’s health in order to better predict and manage disease. Now, with the challenges of understanding metabolic health within individuals, it is necessary to take a more precise and more general approach. It is important to define both the input variables of foods as parts of complete diets and the outcome variables of integrated metabolism in order to judge a person’s health. To date, nutrition researchers have not addressed the acquisition of metabolism-wide data sets as output variables in nutrition clinical trials. The goal of metabolomics is to prepare a comprehensive dataset of every metabolite within a given biological sample. This is not yet possible because of the wide dynamic and chemical range of small metabolites within biological samples. However, it is possible to divide metabolites into specific classes, analyze these and then reassemble the data electronically. All lipid classes in blood, for example, can be quantified according to the mass of each fatty acid constituent. The technologies such as mass spectrometry provide a very efficient and relatively cheap way to implement systems to collect such data. The technologies that are available to address most of the metabolite classes are equally as available as those for fatty acids and complex lipids. Thus, no significant technological hurdle stands in the way of using these technologies to assemble metabolite databases of humans and experimental animals for amino acids and small peptides, sterols, organic acids, sugars and alcohols, vitamins, nucleotides, etc. So long as the data are qualitative and quantitative, such data from various human and animal investigations are directly comparable. Studies conducted in separate laboratories, using entirely different analytical technologies years apart, will produce directly comparable data if the data are both qualitative and quantitative. The primary causative factors in disease are often the altered biochemical composition of cells and tissues. Thus, the link between the gene regulatory control and the primary causative factors will be crucial for application in drug development, medicine, nutrition and other therapeutic courses of action. The identification of relationships between genes, transcripts, proteins and metabolites are essential components to understand integrative metabolism. Software is now available to superimpose analytical data onto said pathways, providing a powerful means to identify biological regulation of metabolism through the coexpression of gene data obtained from microarrays. GenMAPP is a particularly useful tool for such purpose, allowing the user to link pathway information to gene expression data. Overall the goal is to collaborate with various laboratories to interpret differences in blood lipids and thus provide predictive knowledge of potential interventions using food, drugs and lifestyle to improve lipid metabolism.
===New Terms===
;Environment
The sum of all external variables, including diet, lifestyle and not to be forgotten, coexisting organisms.
;Lipomics
Study and research of lipids
;Lipids
Broadly defined as any fat-soluble (lipophilic), naturally-occurring molecule, such as fats, oils, waxes, cholesterol, sterols, fat-soluble vitamins (such as vitamins A, D, E and K), monoglycerides, diglycerides, phospholipids, and others. The main biological functions of lipids include energy storage, as structural components of cell membranes, and as important signaling molecules. (http://en.wikipedia.org/wiki/Lipid)
;Nutrigenetics
refers to the specific gene sequence differences
between humans and how these affect the differences in responses
to diet and particular needs for nutrients.
;Nutrigenomics
is the study of the effects of diet on the expression of all
genes and their functions.
===Course Relevance===
:Can be related to every human being as the study and research of lipids and personalized diets according to one’s own metabolic construct could impact our personal health. Could revolutionize how we think about health and diet.
==Prospective health care: the second transformation of medicine==
Snyderman, Ralph and Langheier, Jason. “Prospective health care: the second transformation of medicine” Genome Biology 2006. May 2009. 7:104. 27 March 2006. http://genomebiology.com/2006/7/2/104
===General Overview===
[[:Image:Breast Cancer Awareness (263497131).jpg]]
:The term “Prospective health care” refers to the personalized risk prediction and strategic health-care planning which will facilitate a new form of care. The current approach to health care is based upon the reductionist method which simplifies causal reasons for infectious disease as well as chronic disease. Instead of disease being caused by one microbe (as this is far too simplistic) diseases develop as a consequence of inherited susceptibilities and environmental exposure. Over time, pathology increases, reversibility decreases and costs of care increases. Earlier intervention could clearly reduce the costs and the disease burden. Thus, it appears as though current research is on curing chronic illness and not preventing it. With modern science and technology including rapid evolving fields such as genomics, proteomics, and metabolomics, the ability to predict events and interfere before damage occurs is possible. Prospective health care is a new approach that incorporates all the power of current disease-oriented medicine but is based on the concept of strategic health planning, a proactive, prospective approach to care. In this system, individuals will be evaluated to determine their baseline risk for various diseases, their current health status, and the likelihood of their developing specific clinical problems given their risks. In order for this to be possible one must acquire the tools necessary such as predictive biomarkers, such as low-density lipoprotein (LDL) for cardiovascular disease. These biomarkers need to be identified and tracked over time to determine whether the individual’s likelihood of developing any particular disease is increasing or decreasing. A model of prediction is thus needed to accomplish this task. Predictive modeling encompasses various procedures for creating models that distinguish predictors from many other factors that are not as valuable for anticipating the outcome. Mathematical models can serve as guidelines to raise the overall standard of care, but not to determine the final diagnosis or treatment plan as humans are sensitive to appreciating outlying issues that the model might not be able to account for. The best course of action would be for healthcare to use these math models as a guideline to help standardize care which is not currently being done. To be the most useful, clinical medicine requires predictive models that can predict events accurately over far shorter timeframes, rather than the likelihood of recurrence in 10 years. To achieve this, more relevant and specific data will need to be collected for analysis as shown in Figure 5 which states that clinical data and the results of biomarker analyses (such as gene expression, protein array, and EKG) be collected from a cohort of people and stored in disease model libraries and then models are developed from them. The models can then be used to identify risk prediction factors for particular diseases or events and can thus be compared against a specific person’s profile to determine their risk, or to diagnose disease progression. Biomarkers such as SNPs that are highly associated with causal genes will serve as much better predictors of adverse outcomes, as well as provide for better predictive models, than much of the current data being collected. For individuals that are identified to be high risk they will undergo extensive surveillance to track the disease as much as possible and to provide therapeutic support, such as with breast cancer. With any disease, and specifically breast cancer, for personalized prevention and early intervention, it is necessary to predict baseline risks, provide surveillance for early detection, and facilitate optimal individualized therapy if disease develops. In order to do this with breast cancer there are specific models called the Gail and the Claus models, as well as BRCAPRO, which are used to predict risk and also used to facilitate appropriate treatment. The application of these new technologies to health care will not only provide a far more detailed understanding of health and its evolution toward disease, but will also support the ability to predict events and anticipate appropriate interventions.
===New Terms===
;Reductionist Method: Simplifies the concept of pathogenesis to the smallest number of causal factors
;Biomarkers: Measurable biological factors that predict disease development
;BRCA1/BRCA2: Human genes that with specific mutations can increase a person’s risk of breast and ovarian cancers in women (up to 86% in breast cancer) as well as breast and prostate cancers in men.
;Claus Model: A computer program that uses statistics to predict a person’s risk for developing breast cancer based on family history (http://www.cancer.gov/Templates/db_alpha.aspx?CdrID=446553)
;Gail Model: A computer program that uses personal and family history to estimate a woman’s chance of developing breast cancer. Also called Gail risk model. (http://www.cancer.gov/Templates/db_alpha.aspx?searchTxt=gail&sgroup=Starts+with&lang=)
;SNP: Single nucleotide Polymorphism -- DNA sequence variation occurring when a single nucleotide — A, T, C, or G — in the genome (or other shared sequence) differs between members of a species (or between paired chromosomes in an individual). (http://en.wikipedia.org/wiki/Single_nucleotide_polymorphism)
==Course Relevance==
:Prospective health care if put into effect could influence how modern health care works. We could be the guinea pigs to see if this type of intervention is possible, and we could ultimately benefit from it if successful. Overall relates to how metabolism and body regulations affects health.
=Resources=
:O'Byrne, Sharon, P Forte, LJ Roberts II, JD Morrow, A Johnston, E Anggard, RDG Leslie, and Nigel Benjamin. "Nitric Oxide Synthesis and Isoprostane Production in Subjects With Type 1 Diabetes and Normal Urinary Albumin Excretion." Diabetes. 49. 5, 857-862. May 2000.
:Li, Xiang. Xu,Z. Lu, X. Yang, X. Yin, P. Kong, H. Xu, G. "Comprehensive two-dimensional gas chromatography/time-of-flight mass spectrometry for metabonomics: Biomarker discovery for diabetes mellitus." Analytica Chimica Acta 663. Nov. 2008. 257-262. 11 Feb 2009 <http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6TF4-4V2NKGK-2&_user=47004&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000005018&_version=1&_urlVersion=0&_userid=47004&md5=bc0216cfd9f5107aa5fd79797ede270b>.
:Zhang, Shucha. Nagana Gowda,GA. Asiago, V. Shanaiah, N. Barbas, C. "Correlative and quantitative (1)H NMR-based metabolomics reveals specific metabolic pathway disturbances in diabetic rats". Analytical Biochemistry 383. May 2008. 76-84. 11 Feb 2009 <http://www.ncbi.nlm.nih.gov/pubmed/18775407?ordinalpos=1&itool=EntrezSystem2.PEntrez.Pubmed.Pubmed_ResultsPanel.Pubmed_DefaultReportPanel.Pubmed_RVDocSum>.
:"Diabetes Risk Test". PreDX. 2008. Tethys Bioscience, Inc.. 15 Feb 2009 <http://predictmyrisk.com/about.html>.
:"Home". Metabolomics Society. Dec. 2008. Thermo Scientific. 13 Feb 2009 <129.128.185.121/metabolomics_society>
:German, J. Bruce. Roberts, Matthew-Alan. and Watkins, Steven M. “Personal Metabolomics as a Next Generation Nutritional Assessment” The American Society for Nutritional Sciences. J. Nutr. May 2009. 133:4260-4266, December 2003. http://jn.nutrition.org/cgi/content/full/133/12/4260
:Snyderman, Ralph and Langheier, Jason. “Prospective health care: the second transformation of medicine” Genome Biology 2006. May 2009. 7:104. 27 March 2006. http://genomebiology.com/2006/7/2/104
==Articles for future review as Metabolism class assignments==
#[http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=1257643&tool=pmcentrez Personalized Exposure Assessment: Promising Approaches for Human Environmental Health Research]
====Main Focus====
;:Identify the main focus of the resource. Possible answers include specific organisms, database design, intergration of information, but there are many more possibilities as well.
====New Terms====
;New Term 1: Definition. (source: http://)
;New Term 2: Definition. (source: http://)
;New Term 3: Definition. (source: http://)
;New Term 4: Definition. (source: http://)
;New Term 5: Definition. (source: http://)
;New Term 6: Definition. (source: http://)
;New Term 7: Definition. (source: http://)
;New Term 8: Definition. (source: http://)
;New Term 9: Definition. (source: http://)
;New Term 10: Definition. (source: http://)
====Summary====
;:Enter your article summary here. Please note that the punctuation is critical at the start (and sometimes at the end) of each entry. It should be 300-500 words. What are the main points of the article? What questions were they trying to answer? Did they find a clear answer? If so, what was it? If not, what did they find or what ideas are in tension in their findings?
====Relevance to a Traditional Metabolism Course====
;:Enter a 100-150 word description of how the material in this article connects to a traditional metabolism course. Does the article relate to particular pathways (e.g., glycolysis, the citric acid cycle, steroid synthesis, etc.) or to regulatory mechanisms, energetics, location, integration of pathways? Does it talk about new analytical approaches or ideas? Does the article show connections to the human genome project (or other genome projects)?
#[http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=1570061&tool=pmcentrez Monitoring Environmental Exposures: Now It’s Personal]
====Main Focus====
;:Identify the main focus of the resource. Possible answers include specific organisms, database design, intergration of information, but there are many more possibilities as well.
====New Terms====
;New Term 1: Definition. (source: http://)
;New Term 2: Definition. (source: http://)
;New Term 3: Definition. (source: http://)
;New Term 4: Definition. (source: http://)
;New Term 5: Definition. (source: http://)
;New Term 6: Definition. (source: http://)
;New Term 7: Definition. (source: http://)
;New Term 8: Definition. (source: http://)
;New Term 9: Definition. (source: http://)
;New Term 10: Definition. (source: http://)
====Summary====
;:Enter your article summary here. Please note that the punctuation is critical at the start (and sometimes at the end) of each entry. It should be 300-500 words. What are the main points of the article? What questions were they trying to answer? Did they find a clear answer? If so, what was it? If not, what did they find or what ideas are in tension in their findings?
====Relevance to a Traditional Metabolism Course====
;:Enter a 100-150 word description of how the material in this article connects to a traditional metabolism course. Does the article relate to particular pathways (e.g., glycolysis, the citric acid cycle, steroid synthesis, etc.) or to regulatory mechanisms, energetics, location, integration of pathways? Does it talk about new analytical approaches or ideas? Does the article show connections to the human genome project (or other genome projects)?
#[http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=2651587&tool=pmcentrez Systems medicine: the future of medical genomics and healthcare]
====Main Focus====
;:Identify the main focus of the resource. Possible answers include specific organisms, database design, intergration of information, but there are many more possibilities as well.
====New Terms====
;New Term 1: Definition. (source: http://)
;New Term 2: Definition. (source: http://)
;New Term 3: Definition. (source: http://)
;New Term 4: Definition. (source: http://)
;New Term 5: Definition. (source: http://)
;New Term 6: Definition. (source: http://)
;New Term 7: Definition. (source: http://)
;New Term 8: Definition. (source: http://)
;New Term 9: Definition. (source: http://)
;New Term 10: Definition. (source: http://)
====Summary====
;:Enter your article summary here. Please note that the punctuation is critical at the start (and sometimes at the end) of each entry. It should be 300-500 words. What are the main points of the article? What questions were they trying to answer? Did they find a clear answer? If so, what was it? If not, what did they find or what ideas are in tension in their findings?
====Relevance to a Traditional Metabolism Course====
;:Enter a 100-150 word description of how the material in this article connects to a traditional metabolism course. Does the article relate to particular pathways (e.g., glycolysis, the citric acid cycle, steroid synthesis, etc.) or to regulatory mechanisms, energetics, location, integration of pathways? Does it talk about new analytical approaches or ideas? Does the article show connections to the human genome project (or other genome projects)?
#[http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=1551921&tool=pmcentrez Metabolic Profiling of Patients with Schizophrenia]
====Main Focus====
;:Identify the main focus of the resource. Possible answers include specific organisms, database design, intergration of information, but there are many more possibilities as well.
====New Terms====
;New Term 1: Definition. (source: http://)
;New Term 2: Definition. (source: http://)
;New Term 3: Definition. (source: http://)
;New Term 4: Definition. (source: http://)
;New Term 5: Definition. (source: http://)
;New Term 6: Definition. (source: http://)
;New Term 7: Definition. (source: http://)
;New Term 8: Definition. (source: http://)
;New Term 9: Definition. (source: http://)
;New Term 10: Definition. (source: http://)
====Summary====
;:Enter your article summary here. Please note that the punctuation is critical at the start (and sometimes at the end) of each entry. It should be 300-500 words. What are the main points of the article? What questions were they trying to answer? Did they find a clear answer? If so, what was it? If not, what did they find or what ideas are in tension in their findings?
====Relevance to a Traditional Metabolism Course====
;:Enter a 100-150 word description of how the material in this article connects to a traditional metabolism course. Does the article relate to particular pathways (e.g., glycolysis, the citric acid cycle, steroid synthesis, etc.) or to regulatory mechanisms, energetics, location, integration of pathways? Does it talk about new analytical approaches or ideas? Does the article show connections to the human genome project (or other genome projects)?
=Websites for future review as Metabolism class assignments=
{{BookCat}}
5iejzwf3tsmln92e3z0127vtifc6yz9
OpenSCAD User Manual/Using OpenSCAD in a command line environment
0
227473
4672213
4664464
2026-09-24T21:07:13Z
~2026-51480-50
3626782
/* Makefile example */ Correct typo preset -> present
4672213
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 be - 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 differents parts of a model ===
The first automation that you may want is to ouput 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}}
jh2h9xekozopc43n0rw5wgls50fxg6s
Aros/User/Applications
0
237399
4672140
4671963
2026-09-24T13:00:15Z
Jeff1138
301139
4672140
wikitext
text/x-wiki
==Introduction==
[[#Graphical Image Editing Art]]
[[#Office Application]]
[[#Audio]]
[[#Misc Application]]
[[#Games & Emulation]]
[[#Application Guides]]
[[#top|...to the top]]
[[#top|...to the top]]
Most apps can be opened on the Workbench (aka publicscreen pubscreen) which is the default display option but can offer a custom one set to your configurations (aka custom screen mode promotion). These custom ones tend to stack so the possible use of A-M/A-N method of switching between full screens and the ability to pull down screens as well
If you are interested in creating or porting new software, see [http://en.wikibooks.org/wiki/Aros/Developer/Docs here]
{| class="wikitable sortable"
|-
!width:30%;|Internet Applications
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Web Online Browser [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=network/browser Amelinium], Odyssey 2.0, [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0], [],
|<!--Amiga OS-->[https://juen.in/ Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, [https://github.com/zapek/Voyager Voyager], [https://github.com/amigazen/aweb3/ AWeb 3.6 src], [https://github.com/matjam/aweb AWeb Src], [http://aminet.net/package/comm/www/NetSurf-m68k-sources Netsurf], [],
|<!--AmigaOS4-->[ Odyssey OWB], [ Timberwolf (Firefox port 2011)], [http://amigaworld.net/modules/newbb/viewtopic.php?forum=32&topic_id=32847 OWB-mui], [http://strohmayer.org/owb/ OWB-Reaction], IBrowse*, [http://os4depot.net/index.php?function=showfile&file=network/browser/aweb.lha AWeb], Voyager, [http://www.os4depot.net/index.php?function=browse&cat=network/browser Netsurf],
|<!--MorphOS-->Wayfarer, [http://fabportnawak.free.fr/owb/ Odyssey OWB], [ Netsurf], IBrowse*, AWeb, [],
|-
|<!--Sub Menu-->YouTube, Dailymotion website downloading videos audio [https://github.com/yt-dlp/yt-dlp yt-dlp], [https://clipgrab.org/ clipgrab],
|<!--AROS-->[], [https://blog.alb42.de/amitube/ Amitube],
|<!--Amiga OS-->[https://blog.alb42.de/amitube/ Amitube], [ smtube],
|<!--AmigaOS4-->[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|<!--MorphOS-->[ ytsearch], [https://blog.alb42.de/amitube/ Amitube], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->Old style E-mailing SMTP POP3 IMAP based
|<!--AROS-->Emailinium, [http://archives.arosworld.org/index.php?function=browse&cat=network/email SimpleMail], [http://sourceforge.net/projects/simplemail/files/ src], [https://github.com/jens-maus/yam YAM]
|<!--Amiga OS-->Emailinium, [http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC, ICB,
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/chat WookieChat], [https://sourceforge.net/projects/wookiechat/ Wookiechat src], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat AiRcOS], Jabberwocky,
|<!--Amiga OS-->[https://github.com/charabaruk/WookieChat Wookiechat], AmIRC
|<!--AmigaOS4-->Wookiechat
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Wookiechat], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 AmIRC],
|-
|<!--Sub Menu-->Instant Messaging IM like [https://github.com/BlitterStudio/amidon Hollywood lang based Mastodon client], BlueSky AT protocol, Facebook(TM), Twitter X (TM), Bitlbee IRC Gateway and others
|<!--AROS-->[https://github.com/kaffeine1/telegram-amiga telegram-amiga], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat jabberwocky],
|<!--Amiga OS-->[http://amitwitter.sourceforge.net/ AmiTwitter], CLIMM, SabreMSN, [https://sourceforge.net/projects/ajabberwocky/ jabberwocky],
|<!--AmigaOS4-->[http://amitwitter.sourceforge.net/ AmiTwitter], SabreMSN,
|<!--MorphOS-->[http://amitwitter.sourceforge.net/ AmiTwitter], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 PolyglotNG], SabreMSN,
|-
|<!--Sub Menu-->Torrents
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/p2p ArTorr],
|<!--Amiga OS-->
|<!--AmigaOS4-->CTorrent, Transmission
|<!--MorphOS-->MLDonkey, Beehive, [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Transmission], CTorrent,
|-
|<!--Sub Menu-->FTP
|<!--AROS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], MarranoFTP, [https://aminet.net/package/comm/tcp/wput-0.3.4c.i386-aros wput i386 c src]
|<!--Amiga OS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP, [https://aminet.net/package/comm/tcp/sana2-tftpclient sana2 tftpclient c src]
|<!--AmigaOS4-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|<!--MorphOS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Pftp], [http://aminet.net/package/comm/tcp/AmiFTP-1.935-OS4 AmiFTP],
|-
|<!--Sub Menu-->WYSIWYG Web Site Editor
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Internet Radio Streaming Audio [http://www.gnu.org/software/gnump3d/ gnump3d], [http://www.icecast.org/ Icecast2] Server (Broadcast) and Client (Listen), [ mpd], [http://darkice.sourceforge.net/ DarkIce], [http://www.dyne.org/software/muse/ Muse],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc], Mplayer (Icecast Client only),
|<!--Amiga OS-->[https://github.com/sandlbn/TuneFinder TuneFinder C Src], [https://github.com/sandlbn/TuneFinderMUI TuneFinderMUI], [http://amigazeux.net/anr/ AmiNetRadio], [https://github.com/boingball/MintAMP MintAMP], [],
|<!--AmigaOS4-->[http://www.tunenet.co.uk/ Tunenet],
|<!--MorphOS-->Mplayer, AmiNetRadio,
|-
|<!--Sub Menu-->VoIP (Voice over IP) with SIP Client (Session Initiation Protocol) or Asterisk IAX2 Clients Softphone (skype like)
|<!--AROS-->
|<!--Amiga OS-->AmiPhone with Speak Freely,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Weather Forecast
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ WeatherBar], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench AWeather], []
|<!--Amiga OS-->[http://amigazeux.net/wetter/ Wetter], [https://github.com/emartisoft/AmiWeatherForecasts AmiWeatherForecasts src],
|<!--AmigaOS4-->[http://os4depot.net/?function=showfile&file=utility/workbench/flipclock.lha FlipClock],
|<!--MorphOS-->[http://amigazeux.net/wetter/ Wetter],
|-
|<!--Sub Menu-->Street Road Maps Route Planning GPS Tracking
|<!--AROS-->[https://blog.alb42.de/programs/muimapparium/ MuiMapparium] [https://build.alb42.de/ Build of MuiMapp versions],
|<!--Amiga OS-->AmiAtlas*, UKRoutePlus*, [http://blog.alb42.de/ AmOSM],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://blog.alb42.de/programs/mapparium/ Mapparium],
|-
|<!--Sub Menu-->Clock and Date setting from the internet by network time protocol (NTP) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ old standard NIST Internet Time Servers],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync], [https://archives.arosworld.org/?function=showfile&file=utility/workbench/amitimekeeper.i386-aros.lha amitimekeeper with c src], [PiNTP], [],
|<!--Amiga OS-->ntpsync, [http://aminet.net/package/util/cdity/AmiTimeKeeper amitimekeeper], [http://aminet.net/comm/misc/netclock netclock], [https://aminet.net/package/comm/net/sntp sntp], [http://aminet.net/package/util/time/ScreenTime ScreenTime],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->RSS
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/Team-Boingo/AmiRSS AmiRSS src]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->AI
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/murinsel/AmigaAI Claude], [https://github.com/geekychris/amiga_mcp AI on host machine], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->BBS
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Graphical Image Editing Art==
{| class="wikitable sortable"
|-
!width:30%;|Image Editing
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Pixel Raster Artwork [https://github.com/LibreSprite/LibreSprite LibreSprite based on GPL aseprite], [https://github.com/abetusk/hsvhero hsvhero], [],
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/ZunePaint/ ZunePaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit LunaPaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit GrafX2], [ LodePaint needs OpenGL],
|<!--Amiga OS-->[http://www.amigaforever.com/classic/download.html PPaint], GrafX2, [https://github.com/grovdata/Amiga_Sources/blob/master/software.md DeluxePaint], [http://www.amiforce.de/perfectpaint/perfectpaint.php PerfectPaint], Zoetrope, Brilliance2*,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/edit LodePaint], GrafX2,
|<!--MorphOS-->Sketch, Pixel*, GrafX2, [http://morphos.lukysoft.cz/en/vypis.php?kat=3 LunaPaint]
|-
|<!--Sub Menu-->Image viewing
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LookHere], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LoView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer PicShow] , [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--Amiga OS-->PicShow, PicView, Photoalbum,
|<!--AmigaOS4-->WarpView, PicShow, flPhoto, Thumbs, [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album]
|-
|<!--Sub Menu-->Photography retouching / Image Manipulation like Photoshop(tm)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOEffects],
|<!--Amiga OS-->[ Tecsoft Video Paint aka TVPaint], Photogenics*, ArtEffect*, ImageFX*, XiPaint, fxPaint, ImageMasterRT, Opalpaint,
|<!--AmigaOS4-->WarpView, flPhoto, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit Photocrop]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], ImageFX*,
|-
|<!--Sub Menu-->Manage RAW picture folder galleries like Darktable, RAWtherapy, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Graphic Format Converter - ICC profile support sRGB, Adobe RGB, XYZ and linear RGB
|<!--AROS-->
|<!--Amiga OS-->GraphicsConverter, ImageStudio, [http://www.coplabs.org/artpro.html ArtPro]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Thumbnail Generator [],
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=utility/shell Thumbnail Generator]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Icon Editor
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/iconedit Archives], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench Icon Toolbox],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/iconedit IconEditor]
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Pixel Art Animation
|<!--AROS-->Lunapaint
|<!--Amiga OS-->PPaint, AnimatED, Scala*, GoldDisk MovieSetter*, Walt Disney's Animation Studio*, ProDAD*, [https://github.com/historicalsource/DeluxePaint DeluxePaint src], Brilliance
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 Titler]
|-
|<!--Sub Menu-->2D SVG based MovieSetter type
|<!--AROS-->
|<!--Amiga OS-->MovieSetter*, Fantavision*
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Morphing
|<!--AROS-->[ GLMorph]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Cad (qcad->LibreCAD, etc.)
|<!--AROS-->
|<!--Amiga OS-->Xcad, MaxonCAD
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Cad like FreeCad, BRL-CAD, OpenSCAD, AvoCADo, etc. using dxf, obj (vertices), blend,
|<!--AROS-->
|<!--Amiga OS-->XCad3d*, DynaCADD*, [https://aminet.net/package/gfx/3d/Cycas178_EN Cycas]*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Model Rendering of glft (json) gbl (png jpg), usdz (USD files with materials, textures, and animations), FBX Filmbox is a proprietary Autodesk format,
|<!--AROS-->POV-Ray
|<!--Amiga OS-->[http://www.discreetfx.com./amigaproducts.html CINEMA 4D]*, POV-Ray, Lightwave3D*, Real3D*, Caligari24*, Reflections/Monzoom*, [https://github.com/privatosan/RayStorm Raystorm src], Tornado 3D, [https://github.com/AlphaPixel/Eric-Graham-1987-Juggler-Raytracer-1.0 Eric-Graham-1987-Juggler-Raytracer-1.0]
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=graphics/convert/ 3doc.i386-aros], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen grabbing display
|<!--AROS-->[ Screengrabber], [http://archives.arosworld.org/index.php?function=browse&cat=utility/misc snapit], [http://archives.arosworld.org/index.php?function=browse&cat=video/record screen recorder], []
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Grab graphics music from apps [https://github.com/Malvineous/ripper6 ripper6], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Metadata of graphic format [https://github.com/exiv2/exiv2 exiv2], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Office Application==
{| class="wikitable sortable"
|-
!width:30%;|Office
!width:10%;|AROS (x86)
!width:10%;|[http://en.wikipedia.org/wiki/Amiga_software Commodore-Amiga OS 3.1] (68k)
!width:10%;|[http://en.wikipedia.org/wiki/AmigaOS_4 Hyperion OS4] (PPC)
!width:10%;|[http://en.wikipedia.org/wiki/MorphOS MorphOS] (PPC)
|-
|<!--Sub Menu-->Office Suite
|<!--AROS-->
|<!--Amiga OS-->[ Softwood Final Office], [ Wordworth Office], [ Digita Office], [ The Works!], [ Europress Mini Office], [], [ Papyrus Office Demo],
|<!--AmigaOS4-->
|<!--MorphOS-->[ Papyrus Office],
|-
|<!--Sub Menu-->Word-processing
|<!--AROS-->[https://finalwriter.godaddysites.com/ Final Writer 7*], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1995&rowstart=20&pid=12668#post_12668 Slovo], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [],
|<!--AmigaOS-->[ Softwood FinalCopy II*], Haage AmigaWriter*, Digita WordWorth*, Softwood FinalWriter*, Micro-Systems Excellence 3*, Arnor Protext, Rashumon, [ InterWord], [ KindWords], [WordPerfect], [ New Horizons Flow], [ CygnusEd Pro], [ Micro-systems Scribble],
|<!--AmigaOS4-->AbiWord, [ CinnamonWriter],
|<!--MorphOS-->[ Cinnamon Writer], [http://www.meta-morphos.org/viewtopic.php?topic=1246&forum=53 scriba], [http://morphos.lukysoft.cz/en/index.php Papyrus Office],
|-
|<!--Sub Menu-->Spreadsheets
|<!--AROS-->[https://blog.alb42.de/programs/leu/ Leu], [https://archives.arosworld.org/index.php?function=browse&cat=office/spreadsheet ],
|<!--AmigaOS-->[https://aminet.net/package/biz/spread/ignition-src Ignition Src 1.3], [MaxiPlan 500 Plus], [OXXI Plan/IT v2.0 Speadsheet], [ Superplan], [ Creative Developments TurboCalc], [ ProCalc], [ InterSpread], [Digita DGCalc], [ Gold Disk Advantage], [ Micro-systems Analyze!]
|<!--AmigaOS4-->Gnumeric, [https://ignition-amiga.sourceforge.net/ Ignition],
|<!--MorphOS-->[ ignition], [http://morphos.lukysoft.cz/en/vypis.php Papyrus Office],
|-
|<!--Sub Menu-->Presentations
|<!--AROS-->[http://www.hollywoood-mal.com/ Hollywood]*,
|<!--Amiga OS-->[http://www.hollywoood-mal.com/ Hollywood]*, [https://github.com/evaneykelen/mediapoint-amiga MediaPoint C and asm], PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, [https://sourceforge.net/projects/beebase/ BeeBase], Datastore, FinalData*, AmigaBase, Fiasco, Twist2*, [Digita DGBase], [],
|<!--AmigaOS4-->BeeBase, SQLite,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=6 BeeBase],
|-
|<!--Sub Menu-->PDF Viewing and editing digital signatures
|<!--AROS-->[https://github.com/tomaszstaniak/aros-foliopdf aros-foliopdf version of mupdf], [http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Note Taking markdown support like Obsidian like, joplin, OneNote, EverNotes, xournalpp, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Study and analyse, collect, organize, annotate, cite, and share
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PIM Personal Information Manager - Day Diary Planner Calendar App Filofax like
|<!--AROS-->[ ], [ ], [ ],
|<!--Amiga OS-->Digita Organiser*, On The Ball, Everyday Organiser, [ Contact Manager],
|<!--AmigaOS4-->AOrganiser,
|<!--MorphOS-->[http://polymere.free.fr/orga_en.html PolyOrga],
|-
|<!--Sub Menu-->Accounting
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/misc ETB], LoanCalc, [ ], [ ], [ ],
|[ Digita Home Accounts2], Accountant, Small Business Accounts, Account Master, [ Amigabok],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Project Management Research
|<!--AROS-->
|<!--Amiga OS-->SuperGantt, SuperPlan,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Desktop
|<!--AROS-->Wanderer, Scalos, Workbook, DOpus5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[https://github.com/zapek/Ambient Ambient Src]
|-
|<!--Sub Menu-->System Wide Search
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility/filetool Finder], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Wide Dictionary - multilingual [http://sourceforge.net/projects/babiloo/ Babiloo], [http://code.google.com/p/stardict-3/ StarDict],
|<!--AROS-->[ ],
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System wide Thesaurus - multi lingual
|<!--AROS-->[ ],
|Kuma K-Roget*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Sticky Desktop Notes (post it type)
|<!--AROS-->[http://aminet.net/package/util/wb/amimemos.i386-aros AmiMemos], [https://aminet.net/package/util/wb/amimemos.src-aros AmiMemos Src], [],
|<!--Amiga OS-->[http://aminet.net/package/util/wb/StickIt-2.00 StickIt v2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DTP Desktop Publishing
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOPublisher],
|<!--Amiga OS-->[http://pagestream.org/ Pagestream]*, Professional Pro Page*, Saxon Publisher, Pagesetter, PenPal,
|<!--AmigaOS4-->[http://pagestream.org/ Pagestream]*
|<!--MorphOS-->[http://pagestream.org/ Pagestream]*
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers, [https://github.com/bohunamiga/MintPRINT MintPRINT AirPrint IPP], [ Ghostscript], [],
|<!--Amiga OS-->[https://github.com/boingball/MintPRINT MintPRINT IPP], [https://github.com/Andiweli/AmiAirprint AmiAirprint], [http://www.irseesoft.de/tp_what.htm TurboPrint]*, [ GutenPrint], [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR], [], [],
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included, [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR],
|-
|<!--Sub Menu-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*, [https://github.com/boingball/MintSCAN MintSCAN],
|<!--AmigaOS4-->SCANdal (Sane)
|<!--MorphOS-->SCANdal
|-
|<!--Sub Menu-->OCR
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/convert gOCR]
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos-files.net/categories/office/text Tesseract]
|-
|<!--Sub Menu-->Text Editing
|<!--AROS-->Jano Editor (already installed as Editor), [http://archives.arosworld.org/index.php?function=browse&cat=development/edit EdiSyn], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate], [https://archives.arosworld.org/index.php?function=browse&cat=development/edit Vim], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd] [https://github.com/vidarh/FrexxEd src], [ NoWinEd],
|<!--Amiga OS-->[https://aminet.net/package/text/edit/TurboText20 TurboText20 ttx], Annotate, MicroGoldED/CubicIDE*, CygnusED*, Protext*, NoWinED,
|<!--AmigaOS4-->Notepad, Annotate, CygnusED*, NoWinED,
|<!--MorphOS-->MorphOS ED, NoWinED, GoldED/CubicIDE*, CygnusED*, Annotate,
|-
|<!--Sub Menu-->Office Fonts [http://sourceforge.net/projects/fontforge/files/fontforge-source/ Font Designer]
|<!--AROS-->[ ], [ ],
|<!--Amiga OS-->TypeSmith*, SaxonScript (GetFont Adobe Type 1),
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Drawing Vector
|<!--AROS-->[http://sourceforge.net/projects/amifig/ ZuneFIG previously AmiFIG], [https://github.com/serk118/designworks-aros designworks aros 64bit]
|<!--Amiga OS-->Drawstudio*, ProVector*, ArtExpression*, Professional Draw*, AmiFIG, MetaView, [https://gitlab.com/amigasourcecodepreservation/designworks Design Works Src], [],
|<!--AmigaOS4-->MindSpace, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit amifig],
|<!--MorphOS-->SteamDraw, [http://aminet.net/package/gfx/edit/amifig amiFIG],
|-
|<!--Sub Menu-->video conferencing (jitsi)
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->source code hosting
|<!--AROS-->Gitlab,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Remote Desktop (server)
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/VNC_Server ArosVNCServer],
|<!--Amiga OS-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC], [http://dspach.free.fr/amiga/avnc/index.html AVNC]
|<!--AmigaOS4-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC]
|MorphVNC, vncserver
|-
|<!--Sub Menu-->Remote Desktop (client) login and connect to another machine
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/VNC_Client/ ArosVNC], [http://archives.arosworld.org/index.php?function=browse&cat=network/misc rdesktop],
|<!--Amiga OS-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://dspach.free.fr/amiga/vva/index.html VVA], [http://www.hd-zone.com/ RDesktop]
|<!--AmigaOS4-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|-
|<!--Sub Menu-->notifications
|<!--AROS-->
|<!--Amiga OS-->Ranchero
|<!--AmigaOS4-->Ringhio
|<!--MorphOS-->MagicBeacon
|-
|<!--Sub Menu-->Biometric facial logins and fingerprint security features
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Audio==
{| class="wikitable sortable"
|-
!width:30%;|Audio
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing playback Audio like MP3, [https://github.com/chrg127/gmplayer NSF], [https://github.com/kode54/lazyusf miniusf .usflib] [https://gitlab.com/kode54/psflib with pfslib], [], [], etc
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ HarmonyPlayer hp], [http://www.a500.org/downloads/audio/index.xhtml playcdda] CDs, [ WildMidi Player], [https://bszili.morphos.me/ UADE mod player], [], [ RNOTunes], [ mp3Player], [],
|<!--Amiga OS-->AmiNetRadio, AmigaAmp, playOGG, [https://codeberg.org/tygre/amimodradio amimodradio]
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX], [ Samplitude],
|<!--AmigaOS4-->[https://sourceforge.net/projects/hd-rec/ HD-Rec], AmiSoundED, [http://os4depot.net/?function=showfile&file=audio/record/audioevolution4.lha Audio Evolution 4]
|[http://www.hd-rec.de/HD-Rec/index.php?site=home HD-Rec],
|-
|<!--Sub Menu-->Editing Tracker Music
|<!--AROS-->[https://github.com/hitchhikr/protrekkr Protrekkr], [ Schism Tracker], [http://archives.arosworld.org/index.php?function=browse&cat=audio/tracker MilkyTracker], [http://www.hivelytracker.com/ HivelyTracker], [ Radium in AROS already], [http://www.a500.org/downloads/development/index.xhtml libMikMod],
|<!--Amiga OS-->MilkyTracker, HivelyTracker, DigiBooster, Octamed SoundStudio, [https://github.com/elindstrom/soundtracker soundtracker],
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and musical notes on manuscript [https://github.com/ratchov/midish midish] midi sequencer
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes], [], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction Set DMCS2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src] [https://github.com/kas1e/midi-sequencer-amigaos/tree/master/HornyGCC HornyGCC OS4 src] [https://github.com/capehill/midi-sequencer-amigaos Horny OS4 fork src] [https://www.amigans.net/modules/newbb/viewtopic.php?start=0&topic_id=8143&order=ASC&status=&mode=0 OS4 thread], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator], [https://github.com/royaltm/Amiga-midiIn Amiga-midiIn], [ Aegis Sonix 2.0]
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [https://github.com/gooofy/freeaction Horny OS4 src fork], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[ Advanced AHI Recorder all], [https://archives.arosworld.org/index.php?function=browse&cat=audio/record Audio Evolution 4], [http://www.imica.net/SitePortalPage.aspx?siteid=1&did=162 Quick Record], [https://archives.arosworld.org/index.php?function=browse&cat=audio/misc SOX to get AIFF 16bit files], [https://github.com/aros-development-team/AROS/tree/master/workbench/tools/AHIRecord AHIRecord],
|<!--Amiga OS-->[https://aminet.net/package/mus/edit/AudioEvolution3_src Audio Evolution 3 c src], [ Samplitude]*, Audiomaster IV*,
|<!--AmigaOS4-->[https://github.com/timoinutilis/phonolith-amigaos phonolith c src], HD-Rec, Audio Evolution 4,
|<!--MorphOS-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Audio Evolution 4,
|-
|<!--Sub Menu-->Audio Processing like easyeffects so having limiter, compressor, convolver, equalizer and auto volume and many other plugins
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility IsoTools], [https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [ MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|<!--MorphOS-->[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|<!--AROS-->Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|<!--MorphOS-->Lame,
|-
|<!--Sub Menu-->MP3 v1 and v2 Tagger
|<!--AROS-->id3ren (v1), [http://archives.arosworld.org/index.php?function=browse&cat=audio/edit mp3info],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|
|-
|<!--Sub Menu-->Audio Convert
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc Sox], [],
|<!--Amiga OS-->[http://aminet.net/package/mus/misc/SoundBox SoundBox], [http://aminet.net/package/mus/misc/SoundBoxKey SoundBox Key], [http://aminet.net/package/mus/edit/SampleE SampleE], sox
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DJ mixing jamming
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/djh0ffman/PT1210 Hoffman PT1210 DJ tracker], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Radio Automation Software [http://www.rivendellaudio.org/ Rivendell], [http://code.campware.org/projects/livesupport/report/3 Campware LiveSupport], [http://www.sourcefabric.org/en/airtime/ SourceFabric AirTime], [http://www.ohloh.net/p/mediabox404 MediaBox404],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speakers Audio Sonos Mains AC networked wired controlled
*2005 ZP100 with ZP80
*2008 Zoneplayer ZP120 (multi-room wireless amp) ZP90 receiver only with CR100 controller,
*2009 ZonePlayer S5,
*2010 BR100 wireless Bridge (no support),
*2011 Play:3
*2013 Bridge (no support), Play:1,
*2016 Arc, Play:1,
*Beam (Gen 2), Playbar, Ray, Era 100, Era 300, Roam, Move 2,
*Sub (Gen 3), Sub Mini, Five, Amp S2
|<!--AROS-->SonosController
|<!--Amiga OS-->SonosController
|<!--AmigaOS4-->SonosController
|<!--MorphOS-->SonosController
|-
|<!--Sub Menu-->Smart Speakers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Video Creativity and Production==
{| class="wikitable sortable"
|-
!width:30%;|Video
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing Video
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ VAMP], [http://www.a500.org/downloads/video/index.xhtml CDXL player], [http://www.a500.org/downloads/video/index.xhtml IffAnimPlay], [],
|<!--Amiga OS-->Frogger*, AMP2, MPlayer, RiVA*, MooViD*,
|<!--AmigaOS4-->DvPlayer, MPlayer
|<!--MorphOS-->MPlayer, Frogger, AMP2, VLC
|-
|<!--Sub Menu-->Streaming Video and game streaming like OBS studio, Parsec, [https://github.com/lizardbyte/sunshine sunshine], [https://github.com/moonlight-stream/moonlight-qt moonlight], etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Playing DVD
|<!--AROS-->[http://a-mc.biz/ AMC]*, Mplayer
|<!--Amiga OS-->AMP2, Frogger
|<!--AmigaOS4-->[http://a-mc.biz/ AMC]*, DvPlayer*, AMP2,
|<!--MorphOS-->Mplayer
|-
|<!--Sub Menu-->Screen Recording
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/record Screenrecorder], [ ], [ ], [ ], [ ],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Screenrecorder,
|-
|<!--Sub Menu-->Create Edit Individual Video - Amiga like OSs have no pro NLE
|<!--AROS-->[ Mencoder], [ Quick Videos], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit AVIbuild], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/misc FrameBuild], FFMPEG,
|<!--Amiga OS-->[ MainConcept Mainactor Broadcast*], [http://en.wikipedia.org/wiki/Video_Toaster Video Toaster*] with [https://discreetfx.com/openvideotoaster.html some c src], MacroSystem MovieShop 4.3*, proDAD Adorage*, [ IOSpirit VHI studio]*, [Gold Disk ShowMaker], [],
|<!--AmigaOS4-->FFMpeg/GUI
|<!--MorphOS-->Blender, Mencoder, FFmpeg
|-
|<!--Sub Menu-->Subtitle editor
|<!--AROS-->[https://aminet.net/package/text/edit/Slarti_Arosx86ABIv0 Slarti_Arosx86ABIv0], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->IP-based video production workflows with High Dynamic Range (HDR), 10-bit color collaborative NDI,
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Blogging like Lemmy or kbin
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR face recognition for Vtubers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting Live2D models with Cubism type editor or [https://github.com/AyagamiDev/ayagami ayagami] like with zipped moc3 with model metadata (model3, cdi3)
<pre>
Model data (cmo3)
Basic motions (can3)
Background image (png)
Set of files for embedding (runtime folder)
• Model data (moc3)
• Motion data (motion3.json)
• Model settings file (model3.json)
• Physics settings file (physics3.json)
• Display auxiliary file (cdi3.json)
</pre>
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting chatters .VRML models - standardized 3D file format for VR avatars
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->V-tubers V-tubing like Vseeface with Openseeface tracker or Vpuppr (virtual puppet project) for online live 2d / 3d art models rigging rigged LIV
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Misc Application==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->File Management
|<!--AROS-->DOpus4, [https://github.com/BlitterStudio/dopus5 DOpus Magellan aka DOpus 5], [ Scalos], [ Diskmaster],
|<!--Amiga OS-->DOpus2, DOpus 4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], Filer, AmiDisk
|<!--MorphOS-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->[https://arosarchives.os4depot.net/index.php?function=browse&cat=utility md5sum], [https://arosarchives.os4depot.net/index.php?function=browse&cat=utility/filetool asum], [http://archives.arosworld.org/index.php?function=browse&cat=utility/filetool workpar2] (PAR2), [http://zakalwe.fi/~shd/foss/cksfv/files/ compile cksfv from website],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Par2,
|-
|Application Installer
|<!--AROS-->[], [ InstallerNG],
|<!--Amiga OS-->InstallerNG, Grunch,
|<!--AmigaOS4-->Jack
|<!--MorphOS-->Jack
|-
|<!--Sub Menu-->Compression archiver [https://github.com/FS-make-simple/paq9a paq9a], [],
|<!--AROS-->XAD system is a toolkit designed for handling various file and disk archiver
|<!--Amiga OS-->
|<!--AmigaOS4-->[https://aminet.net/package/util/pack/decrunchmania_os4 Crunchmania CrM2 depacker],
|<!--MorphOS-->
|-
|<!--Sub Menu-->Binary Hexadecimal Editor
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/edit Zaphod], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter Disk Management
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [ HDToolBox]
|<!--Amiga OS-->[https://github.com/stefanskotte/hdpart hdpart], [https://github.com/ChuckyGang/AmiPart AmiPart],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair and backups
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS-->[https://aminet.net/package/disk/bakup/quarterback_src Quarterback Tools C and asm src], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Disk check, integrity and history [https://github.com/smartmontools/smartmontools smart tools], [],
|<!--AROS-->
|<!--Amiga OS-->[],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Multiple File renaming
|<!--AROS-->DOpus 4 or 5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Anti Virus
|<!--AROS-->
|<!--Amiga OS-->VChecker,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Random Wallpaper Desktop changer [ DOpus5], [ Scalos],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Alarm Clock, Timer, Stopwatch, Countdown
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench DClock], [http://aminet.net/util/time/AlarmClockAROS.lha AlarmClock], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 2==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->C/C++ IDE Integrated Development
|<!--AROS-->[https://sourceforge.net/projects/aidea/ AIDEa], [ Murks], [],
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, [ StormC], [https://github.com/jens-maus/amide amide], [],
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*,
|-
|<!--Sub Menu-->C/C++ Text Editors
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate] with [https://www.onyxsoft.se/files/annotate_src.lha src],
|<!--Amiga OS-->[ Protext], [ CED], [],
|<!--AmigaOS4-->
|<!--MorphOS-->[https://www.onyxsoft.se/annotate.html Annotate],
|-
|<!--Sub Menu-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->BASIC Computer Language
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/language Basic4SDL], [ Ace Basic], [ X-AMOS], [SDLBasic], [ Alvyn],
|<!--Amiga OS-->[http://www.amiforce.de/main.php Amiblitz 3] with [https://github.com/AmiBlitz/AmiBlitz3 Asm src], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro] with [https://github.com/AmiDARK/AmosProfessionalUnity-Official-Releases Asm src], [http://aminet.net/package/dev/basic/ace24dist ACE Basic], [https://github.com/gooofy/aqb aqb], [],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/], [https://github.com/kermitfrog/Amiga-Re-Engineering Rust, Ghidra and FS-UAE],
|<!--AROS-->
|<!--Amiga OS-->[https://bitbucket.org/rhinoid/convert68000toc/src/main/ convert m68k seka asm-one to c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Gui Creators
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/guitool MuiBuilder],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[ MuiBuilder],
|-
|<!--Sub Menu-->Catalog .cd .ct Custom App Language Editors
|<!--AROS-->FlexCat, [https://archives.arosworld.org/index.php?function=browse&cat=utility Flexcat GUI], [],
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|<!--MorphOS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->Cross Development
|<!--AROS-->[], [],
|<!--Amiga OS-->[https://github.com/geekychris/amiga_mcp amiga_mcp], [https://github.com/mbergmann-sh/AmigaED4-IDE AmigaED4-IDE], [https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/ Turbo Rascal], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Misc Application 3==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Terminals Shells CLIs
|<!--AROS-->[https://tomaszstaniak.com/aros-term/ aros-term], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->OSK On Screen Keyboard
|<!--AROS-->[],
|<!--Amiga OS-->[https://aminet.net/util/wb/OSK.lha OSK]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Magnifier Magnifying Glass Magnification
|<!--AROS-->[http://www.onyxsoft.se/files/zoomit.lha ZoomIT],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Comic Book CBR CBZ format reader viewer
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comics], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comicon], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Reader
|<!--AROS-->[https://blog.alb42.de/programs/#legadon Legadon EPUB],[]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Converter
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Text to Speech tts [https://github.com/JonathanFly/bark-installer Bark], [],
|<!--AROS-->[ Echo " " >SPEAK:A1 inbuilt], [http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator], [https://github.com/sidick/narrator.wyoming narrator.wyoming], [],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=search&tool=simple FLite]
|<!--MorphOS-->[http://se.aminet.net/pub/aminet/mus/misc/ FLite]
|-
|<!--Sub Menu-->Speech Voice Recognition Dictation - [http://sourceforge.net/projects/cmusphinx/files/ CMU Sphinx], [http://julius.sourceforge.jp/en_index.php?q=en/index.html Julius], [http://www.isip.piconepress.com/projects/speech/index.html ISIP],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speech Voice Changer [], [], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Display Blanker screensaver
|<!--AROS-->Blanker Commodity (built in), [https://archives.arosworld.org/index.php?function=browse&cat=graphics/screenblanker GarshneBlanker], [http://sourceforge.net/projects/gblanker/ GBlanker Src], [],
|<!--Amiga OS-->MultiCX,
|<!--AmigaOS4-->
|<!--MorphOS-->ModernArt Blanker,
|-
|<!--Sub Menu-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 4==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Fractals mandelbrot, etc
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/misc],
|<!--Amiga OS-->ZoneXplorer,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Landscape Rendering
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/raytrace WCS World Construction Set],
|<!--Amiga OS-->[ Vista Pro], [http://en.wikipedia.org/wiki/World_Construction_Set World Construction Set]
|<!--AmigaOS4-->[ WCS World Construction Set],
|<!--MorphOS-->[ WCS World Construction Set],
|-
|<!--Sub Menu-->Astronomy [https://sourceforge.net/projects/skychart/ skychart freepascal], [], [],
|<!--AROS-->[ Digital Almanac (ABIv0 only)],
|<!--Amiga OS-->[http://aminet.net/search?query=planetarium Aminet search], [http://aminet.net/misc/sci/DA3V56ISO.zip Digital Almanac], [https://aminet.net/package/misc/sci/da3sourceV58 Src c V58], [ Galileo renamed to Distant Suns]*, [],
|<!--AmigaOS4-->[http://sourceforge.net/projects/digital-almanac/ Digital Almanac], Distant Suns*, [http://www.digitaluniverse.org.uk/ Digital Universe]*,
|<!--MorphOS-->[http://www.aminet.net/misc/sci/da3.lha Digital Almanac], [http://www.aminet.net/package/misc/sci/da3-mos-src Src c V56],
|-
|<!--Sub Menu-->Astrology [https://sourceforge.net/projects/skylendar/ skylendar], [https://github.com/CruiserOne/Astrolog Astrolog], [https://www.astrolog.org/astrolog/astfile.htm Astrology alt site], [https://saravali.github.io/download.html Maitreya], [https://github.com/alamahant/Asteria Asteria],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Genealogy History Family Tree Ancestry Records (FreeBMD, FreeREG, and FreeCEN file formats or GEDCOM GenTree)
|<!--AROS-->
|<!--Amiga OS--> [ Origins], [ Your Family Tree], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Languages
|<!--AROS-->
|<!--Amiga OS-->Fun School,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Mathematics ([http://www-fourier.ujf-grenoble.fr/~parisse/install_en.html Xcas], etc.),
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/scientific mathX]
|<!--Amiga OS-->Maple V, mathX, Fun School, GCSE Maths, [ ], [ ], [ ],
|<!--AmigaOS4-->Yacas
|<!--MorphOS-->Yacas
|-
|<!--Sub Menu-->Maths Graph Function Plotting
|<!--AROS-->[https://blog.alb42.de/programs/#MUIPlot MUIPlot],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->App Utility Launcher Dock toolbar
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/docky BoingBar], [],
|<!--Amiga OS-->[https://github.com/adkennan/DockBot Dockbot],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Printer [https://github.com/OrcaSlicer/OrcaSlicer OrcaSlicer]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->HAM radio, amateur radio, packet radio, [], [], [], [https://cemaxecuter.com/ Dragon OS], [https://github.com/km4ack/73Linux with 73 link update], [https://www.youtube.com/watch?v=YAL5KNePRSg video for],
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/punktniklas/NiKom NiKom], [https://www.amigarealm.com/amiga/amicomms/comm4.htm Comm4], [https://www.amigarealm.com/archives/comms/aarug/ TNC Terminal Node Controller with packets over serial connections on Yaesu or Woxum handheld], [https://aminet.net/comm/misc AmiCom], [ with 7Plus file encoder/decoder], [ mksstv], [ RTTYam],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->modern smart home network like Home Assistant Automation Yellow, Green, Mosquitto, EMQX,
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/evil4dmin/ami2ha HA], [https://github.com/sidick/midge mtqq.lib], [https://aminet.net/package/comm/tcp/AmiHomeassist-0.7 AmiHomeassist],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Teaching classroom learning training [https://github.com/moodle/moodle moodle], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Games & Emulation==
Some emulators/games require OpenGL to function and to adjust ahi prefs channels, frequency and unit0 and unit1 and
[http://aros.sourceforge.net/documentation/users/shell/changetaskpri.php changetaskpri -1]
Rom patching https://www.marcrobledo.com/RomPatcher.js/ https://www.romhacking.net/patch/ (ips, ups, bps, etc) and this other site supports the latter formats https://hack64.net/tools/patcher.php
Free public domain roms for use with emulators can be found [http://www.pdroms.de/ here] as most of the rest are covered by copyright rules. If you like to read about old games see [http://retrogamingtimes.com/ here] and [http://www.armchairarcade.com/neo/ here] and a [http://www.vintagecomputing.com/ blog] about old computers. Possibly some of the [http://www.answers.com/topic/list-of-best-selling-computer-and-video-games best selling] of all time. [http://en.wikipedia.org/wiki/List_of_computer_system_emulators Wiki] with emulated systems list.
[https://archive.gamehistory.org/ Archive of VGHF], [https://library.gamehistory.org/ Video Game History Foundation Library search]
{| class="wikitable sortable"
|-
!width:10%;|Games [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Emulation]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Games Emulation Amstrad CPC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [ Caprice32 (OpenGL & pure SDL)], [ Arnold], [https://retroshowcase.gr/cpcbox-master/],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2],
|-
|<!--Sub Menu-->Games Emulation Apple2 and 2GS
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Arcade
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Mame], [ SI Emu (ABIv0 only)],
|<!--Amiga OS-->Mame,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem xmame], amiarcadia,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 Mame],
|-
|<!--Sub Menu-->Games Emulation Atari 2600 [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Stella],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 5200 [https://github.com/wavemotion-dave/A5200DS A5200DS], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 7800
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 400 800 130XL [https://github.com/wavemotion-dave/A8DS A8DS], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Atari800],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Lynx
|<!--AROS-->[http://myfreefilehosting.com/f/6366e11bdf_1.93MB Handy (ABIv0 only)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Jaguar
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Bandai Wonderswan
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation BBC Micro and Acorn Electron [http://beehttps://bem-unix.bbcmicro.com/download.html BeebEm], [http://b-em.bbcmicro.com/ B-Em], [http://elkulator.acornelectron.co.uk/ Elkulator], [http://electrem.emuunlim.com/ ElectrEm],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Dragon 32 and Tandy CoCo [http://www.6809.org.uk/xroar/ xroar], [],
|<!--AROS-->[], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C16 Plus4
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C64
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Vice (ABIv0 only)], [],
|<!--Amiga OS-->Frodo,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem viceplus],
|<!--MorphOS-->Vice,
|-
|<!--Sub Menu-->Games Emulation Commodore Amiga
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Janus UAE], Emumiga,
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer UAE],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 UAE],
|-
|<!--Sub Menu-->Games Emulation Japanese MSX MSX2
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Intelivision
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Colecovision and Adam
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Milton Bradley (MB) Vectrex [ Vectrex OpenGL],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation PICO8 Pico-8 fantasy video game console [https://github.com/egordorichev/pemsa-sdl/ pemsa-sdl], [https://github.com/jtothebell/fake-08 fake-08], [https://github.com/Epicpkmn11/fake-08/tree/wip fake-08 fork],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo Gameboy
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem vba no sound], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem vba]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo NES
|<!--AROS-->[ EmiNES], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Fceu], [https://github.com/takahirox/nes-js?tab=readme-ov-file nes-js], [https://github.com/bfirsh/jsnes jsnes], [https://github.com/angelo-wf/NesJs NesJs],
|<!--Amiga OS-->AmiNES, [http://www.dridus.com/~nyef/darcnes/ darcNES],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem amines]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo SNES
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Zsnes],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem warpsnes]
|<!--MorphOS-->[http://fabportnawak.free.fr/snes/ Snes9x],
|-
|<!--Sub Menu-->Games Emulation Nintendo N64
*HLE and plugins [ mupen64], [https://github.com/ares-emulator/ares ares], [https://github.com/N64Recomp/N64Recomp N64Recomp], [https://github.com/rt64/rt64 rt64], [https://github.com/simple64/simple64 Simple64],
*LLE [],
|<!--AROS-->[http://code.google.com/p/mupen64plus/ Mupen64+],
|<!--Amiga OS-->[http://code.google.com/p/mupen64plus/ Mupen64+], [http://aminet.net/package/misc/emu/tr-981125_src TR64],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Gamecube Wii]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Wii U]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/yuzu-emu Nintendo Switch]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation NEC PC Engine
|<!--AROS-->[], [], [https://github.com/yhzmr442/jspce js-pce],
|[http://www.hugo.fr.fm/ Hugo], [http://mednafen.sourceforge.net/ Mednafen],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem tgemu]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Master System (SMS)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Dega], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem sms],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem osmose]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Genesis/Megadrive
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem gp no sound], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem DGen],
|<!--Amiga OS-->[http://code.google.com/p/genplus-gx/ Genplus],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem genesisplus]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Saturn
*HLE [https://mednafen.github.io/ mednafen], [http://yabause.org/ yabause], [],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->[http://yabause.org/ Yabause],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Dreamcast
*HLE [https://github.com/flyinghead/flycast flycast], [https://code.google.com/archive/p/nulldc/downloads NullDC],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair ZX80 and ZX81
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair Spectrum
|[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Fuse (crackly sound)], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer SimCoupe], [ FBZX slow], [https://jsspeccy.zxdemo.org/ jsspeccy], [http://torinak.com/qaop/games qaop],
|<!--Amiga OS-->[http://www.lasernet.plus.com/ Asp], [http://www.zophar.net/sinclair.html Speculator], [http://www.worldofspectrum.org/x128/index.html X128],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair QL
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/QDOS4amiga1 QDOS4amiga]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation SNK NeoGeo Pocket
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem gngeo], NeoPop,
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sony PlayStation
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem FPSE],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem FPSE]
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS2]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS3]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://vita3k.org/ Sony Vita]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/shadps4-emu/shadPS4 PS4]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation [http://en.wikipedia.org/wiki/Tangerine_Computer_Systems Tangerine] Oric and Atmos
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Oricutron]
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem Oricutron]
|<!--MorphOS-->[http://aminet.net/package/misc/emu/oricutron Oricutron]
|-
|<!--Sub Menu-->Games Emulation TI 99/4 99/4A [https://github.com/wavemotion-dave/DS994a DS994a], [], [https://js99er.net/#/ js99er], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation HP 38G 40GS 48 49G/50G Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation TI 58 83 84 85 86 - 89 92 Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
{| class="wikitable sortable"
|-
!width:10%;|Games [https://www.rockpapershotgun.com/ General]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|- style="background:lightgrey;{{text default color}}; text-align:center; font-weight:bold;"
| Games [https://www.trackawesomelist.com/michelpereira/awesome-open-source-games/ Open Source and others] || AROS || Amiga OS || Amiga OS4 || Morphos
|-
|<!--Sub Menu-->Games Action like [https://github.com/opentomb/OpenTomb opentomb], [https://github.com/LostArtefacts/TRX TRX formerly Tomb1Main], [https://github.com/TombEngine TombEngine], [http://archives.arosworld.org/index.php?function=browse&cat=game/action Thrust], [https://github.com/fragglet/sdl-sopwith sdl sopwith],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/action], [https://archives.arosworld.org/index.php?function=browse&cat=game/action BOH], [],
|<!--Amiga OS-->[https://github.com/BSzili/OpenLara/tree/amiga/src source of openlara SDL2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Adventure like [http://dotg.sourceforge.net/ DMJ], [https://github.com/kromenak/gengine Gabriel Knight 3], [http://www.sarien.net/ Sierra Sarien], [https://github.com/klembot/twinejs twine js], [https://github.com/QSPFoundation/qspgui Quest Soft Player QSP], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/adventure dmagnetic], [https://archives.arosworld.org/?function=browse&cat=emulation/misc ScummVM], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying frotz infocom], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Board like [https://github.com/aperture-software/colditz-escape escape from colditz], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/board], [http://amigan.1emu.net/releases Africa]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Cards
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/card], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12934#post_12934 Balatro],
|<!--AmigaOS-->[http://home.arcor.de/amigasolitaire/e/welcome.html Reko], [https://github.com/samskivert/beschei-en beschei Src],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Misc [https://github.com/michelpereira/awesome-open-source-games Awesome open], [https://github.com/bobeff/open-source-games General Open Source], [https://github.com/SAT-R/sa2 Sonic Advance 2], [https://github.com/velorek1/cwordle Wordle type],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/misc], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games FPS like [https://aminet.net/package/game/shoot/D1X_Rebirth_AGA Descent D1X src], [https://github.com/DescentDevelopers/Descent3 Descent 3], [https://github.com/Fewnity/Counter-Strike-Nintendo-DS Counter-Strike-Nintendo-DS], [https://github.com/Aleph-One-Marathon/alephone Bungie Marathon 1994], [https://zdoom.org/downloads UzDoom opengl 3.3], [https://github.com/ZDoom/gzdoom gzdoom opengl 3+], [https://zdoom.org/downloads LZDoom opengl 2.1], [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray],
|<!--AROS-->Doom, Quake, [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Quake 3 Arena (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Assault Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube 2 Sauerbraten (OpenGL)], [http://fodquake.net/test/ FodQuake QuakeWorld], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Duke Nukem 3D], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Darkplaces Nexuiz Xonotic], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Doom 3 SDL (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Hexenworld and Hexen 2], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Aliens vs Predator Gold 2000 avp (openGL)], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Odamex (openGL doom)], [https://archives.arosworld.org/?function=showfile&file=game/fps/ zgloom], [], [https://archives.arosworld.org/?function=showfile&file=game/fps/ ab3dhd], [],
|<!--Amiga OS-->Doom, Quake, AB3D, Fears, Breathless, Gloom,
|<!--AmigaOS4-->Doom, Quake,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12 Doom], Quake, Quake 3 Arena,
|-
|<!--Sub Menu-->Games MMORG like
|<!--AROS-->[ Eternal Lands (OpenGL)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Platform like
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/platform], [ Maze of Galious], [ Gish]*(openGL), [ Mega Mario], [https://archives.arosworld.org/?function=showfile&file=game/platform/ thextech SMBX], [http://www.gianas-return.de/ Giana's Return], [http://www.sqrxz.de/ Sqrxz], [www.sqrxz2.de/ Sqrxz 2], [http://www.sqrxz.de/sqrxz-3/ Sqrxz 3], [http://www.sqrxz.de/sqrxz-4/ Sqrxz 4], [http://archives.arosworld.org/index.php?function=browse&cat=game/platform Cave Story], [https://bszili.morphos.me/ Frogatto], [https://bszili.morphos.me/ OpenJazz], [https://archives.arosworld.org/?function=showfile&file=game/platform/ pekkakana2], [ Aquaria], [https://archives.arosworld.org/?function=showfile&file=game/platform/ sonic CD], [],
|<!--Amiga OS-->[ Giana Sisters], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Puzzle [https://github.com/mariopartyrd/marioparty4/tree/port Party], [https://github.com/mdodis/OpenSolomonsKey OpenSolomonsKey], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle], [ Cubosphere (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle Candy Crisis], [http://bszili.morphos.me/ TailTale],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Racing [ Trigger Rally], [ VDrift], [http://www.ultimatestunts.nl/index.php?page=2&lang=en Ultimate Stunts], [http://maniadrive.raydium.org/ Mania Drive], [https://github.com/plowteam/donut Simpsons Hit and Run], [],
|<!--AROS-->[ Super Tux Kart (OpenGL)], [http://www.dusabledanslherbe.eu/AROSPage/F1Spirit.30.html F1 Spirit (OpenGL)], [http://bszili.morphos.me/index.html MultiRacer], [https://bszili.morphos.me/ Speed Dreams], [https://archives.arosworld.org/?function=showfile&file=game/driving/dethrace-0.10.1.x86_64-aros-v11.zip Carmageddon dethrace 64bit], [http://maniadrive.raydium.org/index.php?downloads=yes maniadrive like trackmania],
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://bszili.morphos.me/index.html Speed Dreams],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12], [http://bszili.morphos.me/index.html TORCS],
|-
|<!--Sub Menu-->Games 1st first person DRPG [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/OpenEnroth/OpenEnroth OpenEnroth MM], []
|<!--AROS-->[https://github.com/BSzili/aros-stuff Arx Libertatis], [http://www.playfuljs.com/a-first-person-engine-in-265-lines/ js raycaster], [https://github.com/Dorthu/es6-crpg webgl], [https://github.com/sonountaleban/AmiShockolate System Shock], [], [],
|<!--AmigaOS-->Phantasie, Faery Tale, Dungeon Master,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 3rd third person action CRPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/alexbatalov/fallout1-ce fallout ce], [https://github.com/rwengine/openrw gta3], [https://github.com/gta-reversed/gta-reversed gta3 sa], [https://github.com/mrxenginner/reVC gta3 vc revc], [https://github.com/jakobharder/burntime/tree/main Burntime],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=game/strategy/ fheroes2 homm2], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ breakhack], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ devilutionx diablo 1 hellfire], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ fallout 1], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ stratagus], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ hostile-takeover], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games isometric RPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/topics/dungeon?l=javascript Dungeon], [], [https://github.com/clintbellanger/heroine-dusk JS Dusk],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying nethack], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying GemRB], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games card based RPG [https://github.com/open-duelyst/duelyst Duelyst], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games turn based tactics RPG [], [], [], [], [], [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/strategy UFO AI], [http://play.freeciv.org/ FreeCiv], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Strategy [http://rtsgus.org/ RTSgus], [http://stargus.sourceforge.net/ Stargus], [https://github.com/KD-lab-Open-Source/Perimeter Perimeter], [https://matty77.itch.io/conflict-3049 conflict-3049], [https://github.com/ZeroK-RTS/Zero-K Zero-K multi player rts lua],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/strategy MegaGlest (OpenGL)], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ signus], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=140&pid=12446#post_12446 Wargus warcraft 2 setup],
|<!--Amiga OS-->[https://aminet.net/package/game/strat/OpenDUNE_RTG OpenDUNE_RTG src]
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Rhythm, Beat, Step [], [], [https://clonehero.net/ clonehero], [https://github.com/MatteoGodzilla/Dj-Engine Dj-Engine],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/misc Frets on Fire], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Shoot Em Ups [http://www.mhgames.org/oldies/formido/ Formido], [http://code.google.com/p/violetland/ Violetland],
||<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/action Open Tyrian], [http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ Alien Blaster], [https://github.com/OpenFodder/openfodder OpenFodder], [https://archives.arosworld.org/?function=showfile&file=game/action/ tbftss The Battle for the Solar System: the Pandora War]
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ The Battle for the Solar System: the Pandora War]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Simulations [http://scp.indiegames.us/ Freespace 2], [http://www.heptargon.de/gl-117/gl-117.html GL117], [http://code.google.com/p/corsix-th/ Theme Hospital], [http://code.google.com/p/freerct/ Rollercoaster Tycoon], [http://hedgewars.org/ Hedgewars], [https://github.com/raceintospace/raceintospace raceintospace], [https://github.com/Return-To-The-Roots RTTR Settlers 2], [https://github.com/OoliteProject/oolite oolite elite], [https://github.com/fesh0r/newkind newkind elite], [https://github.com/bohemiainteractive/cwr Arma Cold War Src], [https://github.com/endless-sky/endless-sky endless-sky], [https://github.com/pioneerspacesim/pioneer pioneer space command],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park, [https://github.com/angree/openttd_amiga_68k openttd amiga_68k],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Life Sim [https://github.com/ACreTeam/forest Animal Crossing], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Horror [https://github.com/Mikompilation/MikuPan Fatal Frame], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Sandbox Voxel Open World Exploration [https://github.com/ClassiCube/ Classicube],[http://www.michaelfogleman.com/craft/ Craft], [https://github.com/tothpaul/DelphiCraft DelphiCraft],[https://www.minetest.net/ Luanti formerly Minetest], [ infiniminer],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Battle Royale [https://bruh.io/ Play.Bruh.io], [https://www.coolmathgames.com/0-copter Copter Royale], [https://surviv.io/ Surviv.io], [https://nuggetroyale.io/#Ketchup Nugget Royale], [https://miniroyale2.io/ Miniroyale2.io],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Tower Defense [https://chriscourses.github.io/tower-defense/ HTML5], [https://github.com/SBardak/Tower-Defense-Game TD C++], [https://github.com/bdoms/love_defense LUA and LOVE], [https://github.com/HyOsori/Osori-WebGame HTML5], [https://github.com/PascalCorpsman/ConfigTD ConfigTD Pascal], [https://github.com/GloriousEggroll/wine-ge-custom Wine], []
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12871#post_12871 Plants vs Zombies PvZ],
|<!--Amiga OS-->[https://github.com/boingball/miggy-tower-defense miggy-tower-defense],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/diane1f0cd/VisualNovelTemplate Visual Novel Template], [https://github.com/Kirilllive/tuesday-js Tuesday JS], [https://github.com/tejasnayak25/vnsutra vnsutra], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [https://github.com/NathanGuilhot/VNES-Raylib https://github.com/NathanGuilhot/VNES VNES in Raylib], [https://www.renpy.org/latest.html renpy ren'py python based],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Reality VR [https://gitlab.com/madsbuvi/openmw openmw vr], [https://github.com/Team-Beef-Studios/BeefRaiderXR BeefRaiderXR],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Table Top VTT [ Roll20], [https://www.owlbear.rodeo/ owlbear rodeo], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Computer assisted TableTop TTRPG OSR [https://www.rpgsolo.com/play.php RPGSolo], [https://github.com/fpsvogel/solo-ttrpgs Solo TTRPG], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 2D 3D Engines [https://github.com/fegennari/3DWorld 3DWorld], [https://github.com/GarageGames/Torque3D Torque3D], [https://github.com/gameplay3d/GamePlay GamePlay 3D], [https://www.babylonjs.com/ BabylonJS ], [ Godot], [ Ogre], [ Crystal Space], [https://github.com/JacobHess03/ Dragon-Quest like], [https://github.com/bjornbytes/lovr Lua LOVE for 2D LOVR for 3D], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->[https://github.com/alpyre/Sevgi_Engine Sevgi Engine], [], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games C based game frameworks [https://github.com/orangeduck/Corange Corange], [https://github.com/scottcgi/Mojoc Mojoc], [https://orx-project.org/ Orx], [https://github.com/ioquake/ioq3 Quake 3], [https://www.mapeditor.org/ Tiled], [https://www.raylib.com/ 2d Raylib], [https://github.com/Rabios/awesome-raylib other raylib], [https://github.com/MrFrenik/gunslinger Gunslinger], [https://o3de.org/ o3d], [http://archives.aros-exec.org/index.php?function=browse&cat=development/library GLFW], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/library Raylib 5],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games RPGMaker MV/MZ-compatible projects [https://github.com/Psychronic-Games/RPGReactor RPGReactor js],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games unpack unarc [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
==Application Guides==
[[#top|...to the top]]
===Web Browser===
OWB is now at version 2.0 (which got an engine refresh, from July 2015 to February 2019) and 3.0.
This latest version has a good support for many/most web sites, even YouTube web page now works. [https://www.bilibili.tv/en/search untested]
This improved compatibility comes at the expense of higher RAM usage (now 1GB RAM is the absolute minimum).
Also, keep in mind that the lack of a JIT (Just-In-Time) JS compiler on the 32 bit version, makes the web surfing a bit slow.
Only the 64 bit version of OWB 2.0 will have JIT enabled, thus benefitting of more speed. There are tooltypes that can be added to the icon to provide further features JIT, MSE etc
Certificates from [https://curl.se/docs/caextract.html ca certs],
DNS tracking blocking with [https://easylist.to/easylist/easylist.txt easylist.txt] in PROGDIR:Conf before starting browser with enabled AdBlock [https://github.com/easylist/easylist/tree/master easylist], [https://gitlab.com/eyeo anti abp], [https://firebog.net/ big blocklist], [https://github.com/StevenBlack/hosts Steves], [], [],
This can be enabled with OWB Odyssey with Windows -> Content Blocking and Windows -> Messages and enter
https://www.youtube.com/api/stats/ads*
https://www.youtube.com/pagead/adview*
https://www.youtube.com#@##player-ads*
into your custom filters
Element blocker browser extension might be needed for [https://github.com/easylist/easylist/wiki/Youtube-Issues youtube], [ mid roll], [ pre roll], [ ],
OWB speed is much better when running from RAM Disk, the best way is to add the below into your S:User-Startup which copies OWB drawer from Extras:Internet/OWB to RAM Disk:
So add this :
<pre>
copy Extras:Internet/OWB Ram:OWB/ ALL CLONE >NIL:
copy Extras:Internet/OWB.info Ram: >NIL:
</pre>
Open RAM Disk and open OWB drawer and double click on OWB icon so that the above icon tooltypes are activated
Problems are that the copy time is long (around 20 seconds added in the background), but we can make it faster if we delete useless files from the OWB drawer (docs, …)
If you don’t copy the drawer back onto the HD, you won’t save your cache, cookies, passwords… So you need a script for it.
copy Extras:Internet/Amelinium/#? Ram:Amelinium/ ALL CLONE >NIL:
Error messages
SSL error "cant verify with ca-certificates", check bios clock time date is correct
Error 6, try checking networking prefs settings and Save / Use preferences again or a '''few times''' otherwise the network chipset may not be compatible with Aros
[https://www.google.com/search?q=%s&udm=14 Google search without AI overview]
[ DuckDuckGo]
[ Ecosia]
[ Qwant]
[ Swisscows]
[ Mojeek]
[ Brave Search]
[ PreSearch]
[ Startpage]
===E-mail===
Emailinium is now available for IMAP and POP3 based accounts
YAM does not support SSL and most mail providers now switched to encrypted SMTP/POP3 connections
====SimpleMail====
SimpleMail supports IMAP and appears to work with GMail, but it's never been reliable enough, it can crash with large mailboxes.
Please read more on this [http://www.freelists.org/list/simplemail-usr User list]
GMail
Be sure to activate the pop3 usage in your gmail account setup / configuration first.
pop3:
pop.gmail.com
Use SSL: Yes
Port: 995
smtp:
smtp.gmail.com (with authentication)
Use Authentication: Yes
Use SSL: Yes
Port: 465 or 587
Hotmail/MSN/outlook/Microsoft Mail mid-2017, all outlook.com accounts will be migrated to Office 365 / Exchange
Most users are currently on POP which does not allow showing folders and many other features (technical limitations of POP3). With Microsoft IMAP you will get folders, sync read/unread, and show flags. You still won't get push though, as Microsoft has not turned on the IMAP Idle command as at Sept 2013.
If you want to try it, you need to first remove (you can't edit) your pop account (long-press the account on the accounts screen, delete account). Then set it up this way:
1. Email/Password
2. Manual
3. IMAP
4.
* Incoming: imap-mail.outlook.com, port 993, SSL/TLS should be checked
* Outgoing: smtp-mail.outlook.com, port 587, SSL/TLS should be checked
* POP server name pop-mail.outlook.com, port 995, POP encryption method SSL
Yahoo Mail
On April 24, 2002 Yahoo ceased to offer POP access to its free mail service. Introducing instead a yearly payment feature, allowing users POP3 and IMAP server support, along with such benefits as larger file attachment sizes and no adverts.
Sorry to see Yahoo leaving its users to cough up for the privilege of accessing their mail. Understandable, when competing against rivals such as Gmail and Hotmail who hold a large majority of users and were hacked in 2014 as well.
Incoming Mail (IMAP) Server
* Server - imap.mail.yahoo.com
* Port - 993
* Requires SSL - Yes
Outgoing Mail (SMTP) Server
* Server - smtp.mail.yahoo.com
* Port - 465 or 587
* Requires SSL - Yes
* Requires authentication - Yes
Your login info
* Email address - Your full email address (name@domain.com)
* Password - Your account's password
* Requires authentication - Yes
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a subscription subs fee to have access to SMTP and POP3
* Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
* “Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
* “Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
* “Password” – Your Yahoo Mail password.
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
* Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
====YAM Yet Another Mailer====
YAM does not support SSL and most mail providers have now switched to encrypted SMTP/POP3 connections
This email client is POP3 only if the SSL library is available [http://www.freelists.org/list/yam YAM Freelists]
One of the downsides of using a POP3 mailer unfortunately - you have to set an option not to delete the mail if you want it left on the server. IMAP keeps all the emails on the server.
Possible issues
Sending mail issues is probably a matter of using your ISP's SMTP server, though it could also be an SSL issue.
getting a "Couldn't initialise TLSv1 / SSL error
Use of on-line e-mail accounts with this email client is not possible as it lacks the OpenSSL AmiSSl v3 compatible library
GMail
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including '@gmail.com')
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
Anyway, the SMTP is pop.gmail.com port 465 and it uses SSLLv3 Authentication. The POP3 settings are for the same server (pop.gmail.com), only on port 995 instead.
Outlook.com access
<pre >
Outlook.com SMTP server address: smtp.live.com
Outlook.com SMTP user name: Your full Outlook.com email address (not an alias)
Outlook.com SMTP password: Your Outlook.com password
Outlook.com SMTP port: 587
Outlook.com SMTP TLS/SSL encryption required: yes
</pre >
Yahoo Mail
<pre >
“POP3 Server” – Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
“SMTP Server” – Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
“Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
“Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
“Password” – Your Yahoo Mail password.
</pre >
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a monthly fee to have access to SMTP and POP3
Microsoft Outlook Express Mail
1. Get the files to your PC.
By whatever method get the files off your Amiga onto your PC. In the YAM folder you have a number of different folders, one for each of your folders in YAM. Inside that is a file usually some numbers such as 332423.283. YAM created a new file for every single email you received.
2. Open up a brand new Outlook Express. Just configure the account to use 127.0.0.1 as mail servers. It doesn't really matter. You will need to manually create any subfolders you used in YAM.
3. You will need to do a mass rename on all your email files from YAM. Just add a .eml to the end of it. Amazing how PCs still rely mostly on the file name so it knows what sort of file it is rather than just looking at it! There are a number of multiple renamers online to download and free too.
4. Go into each of your folders, inbox, sent items etc. And do a select all then drag the files into Outlook Express (to the relevant folder obviously) Amazingly the file format that YAM used is very compatible with .eml standard and viola your emails appear. With correct dates and working attachments.
5. If you want your email into Microsoft Outlook. Open that up and create a new profile and a new blank PST file. Then go into File Import and choose to import from Outlook Express. And the mail will go into there. And viola.. you have your old email from your Amiga in a more modern day format.
===FTP===
Magellan has a great FTP module. It allows transferring files from/to a FTP server over the Internet or the local network and, even if FTP is perceived as a "thing of the past", its usability is all inside the client. The FTP thing has a nice side effect too, since every Icaros machine can be a FTP server as well, and our files can be easily transferred from an Icaros machine to another with a little configuration effort.
First of all, we need to know the 'server' IP address. Server is the Icaros machine with the file we are about to download on another Icaros machine, that we're going to call 'client'. To do that, move on the server machine and 1) run Prefs/Services to be sure "FTP file transfer" is enabled (if not, enable it and restart Icaros); 2) run a shell and enter this command:
ifconfig -a
Make a note of the IP address for the network interface used by the local area network. For cabled devices, it usually is net0:. Now go on the client machine and run Magellan:
Perform these actions: 1) click on FTP; 2) click on ADDRESS BOOK; 3) click on "New".
You can now add a new entry for your Icaros server machine:
1) Choose a name for your server, in order to spot it immediately in the address book. Enter the IP address you got before.
2) click on Custom Options:
1) go to Miscellaneous in the left menu;
2) Ensure "Passive Transfers" is NOT selected;
3) click on Use. We need to deactivate Passive Transfers because YAFS, the FTP server included in Icaros, only allows active transfers at the current stage. Now, we can finally connect to our new file source:
1) Look into the address book for the newly introduced server, be sure that name and IP address are right, and
2) click on Connect. A new lister with server's "MyWorkspace" contents will appear. You can now transfer files over the network choosing a destination among your local (client's) volumes.
Can be adapted to any FTP client on any platform of your choice, just be sure your client allows Active Transfers as well.
===IRC Internet Relay Chat===
Jabberwocky is ideal for one-to-one social media communication, use IRC if you require one to many.
Just type a message in ''lowercase''' letters and it will be posted to all in the [ AROS irc channel]. Please do not use UPPER CASE as it is a sign of SHOUTING which is annoying.
Other things to type in - replace <message> with a line of text and <nick> with a person's name
<pre>
/help
/list
/who
/whois <nick>
/msg <nick> <message>
/query <nick>
<message>s
/query
/away <message>
/away
/quit <going away message>
</pre>
[http://irchelp.org/irchelp/new2irc.html#smiley Intro guide here]. IRC Primer can be found here in [http://www.irchelp.org/irchelp/ircprimer.html html], [http://www.irchelp.org/irchelp/text/ircprimer.txt TXT], [http://www.kei.com/irc/IRCprimer1.1.ps PostScript].
Issue the command /me <text> where <text> is the text that should follow your nickname.
Example: /me slaps ajk around a bit with a large trout
/nick <newNick>
/nickserv register <password> <email address>
/ns instead of /nickserv, while others might need /msg nickserv
/nickserv identify <password>
Alternatives:
/ns identify <password>
/msg nickserv identify <password>
==== IRC WookieChat ====
WookieChat is the most complete internet client for communication across the IRC Network. WookieChat allows you to swap ideas and communicate in real-time, you can also exchange Files, Documents, Images and everything else using the application's DCC capabilities.
add smilies drawer/directory
run wookiechat from the shell and set stack to 1000000 e.g. wookiechat stack 1000000
select a server / server window
* nickname
* user name
* real name - optional
Once you configure the client with your preferred screen name, you'll want to find a channel to talk in.
servers
* New Server - click on this to add / add extra - change details in section below this click box
* New Group
* Delete Entry
* Connect to server
* connect in new tab
* perform on connect
Change details
* Servername - change text in this box to one of the below Server:
* Port number - no need to change
* Server password
* Channel - add #channel from below
* auto join - can click this
* nick registration password,
Click Connect to server button above
<pre>
Server: irc.freenode.net
Channel: #aros
</pre>
irc://irc.freenode.net/aros
<pre>
Server: chat.amigaworld.net
Channel: #amigaworld or #amigans
</pre>
<pre>
On Sunday evenings USA time usually starting around 3PM EDT (1900 UTC)
Server:irc.superhosts.net
Channel #team*amiga
</pre>
<pre>
BitlBee and Minbif are IRCd-like gateways to multiple IM networks
Server: im.bitlbee.org
Port 6667
Seems to be most useful on WookieChat as you can be connected to several servers at once. One for Bitlbee and any messages that might come through that. One for your normal IRC chat server.
</pre>
[http://www.bitlbee.org/main.php/servers.html Other servers],
<pre>
#Amiga.org - irc.synirc.net eu.synirc.net dissonance.nl.eu.synirc.net (IPv6: 2002:5511:1356:0:216:17ff:fe84:68a)
twilight.de.eu.synirc.net zero.dk.eu.synirc.net us.synirc.net avarice.az.us.synirc.net envy.il.us.synirc.net harpy.mi.us.synirc.net
liberty.nj.us.synirc.net snowball.mo.us.synirc.net - Ports 6660-6669 7001 (SSL)
</pre>
<pre>
Multiple server support
"Perform on connect" scripts and channel auto-joins
Automatic Nickserv login
Tabs for channels and private conversations
CTCP PING, TIME, VERSION, SOUND
Incoming and Outgoing DCC SEND file transfers
Colours for different events
Logging and automatic reloading of logs
mIRC colour code filters
Configurable timestamps
GUI for changing channel modes easily
Configurable highlight keywords
URL Grabber window
Optional outgoing swear word filter
Event sounds for tabs opening, highlighted words, and private messages
DCC CHAT support
Doubleclickable URL's
Support for multiple languages using LOCALE
Clone detection
Auto reconnection to Servers upon disconnection
Command aliases
Chat display can be toggled between AmIRC and mIRC style
Counter for Unread messages
Graphical nicklist and graphical smileys with a popup chooser
</pre>
====IRC Aircos ====
Double click on Aircos icon in Extras:Networking/Apps/Aircos. It has been set up with a guest account for trial purposes. Though ideally, choose a nickname and password for frequent use of irc.
====IRC and XMPP Jabberwocky====
Servers are setup and close down at random
You sign up to a server that someone else has setup and access chat services through them.
The two ways to access chat from jabberwocky
<pre >
Jabberwocky -> Server -> XMPP -> open and ad-free
Jabberwocky -> Server -> Transports (Gateways) -> Proprietary closed systems
</pre >
The Jabber.org service connects with all IM services that use XMPP, the open standard for instant messaging and presence over the Internet. The services we connect with include Google Talk (closed), Live Journal Talk, Nimbuzz, Ovi, and thousands more. However, you can not connect from Jabber.org to proprietary services like AIM, ICQ, MSN, Skype, or Yahoo because they don’t yet use XMPP components (XEP-0114) '''but''' you can use Jabber.com's servers and IM gateways (MSN, ICQ, Yahoo etc.) instead.
The best way to use jabberwocky is in conjunction with a public jabber server with '''transports''' to your favorite services, like gtalk, Facebook, yahoo, ICQ, AIM, etc.
You have to register with one of the servers, [https://list.jabber.at/ this list] or [http://www.jabberes.org/servers/ another list], [http://xmpp.net/ this security XMPP list],
Unfortunately jabberwocky can only connect to one server at a time so it is best to check what services each server offers. If you set it up with separate Facebook and google talk accounts, for example, sometimes you'll only get one or the other.
Jabberwocky open a window where the Jabber server part is typed in as well as your Nickname and Password.
Jabber ID (JID) identifies you to the server and other users.
Once registered the next step is to goto Jabberwocky's "Windows" menu and select the "Agents" option. The "Agents List" window will open.
Roster (contacts list)
[http://search.wensley.org.uk/ Chatrooms] (MUC) are available
File Transfer - can send and receive files through the Jabber service but not with other services like IRC, ICQ, AIM or Yahoo. All you need is an installed webbrowser and OpenURL.
Clickable URLs - The message window uses Mailtext.mcc and you can set a URL action in the MUI mailtext prefs like SYS:Utils/OpenURL %s NEWWIN.
There is no consistent Skype like (H.323 VoIP) video conferencing available over Jabber. The move from xmpp to Jingle should help but no support on any amiga-like systems at the moment. [http://aminet.net/package/dev/src/AmiPhoneSrc192 AmiPhone] and [http://www.lysator.liu.se/%28frame,faq,nobg,useframes%29/ahi/v4-site/ Speak Freely] was an early attempt voice only contact. SIP and Asterisk are other PBX options.
Facebook
If you're using the XMPP transport provided by Facebook themselves, chat.facebook.com, it looks like they're now requiring SSL transport. This means jabberwocky method below will no longer work. The best thing to do is to create an ID on a public jabber server which has a Facebook gateway.
<pre >
1. launch jabberwocky
2. if the login window doesn't appear on launch, select 'account' from the jabberwocky menu
3. your jabber ID will be user@chat.facebook.com where user is your user ID
4. your password is your normal facebook password
5. to save this for next time, click the popup gadget next to the ID field
6. click the 'add' button
7. click the 'close' button
8. click the 'connect' button
</pre >
you're done. you can also click the 'save as default account' button if you want. jabberwocky configured to auto-connect when launching the program, but you can configure as you like. there is amigaguide documentation included with jabberwocky.
[http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=37085&forum=32 Read more here]
for Facebook users, you can log-in directly to Facebook with jabberwocky. just sign in as @chat.facebook.com with your Facebook password as the password
Twitter
For a few years, there has been added a twitter transport. Servers include [http://jabber.hot-chilli.net/ jabber.hot-chili.net], and .
An [http://jabber.hot-chilli.net/tag/how-tos/ How-to]
:Read [http://jabber.hot-chilli.net/2010/05/09/twitter-transport-working/ more]
Instagram
no support at the moment best to use a web browser based client
ICQ
The new version (beta) of StriCQ uses a newer ICQ protocol. Most of the ICQ Jabber Transports still use an older ICQ protocol. You can only talk one-way to StriCQ using the older Transports. Only the newer ICQv7 Transport lets you talk both ways to StriCQ. Look at the server lists in the first section to check.
Register on a Jabber server, e.g. this one works: http://www.jabber.de/
Then login into Jabberwocky with the following login data e.g. xxx@jabber.de / Password: xxx Now add your ICQ account under the window->Agents->"Register". Now Jabberwocky connects via the Jabber.de server with your ICQ account.
Yahoo Messenger
although yahoo! does not use xmpp protocol, you should be able to use the transport methods to gain access and post your replies
MSN
early months of 2013 Microsoft will ditch MSN Messenger client and force everyone to use Skype...but MSN protocol and servers will keep working as usual for quite a long time....
Occasionally the Messenger servers have been experiencing problems signing in. You may need to sign in at www.outlook.com and then try again. It may also take multiple tries to sign in. (This also affects you if you’re using Skype.)
You have to check each servers' Agents List to see what transports (MSN protocol, ICQ protocol, etc.) are supported or use the list address' provided in the section above. Then register with each transport (IRC, MSN, ICQ, etc.) to which you need access. After registering you can Connect to start chatting.
msn.jabber.com/registered should appear in the window.
From this [http://tech.dir.groups.yahoo.com/group/amiga-jabberwocky/message/1378 JW group] guide which helps with this process in a clear, step by step procedure.
1. Sign up on MSN's site for a passport account. This typically involves getting a Hotmail address.
2. Log on to the Jabber server of your choice and do the following:
* Select the "Windows/Agents" menu option in Jabberwocky.
* Select the MSN Agent from the list presented by the server.
* Click the Register button to open a new window asking for:
**Username = passort account email address, typically your hotmail address.
**Nick = Screen name to be shown to anyone you add to your buddy list.
**Password = Password for your passport account/hotmail address.
* Click the Register button at the bottom of the new window.
3. If all goes well, you will see the MSN Gateway added to your buddy list. If not, repeat part 2 on another server. Some servers may show MSN in their list of available agents, but have not updated their software for the latest protocols used by MSN.
4. Once you are registered, you can now add people to your buddy list. Note that you need to include the '''msn.''' ahead of the servername so that it knows what gateway agent to use. Some servers may use a slight variation and require '''msg.gate.''' before the server name, so try both to see what works.
If my friend's msn was amiga@hotmail.co.uk and my jabber server was @jabber.meta.net.nz..
then amiga'''%'''hotmail.com@'''msn.'''jabber.meta.net.nz
or another the trick to import MSN contacts is that you don't type the hotmail URL but the passport URL... e.g. Instead of: goodvibe%hotmail.com@msn.jabber.com You type: goodvibe%passport.com@msn.jabber.com
And the thing about importing contacts I'm afraid you'll have to do it by hand, one at the time...
Google Talk
any XMPP server will work, but you have to add your contacts manually. a google talk user is typically either @gmail.com or @talk.google.com. a true gtalk transport is nice because it brings your contacts to you and (can) also support file transfers to/from google talk users.
implement Jingle a set of extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP)
support ended early 2014 as Google moved to Google+ Hangouts which uses it own proprietary format
===Video Player MPlayer===
Many of the menu features (such as doubling) do not work with the current version of mplayer but using
4:3
mplayer -vf scale=800:600 file.avi
16:9
mplayer -vf scale=854:480 file.avi
if you want gui use;
mplayer -gui 1 <other params> file.avi
<pre >
stack 1000000
; using AspireOS 1.xx
; copy FROM SYS:Extras/Multimedia/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 1.x
; copy FROM SYS:Tools/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 2.x
; copy FROM SYS:Utilities/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
cd RAM:MPlayer
run MPlayer -gui > Nil:
;run MPlayer -gui -ao ahi_dev -playlist http://www.radio-paralax.de/listen.pls > Nil:
</pre >
$ mplayer rtsp://127.0.0.1:554/sample_300kbit.mp4
MPlayer supports multicast streaming, and rtp/rtsp protocols (it might require [http://www.live555.com/openRTSP/ live555 library] to work with some streams). But you might have to build it where it's disabled. Also, multicast won't work with some AmiTCP-likes. MIAMI supported it, though.
AROS supports IPv4 (old but works) and this includes the needed address space for RTP.
If you mean multicast via RTP - mplayer handles it. You can even force UDP over TCP
-rtsp-stream-over-tcp
If the rtsp Real Time Streaming Protocol server needs authentification:
-user -passwd
MPlayer - Menu - Open Playlist and load already downloaded .pls or .m3u file - auto starts around 4 percent cache
MPlayer - Menu - Open Stream and copy one of the .pls lines below into space allowed, press OK and press play button on main gui interface
Old 8bit 16bit remixes chip tune game music
http://www.radio-paralax.de/listen.pls
http://scenesat.com/
http://www.shoutcast.com/radio/Amiga
http://www.theoldcomputer.com/retro_radio/RetroRadio_Main.htm
http://www.kohina.com/
http://www.remix64.com/
http://retrogamer.net/forum/
http://retroasylum.podomatic.com/rss2.xml
http://retrogamesquad.com/
http://www.retronauts.com/
http://monsterfeet.com/noquarter/
http://www.retrogamingradio.com/
http://www.radiofeeds.co.uk/mp3.asp
[[#top|...to the top]]
====ZunePaint====
simplified typical workflow
* importing and organizing and photo management
* making global and regional local correction(s) - recalculation is necessary after each adjustment as it is not in real-time
* exporting your images in the best format available with the preservation of metadata
Whilst achieving 80% of a great photo with just a filter, the remaining 20% comes from a manual fine-tuning of specific image attributes.
For photojournalism, documentary, and event coverage, minimal touching is recommended. Stick to Camera Raw for such shots, and limit changes to level adjustment, sharpness, noise reduction, and white balance correction.
For fashion or portrait shoots, a large amount of adjustment is allowed and usually ends up far from the original. Skin smoothing, blemish removal, eye touch-ups, etc. are common. Might alter the background a bit to emphasize the subject.
Product photography usually requires a lot of sharpening, spot removal, and focus stacking.
For landscape shots, best results are achieved by doing the maximum amount of preparation before/while taking the shot. No amount of processing can match timing, proper lighting, correct gear, optimal settings, etc. Excessive post-processing might give you a dramatic shot but best avoided in the long term.
* White Balance - Left Amiga or F12 and K and under "Misc color effects" tab with a pull down for White Balance - color temperature also known as AKA tint (movies) or tones (painting) - warm temp raise red reduce green blue - cool raise blue lower red green
* Exposure - exposure compensation, highlight/shadow recovery
* Noise Reduction - during RAW development or using external software
* Lens Corrections - distortion, vignetting, chromatic aberrations
* Detail - capture sharpening and local contrast enhancement
* Contrast - black point, levels (sliders) and curves tools (F12 and K)
* Framing - straighten () and crop (F12 and F)
* Refinements - color adjustments and selective enhancements - Left Amiga or F12 and K for RGB and YUV histogram tabs -
* Resizing - enlarge for a print or downsize for the web or email (F12 and D)
* Output Sharpening - customized for your subject matter and print/screen size
White Balance - F12 and K
scan your image for a shade which was meant to be white (neutral with each RGB value being equal) like paper or plastic which is in the same light as the subject of the picture. Use the dropper tool to select this color, similar colours will shift and you will have selected the perfect white balance for your part of the image - for the whole picture make sure RAZ or CLR button at the bottom is pressed before applying to the image above.
Exposure correction
F12 and K - YUV Y luminosity - RGB extra red tint - move red curve slightly down and move blue green curves slightly up
Workflows in practice
* Undo - Right AROS key or F12 and Z
* Redo - Right AROS key or F12 and R
First flatten your image (if necessary) and then do a rotation until the picture looks level.
* Crop the picture. Click the selection button and drag a box over the area of the picture you want to keep. Press the crop button and the rest of the photo will be gone.
* Adjust your saturation, exposure, hue levels, etc., (right AROS Key and K for color correction) until you are happy with the photo. Make sure you zoom in all of the way to 100% and look the photo over, zoom back out and move around. Look for obvious problems with the picture.
* After coloring and exposure do a sharpen (Right AROS key and E for Convolution and select drop down option needed), e.g. set the matrix to 5x5 (roughly equivalent Amount to 60%) and set the Radius to 1.0. Click OK.
And save your picture
Implemented or would like to see for simplification and ease of use
basic filters (presets) like black and white, monochrome, edge detection (sobel), motion/gaussian blur,
* negative, sepiatone, retro vintage, night vision, colour tint, color gradient, color temperature, glows, fire, lightning, lens flare, emboss, filmic, pixelate mezzotint, antialias, etc.
adjust / cosmetic tools such as crop,
* reshaping tools, straighten, smear, smooth, perspective, liquify, bloat, pucker, push pixels in any direction, dispersion, transform like warp, blending with soft light, page-curl, whirl, ripple, fisheye, neon, etc.
* red eye fixing, blemish remover, skin smoothing, teeth whitener, make eyes look brighter, desaturate,
effects like oil paint, cartoon, pencil sketch, charcoal, noise/matrix like sharpen/unsharpen, (right AROS key with A for Artistic effects)
* blend two image, gradient blend, masking blend, explode, implode, custom collage, surreal painting, comic book style, needlepoint, stained glass, watercolor, mosaic, stencil/outline, crayon, chalk, etc.
borders such as
* dropshadow, rounded, blurred, color tint, picture frame, film strip polaroid, bevelled edge, etc.
brushes e.g.
* frost, smoke, etc.
and manual control of
fix lens issues including vignetting (darkening), color fringing and barrel distortion, and chromatic and geometric aberration - lens and body profiles
perspective correction
levels - directly modify the levels of the tone-values of an image, by using sliders for highlights, midtones and shadows
curves - Color Adjustment and Brightness/Contrast
color balance
one single color transparent (alpha channel (color information/selections) for masking and/or blending ) for backgrounds, etc.
Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors
decompose layer into a set of layers with each holding a different type of pattern that is visible within the image
any selection using any selecting tools like lasso tool, marquee tool etc. the selection will temporarily be save to alpha
If you create your image without transparency then the Alpha channel is not present, but you can add later.
File formats like .psd (Photoshop file has layers, masks etc. contains edited sensor data. The original sensor data is no longer available) .xcf .raw .hdr
Image Picture Formats
* low dynamic range (JPEG, PNG, TIFF 8-bit), 16-bit (PPM, TIFF), typically as a 16-bit TIFF in either ProPhoto or AdobeRGB colorspace - TIFF files are also fairly universal – although, if they contain proprietary data, such as Photoshop Adjustment Layers or Smart Filters, then they can only be opened by Photoshop making them proprietary.
* linear high dynamic range (HDR) images (PFM, [http://www.openexr.com/ ILM .EXR], jpg, [http://aminet.net/util/dtype cr2] (canon tiff based), hdr, NEF, CRW, ARW, MRW, ORF, RAF (Fuji), PEF, DCR, SRF, ERF, DNG files are RAW converted to an Adobe proprietary format - a container that can embed the raw file as well as the information needed to open it)
An old version of [http://archives.aros-exec.org/index.php?function=browse&cat=graphics/convert dcraw]
There is no single RAW file format. Each camera manufacturer has one or more unique RAW formats. RAW files contain the brightness levels data captured by the camera sensor. This data cannot be modified. A second smaller file, separate XML file, or within a database with instructions for the RAW processor to change exposure, saturation etc. The extra data can be changed but the original sensor data is still there. RAW is technically least compatible.
A raw file is high-bit (usually 12 or 14 bits of information) but a camera-generated TIFF file will be usually converted by the camera (compressed, downsampled) to 8 bits. The raw file has no embedded color balance or color space, but the TIFF has both. These three things (smaller bit depth, embedded color balance, and embedded color space) make it so that the TIFF will lose quality more quickly with image adjustments than the raw file. The camera-generated TIFF image is much more like a camera processed JPEG than a raw file. A strong advantage goes to the raw file. The power of RAW files, such as the ability to set any color temperature non-destructively and will contain more tonal values.
The principle of preserving the maximum amount of information to as late as possible in the process. The final conversion - which will always effectively represent a "downsampling" - should prevent as much loss as possible.
Once you save it as TIFF, you throw away some of that data irretrievably. When saving in the lossy JPEG format, you get tremendous file size savings, but you've irreversibly thrown away a lot of image data. As long as you have the RAW file, original or otherwise, you have access to all of the image data as captured.
Keyboard equivalence with Photoshop(tm) would help
File
PHOTOSHOP SHORTCUT GIMP
New Ctrl+n New
Open Ctrl+o Open
Close Ctrl+w Close
Save Ctrl+s Save
Save as Shift+Ctrl+s Save as
Revert F12 Revert
Print Ctrl+p Print
Exit Ctrl+q Quit
Edit
PHOTOSHOP SHORTCUT GIMP
Undo/Redo (1 level) Ctrl+z Undo (Redo is Shift+Ctrl+z)
Cut Ctrl+x Cut
Copy Ctrl+c Copy
Paste Ctrl+v Paste
Paste Into Shift+Ctrl+v Paste Into
Fill with FG color Alt+Backspace Fill with FG color
Fill with BG color Control+Backspace Fill with BG color
Image/Colors
PHOTOSHOP SHORTCUT GIMP
Levels Ctrl+l Levels
Auto Contrast Shift+Ctrl+Alt+l Stretch Contrast (same?)
Curves Ctrl+m Curves
Color Balance Ctrl+b Color Balance
Hue/Saturation Ctrl+u Hue-Saturation
Desaturate Shift+Ctrl+u Desaturate
Invert Ctrl+i Invert
Default Colors d Default Colors
Switch Colors x Switch Colors
Layer
PHOTOSHOP SHORTCUT GIMP
New Layer Shift+Ctrl+n New Layer
Layer via Copy Ctrl+j Duplicate Layer
Bring (layer) to Front Shift+Ctrl+] Layer to Top
Send (layer) to Back Shift+Ctrl+[ Layer to Bottom
Bring (layer) Forward Ctrl+] Raise Layer
Send (layer) Backward Ctrl+[ Lower Layer
Select Top Layer Shift+Alt+] Select Top Layer
Select Bottom Layer Shift+Alt+[ Select Bottom Layer
Select One Layer Forward Alt+] Select Previous Layer
Select One Layer Backward Alt+[ Select Next Layer
Merge Down Ctrl+e Merge Down
Merge Visible Shift+Ctrl+e Merge Visible
Preserve Transparency / Keep Transparency
Cycle Modes Forwards Shift+= Next Layer Mode
Cycle Modes Backwards Shift+- Previous Layer Mode
Select
PHOTOSHOP SHORTCUT GIMP
Select All Ctrl+a Select All
Deselect Ctrl+d Select None
Inverse Shift+Ctrl+i Invert
Feather Ctrl+Alt+d Feather
View
PHOTOSHOP SHORTCUT GIMP
Zoom In Ctrl+= Zoom In
Zoom Out Ctrl+- Zoom Out
Fit on Screen Ctrl+0 Zoom to Fit Window
Actual Pixels Ctrl+Alt+0 Zoom 1:1
Show/Hide Extras Ctrl+h Toggle Show Selection (close enough?)
Show/Hide Guides Ctrl+' Toggle Show Guides
Show/Hide Grid Ctrl+Alt+' Toggle Show Grid
Show/Hide Rulers Ctrl+r Toggle Show Rulers
Snap Ctrl+; Snap to Guides
Scroll View Up Page Up Scroll Page Up
Scroll View Down Page Down Scroll Page Down
Scroll View Left Ctrl+Page Up Scroll Page Left
Scroll View Right Ctrl+Page Down Scroll Page Right
Window/Dialogs
PHOTOSHOP SHORTCUT GIMP
? F5 Tools Dialog
Color Tab F6 Colors Dialog
Layers Tab F7 Layers Dialog
Info Tab F8 Image Information
Tools
PHOTOSHOP SHORTCUT GIMP
Rectangular Marquee Tool m Rect Select Tool
Elliptical Marquee Tool Shift+m Ellipse Select Tool
*This is a toggle between 'Elliptical Marquee Tool' and 'Rectangular Marquee Tool' in Photoshop
Move Tool v Move Tool
Lasso Tool l Free Select Tool
Magic Wand Tool w Fuzzy Select Tool
Crop Tool c Crop & Resize Tool
Airbrush Tool j Airbrush Tool
Paintbrush Tool b Paintbrush Tool
Clone Stamp Tool s Clone Stamp Tool
Eraser Tool e Eraser Tool
Gradient Tool g Blend Tool
Paint Bucket Tool Shift+g Bucket Fill Tool
*This is a toggle between 'Paint Bucket Tool' and 'Gradient Tool' in Photoshop
Blur Tool r Convolve Tool
Dodge Tool o DodgeBurn Tool
Type Tool t Text Tool
Pen Tool p Bezier Select Tool
Eye Dropper Tool i Color Picker Tool
Zoom Tool z Magnify Tool
Previous Brush , Previous Brush
Next Brush . Next Brush
First Brush Shift+< First Brush
Last Brush Shift+> Last Brush
Decrease Brush Size [ Decrease Brush Size
Increase Brush Size ] Increase Brush Size
Decrease Brush Hardness { Decrease Brush Hardness
Increase Brush Hardness } Increase Brush Hardness
Help
PHOTOSHOP SHORTCUT GIMP
Help F1 Help
Context Help Shift+F1 Context Help
Misc.
PHOTOSHOP SHORTCUT GIMP
Last Filter Ctrl+f Repeat Last Filter
? Shift+Ctrl+f Reshow Last Filter
Preferences Ctrl+k Preferences
Liquify Shift+Ctrl+x IWarp (close enough?)
Toggle Quick Mask q Toggle Quick Mask
Spotlights - triangle of white opaque shape
Cutting out and/or replacing unwanted background or features - select large areas with the selection option like the Magic Wand tool (aka Color Range) or the Lasso (quick and fast) with feather 2 to soften edge or the pen tool which adds points/lines/Bézier curves (better control but slower), hold down the shift button as you click to add extra points/areas of the subject matter to remove. Increase the tolerance to cover more areas. To subtract from your selection hold down alt as you're clicking.
* Layer masks are a better way of working than Erase they clip (black hides/hidden white visible/reveal). Clone Stamp can be simulated by and brushes for other areas.
* Leave the fine details like hair, fur, etc. to later with lasso and the shift key to draw a line all the way around your subject. Gradient Mapping - Inverse - Mask. i.e. Refine your selected image with edge detection and using the radius and edge options / adjuster (increase/decrease contrast) so that you will capture more fine detail from the background allowing easier removal.
Remove fringe/halo
saving image as png rather than jpg/jpeg to keep transparency background intact.
Implemented [http://colorizer.org/ colour model representations] [http://paulbourke.net/texture_colour/colourspace/ Mathematical approach] - Photo stills are spatially 2d (h and w), but are colorimetrically 3d (r g and b, or H L S, or Y U V etc.) as well.
* RGB - split cubed mapped color model for photos and computer graphics hardware using the light spectrum (adding and subtracting)
* YUV - Y-Lightness U-blue/yellow V-red/cyan (similar to YPbPr and YCbCr) used in the PAL, NTSC, and SECAM composite digital TV color [http://crewofone.com/2012/chroma-subsampling-and-transcoding/#comment-7299 video]
Histograms
White balanced (neutral) if the spike happens in the same place in each channel of the RGB graphs. If not, you're not balanced.
If you have sky you'll see the blue channel further off to the right.
RGB is best one to change colours. These elements RGB is a 3-channel format containing data for Red, Green, and Blue in your photo scale between 0 and 255. The area in a picture that appears to be brighter/whiter contains more red color as compared to the area which is relatively darker. Similarly in the green channel the area that appears to be darker contains less amount of green color as compared to the area that appears to be brighter. Similarly in the blue channel the area appears to be darker contains less amount of blue color as compared to the area that appears to be brighter. Brightness luminance histogram also matches the green histogram more than any other color - human eye interprets green better e.g. RGB rough ratio 15/55/30%
RGBA (RGB+A, A means alpha channel) . The alpha channel is used for "alpha compositing", which can mostly be associated as "opacity". AROS deals in RGB with two digits for every color (red, green, blue), in ARGB you have two additional hex digits for the alpha channel.
The shadows are represented by the left third of the graph. The highlights are represented by the right third. And the midtones are, of course, in the middle. The higher the black peaks in the graph, the more pixels are concentrated in that tonal range (total black area).
By moving the black endpoint, which identifies the shadows (darkness) and a white light endpoint (brightness) up and down either sides of the graph, colors are adjusted based on these points.
By dragging the central one, can increased the midtones and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
RGB Curves
* Move left endpoint (black point) up or right endpoint (white point) up brightens
* Move left endpoint down or right endpoint down darkens
Color Curves
* Dragging up on the Red Curve increases the intensity of the reds in the image but
* Dragging down on the Red Curve decreases the intensity of the reds and thus increases the apparent intensity of its complimentary color, cyan. Green’s complimentary color is magenta, and blue’s is yellow.
<pre>
Red <-> Cyan
Green <->Magenta
Blue <->Yellow
</pre>
YUV Best option to analyse and pull out statistical elements of any picture (i.e. separate luminance data from color data). The line in Y luma tone box represents the brightness of the image with the point in the bottom left been black, and the point in the top right as white. A low-contrast image has a concentrated clump of values nearer to the center of the graph. By comparison, a high-contrast image has a wider distribution of values across the entire width of the Histogram. A histogram that is skewed to the right would indicate a picture that is a bit overexposed because most of the color data is on the lighter side (increase exposure with higher value F), while a histogram with the curve on the left shows a picture that is underexposed. This is good information to have when using post-processing software because it shows you not only where the color data exists for a given picture, but also where any data has been clipped (extremes on edges of either side): that is, it does not exist and, therefore, cannot be edited. By dragging the endpoints of the line and as well as the central one, can increased the dark/shadows, midtones and light/bright parts and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
The U and V chroma parts show color difference components of the image. It’s useful for checking whether or not the overall chroma is too high, and also whether it’s being limited too much
Can be used to create a negative image but also
With U (Cb), the higher value you are, the more you're on the blue primary color. If you go to the low values then you're on blue complementary color, i.e. yellow.
With V (Cr), this is the same principle but with Red and Cyan.
e.g. If you push U full blue and V full red, you get magenta. If you push U full yellow and V full Cyan then you get green.
YUV simultaneously adds to one side of the color equation while subtracting from the other.
using YUV to do color correction can be very problematic because each curve alters the result of each other: the mutual influence between U and V often makes things tricky. You may also be careful in what you do to avoid the raise of noise (which happens very easily). Best results are obtained with little adjustments
sunset that looks uninspiring and needs some color pop especially for the rays over the hill, a subtle contrast raise while setting luma values back to the legal range without hard clipping.
====Lunapaint====
Pixel based drawing app with onion-skin animation function
Blocking, Shading, Coloring, adding detail
<pre>
b BRUSH
e ERASER
alt eyedropper
v layer tool
z ZOOM / MAGNIFY < > n
spc panning
m marque
q lasso
w same color selection / region
</pre>
<pre>
, LM RM
v
V
f filter
F
. size
p
, pick color
[] last / next color
</pre>
There is not much missing in Lunapaint to be as good as FlipBook and then you have to take into account that Flipbook is considered to be amongst the best and easiest to use animation software out there. Ok to be honest Flipbook has some nice features that require more heavy work but those aren't so much needed right away, things like camera effects, sound, smart fill, export to different movie file formats etc.
Tried Flipbook with my tablet and compared it to Luna. The feeling is the same when sketching. LunaPaint is very responsive/fluent to draw with. Just as Flipbook is, and that responsiveness is something its users have mentioned as one of the positive sides of said software.
author was learning MUI. Some parts just have to be rewritten with proper MUI classes before new features can be added.
* add [Frame Add] / [Frame Del]
* whole animation feature is impossible to use. If you draw 2 color maybe but if you start coloring your cells then you get in trouble
* pickup the entire image as a brush, not just a selection ? And consequently remove the brush from memory when one doesn't need it anymore. can pick up a brush and put it onto a new image but cropping isn't possible, nor to load/save brushes.
* Undo is something I longed for ages in Lunapaint.
* to import into the current layer, other types of images (e.g. JPEG) besides RAW64.
* implement graphic tablet features support
**GENERAL DRAWING**
Miss it very much:
UNDO
ERASER
COLORPICKER - has to show on palette too which color got picked.
BACKGROUND COLOR -Possibility to select from "New project screen"
Miss it somewhat:
ICON for UNDO
ICON for ERASER
ICON for CLEAR SCREEN ( What can I say? I start over from scratch very often )
BRUSH - possibility to cut out as brush not just copy off image to brush
**ANIMATING**
Miss it very much:
NUMBER OF CELLS - Possibity to change total no. of cells during project
ANIM BRUSH - Possibility to pick up a selected part of cells into an animbrush
Miss it somewhat:
ADD/REMOVE FRAMES: Add/remove single frame
In general LunaPaint is really well done and it feels like a new DeluxePaint version. It works with my tablet. Sure there's much missing of course but things can always be added over time. So there is great potential in LunaPaint that's for sure. Animations could be made in it and maybe put together in QuickVideo, saving in .gif or .mng etc some day.
LAYERS
-Layers names don't get saved globally in animation frames
-Layers order don't change globally in an animation (perhaps as default?).
EXPORTING IMAGES
-Exporting frames to JPG/PNG gives problems with colors. (wrong colors. See my animatiopn --> My robot was blue now it's "gold" ) I think this only happens if you have layers.
-Trying to flatten the layers before export doesn't work if you have animation frames only the one you have visible will flatten properly all other frames are destroyed. (Only one of the layers are visible on them)
-Exporting images filenames should be for example e.g. file0001, file0002...file0010 instead as of now file1, file2...file10
LOAD/SAVE (Preferences)
-Make a setting for the default "Work" folder.
* Destroyed colors if exported image/frame has layers
* mystic color cycling of the selected color while stepping frames back/forth (annoying)
<pre>
Deluxe Paint II enhanced key shortcuts
NOTE: @ denotes the ALT key
[Technique]
F1 - Paint
F2 - Single Colour
F3 - Replace
F4 - Smear
F5 - Shade
F6 - Cycle
F7 - Smooth
M - Colour Cycle
[Brush]
B - Restore
O - Outline
h - Halve brush size
H - Double brush size
x - Flip brush on X axis
X - Double brush size on X axis only
y - Flip on Y
Y - Double on Y
z - Rotate brush 90 degrees
Z - Stretch
[Stencil]
` - Stencil On
[Miscellaneous]
F9 - Info Bar
F10 - Selection Bar
@o - Co-Ordinates
@a - Anti-alias
@r - Colourise
@t - Translucent
TAB - Colour Cycle
[Picture]
L - Load
S - Save
j - Page to Spare(Flip)
J - Page to Spare(Copy)
V - View Page
Q - Quit
[General Keys]
m - Magnify
< - Zoom In
> - Zoom Out
[ - Palette Colour Up
] - Palette Colour Down
( - Palette Colour Left
) - Palette Colour Right
, - Eye Dropper
. - Pixel / Brush Toggle
/ - Symmetry
| - Co-Ordinates
INS - Perspective Control
+/- - Brush Size (Fine Control)
w - Unfilled Polygon
W - Filled Polygon
e - Unfilled Ellipse
E - Filled Ellipse
r - Unfilled Rectangle
R - Filled Rectangle
t - Type/text tool
a - Select Font
u/U - Undo
d - Brush
D - Filled Non-Uniform Polygon
f/F - Fill Options
g/G - Grid
h/H - Brush Size (Coarse Control)
K - Clear
c - Unfilled Circle
C - Filled Circle
v - Line
b - Scissor Select and Toggle
B - Brush
{,} - Toggle between two background colours
</pre>
====Lodepaint====
Pixel based painting artwork app
====Grafx2====
Pixel based painting artwork app aesprite like
[https://www.youtube.com/watch?v=59Y6OTzNrhk aesprite workflow keys and tablet use], [],
====Vector Graphics ZuneFIG====
Vector Image Editing of files .svg .ps .eps
*Objects - raise lower rotate flip aligning snapping
*Path - unify subtract intersect exclude divide
*Colour - fill stroke
*Stroke - size
*Brushes -
*Layers -
*Effects - gaussian bevels glows shadows
*Text -
*Transform -
AmiFIG ([http://epb.lbl.gov/xfig/frm_introduction.html xfig manual])
[[File:MyScreen.png|thumb|left|alt=Showing all Windows open in AmiFIG.|All windows available to AmiFIG.]]
for drawing simple to intermediate vector graphic images for scientific and technical uses and for illustration purposes for those with talent
;Menu options
* Load - fig format but import(s) SVG
* Save - fig format but export(s) eps, ps, pdf, svg and png
* PAN = Ctrl + Arrow keys
* Deselect all points
There is no selected object until you apply the tool, and the selected object is not highlighted.
;Metrics - to set up page and styles - first window to open on new drawings
;Tools - Drawing Primitives - set Attributes window first before clicking any Tools button(s)
* Shapes - circles, ellipses, arcs, splines, boxes, polygon
* Lines - polylines
* Text "T" button
* Photos - bitmaps
* Compound - Glue, Break, Scale
* POINTs - Move, Add, Remove
* Objects - Move, Copy, Delete, Mirror, Rotate, Paste
use right mouse button to stop extra lines, shapes being formed and the left mouse to select/deselect tools button(s)
* Rotate - moves in 90 degree turns centered on clicked POINT of a polygon or square
;Attributes which provide change(s) to the above primitives
* Color
* Line Width
* Line Style
* arrowheads
;Modes
Choose from freehand, charts, figures, magnet, etc.
;Library - allows .fig clip-art to be stored
* compound tools to add .fig(s) together
;FIG 3.2 [http://epb.lbl.gov/xfig/fig-format.html Format] as produced by xfig version 3.2.5
<pre>
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
4 0 0 50 -1 0 12 0.0000 4 135 1050 1050 2475 This is a test.01
</pre>
# change the text alignment within the textbox. I can choose left, center, or right aligned by either changing the integer in the second column from 0 (left) to 1 or 2 (center, or right).
# The third integer in the row specifies fontcolor. For instance, 0 is black, but blue is 1 and Green3 is 13.
# The sixth integer in the bottom row specifies fontface. 0 is Times-Roman, but 16 is Helvetica (a MATLAB default).
# The seventh number is fontsize. 12 represents a 12pt fontsize. Changing the fontsize of an item really is as easy as changing that number to 20.
# The next number is the counter-clockwise angle of the text. Notice that I have changed the angle to .7854 (pi/4 rounded to four digits=45 degrees).
# twelfth number is the position according to the standard “x-axis” in Xfig units from the left. Note that 1200 Xfig units is equivalent to once inch.
# thirteenth number is the “y-position” from the top using the same unit convention as before.
* The nested text string is what you entered into the textbox.
* The “01″ present at the end of that line in the .fig file is the closing tag. For instance, a change to \100 appends a @ symbol at the end of the period of that sentence.
; Just to note there are no layers, no 3d functions, no shading, no transparency, no animation
[[#top|...to the top]]
===Audio===
# AHI uses linear panning/balance, which means that in the center, you will get -6dB. If an app uses panning, this is what you will get. Note that apps like Audio Evolution need panning, so they will have this problem.
# When using AHI Hifi modes, mixing is done in 32-bit and sent as 32-bit data to the driver. The Envy24HT driver uses that to output at 24-bit (always).
# For the Envy24/Envy24HT, I've made 16-bit and 24-bit inputs (called Line-in 16-bit, Line-in 24-bit etc.). There is unfortunately no app that can handle 24-bit recording.
====Music Mods====
Digital module (mods) trackers are music creation software using samples and sometimes soundfonts, audio plugins (VST, AU or RTAS), MIDI.
Generally, MODs are similar to MIDI in that they contain note on/off and other sequence messages that control the mod player. Unlike (most) midi files, however, they also contain sound samples that the sequence information actually plays. MOD files can have many channels (classic amiga mods have 4, corresponding to the inbuilt sound channels), but unlike MIDI, each channel can typically play only one note at once. However, since that note might be a sample of a chord, a drumloop or other complex sound, this is not as limiting as it sounds.
Like MIDI, notes will play indefinitely if they're not instructed to end. Most trackers record this information automatically if you play your music in live. If you're using manual note entry, you can enter a note-off command with a keyboard shortcut - usually Caps Lock.
In fact when considering file size MOD is not always the best option. Even a dummy song wastes few kilobytes for nothing when a simple SID tune could be few hundreds bytes and not bigger than 64kB. AHX is another small format, AHX tunes are never larger than 64kB excluding comments.
[https://www.youtube.com/watch?v=rXXsZfwgil Protrekkr] (previously aka [w:Juan_Antonio_Arguelles_Rius|NoiseTrekkr])
If Protrekkr does not start, please check if the Unit 0 has been setup in the AHI prefs and still not, go to the directory utilities/protrekkr and double click on the Protrekkr icon
*Sample
*Note - Effect
*Track (column) - Pattern - Order
It all starts with the Sample which is used to create Note(s) in a Track (column of a tracker)
The Note can be changed with an Effect. A Track of Note(s) can be collected into a Pattern (section of a song) and these can be given Order to create the whole song.
Patience (notes have to be entered one at a time) or playing the bassline on a midi controller (faster - see midi section above). Best approach is to wait until a melody popped into your head.
*Up-tempo means the track should be reasonably fast, but not super-fast.
*Groovy and funky imply the track should have some sort of "swing" feel, with plenty of syncopation or off beat emphasis and a recognizable, melodic bass line.
*Sweet and happy mean upbeat melodies, a major key and avoiding harsh sounds.
*Moody - minor key
First, create a quick bass sound, which is basically a sine wave, but can be hand drawn for a little more variance. It could also work for the melody part, too.
This is usually a bass guitar or some kind of synthesizer bass. The bass line is often forgotten by inexperienced composers, but it plays an important role in a musical piece. Together with the rhythm section the bass line forms the groove of a song. It's the glue between the rhythm section and the melodic layer of a song.
The drums are just pink noise samples, played at different frequencies to get a slightly different sound for the kick, snare, and hihats.
Instruments that fall into the rhythm category are bass drums, snares, hi-hats, toms, cymbals, congas, tambourines, shakers, etc. Any percussive instrument can be used to form part of the rhythm section.
The lead is the instrument that plays the main melody, on top of the chords. There are many instruments that can play a lead section, like a guitar, a piano, a saxophone or a flute. The list is almost endless. There is a lot of overlap with instruments that play chords. Often in one piece an instrument serves both roles. The lead melody is often played at a higher pitch than the chords.
Listened back to what was produced so far, and a counter-melody can be imagined, which can be added with a triangle wave.
To give the ends of phrases some life, you can add a solo part with a crunchy synth. By hitting random notes in the key of G, then edited a few of them.
For the climax of the song, filled out the texture with a gentle high-pitch pad… …and a grungy bass synth.
The arrow at A points at the pattern order list. As you see, the patterns don't have to be in numerical order. This song starts with pattern "00", then pattern "02", then "03", then "01", etcetera. Patterns may be repeated throughout a song.
The B arrow points at the song title. Below it are the global BPM and speed parameters. These determine the tempo of the song, unless the tempo is altered through effect commands during the song.
The C arrow points at the list of instruments. An instrument may consist of multiple samples. Which sample will be played depends on the note. This can be set in the Instrument Editing screen. Most instruments will consist of just one sample, though. The sample list for the selected instrument can be found under arrow D.
Here's a part of the main editing screen. This is where you put in actual notes. Up to 32 channels can be used, meaning 32 sounds can play simultaneously. The first six channels of pattern "03" at order "02" are shown here. The arrow at A points at the row number. The B arrow points at the note to play, in this case a C4. The column pointed at by the C arrow tells us which instrument is associated with that note, in this case instrument #1 "Kick".
The column at D is used (mainly) for volume commands. In this case it is left empty which means the instrument should play at its default volume. You can see the volume column being used in channel #6.
The E column tells us which effect to use and any parameters for that effect. In this case it holds the "F" effect, which is a tempo command. The "04" means it should play at tempo 4 (a smaller number means faster).
Base pattern
When I create a new track I start with what I call the base pattern. It is worthwhile to spend some time polishing it as a lot of the ideas in the base pattern will be copied and used in other patterns. At least, that's how I work. Every musician will have his own way of working. In "Wild Bunnies" the base pattern is pattern "03" at order "02".
In the section about selecting samples I talked about the four different categories of instruments: drums, bass, chords and leads. That's also how I usually go about making the base pattern. I start by making a drum pattern, then add a bass line, place some chords and top it off with a lead. This forms the base pattern from which the rest of the song will grow.
Drums
Here's a screenshot of the first four rows of the base pattern. I usually reserve the first four channels or so for the drum instruments. Right away there are a couple of tricks shown here. In the first channel the kick, or bass drum, plays some notes. Note the alternating F04 and F02 commands. The "F" command alters the tempo of the song and by quickly alternating the tempo; the song will get some kind of "swing" feel.
In the second channel the closed hi-hat plays a fairly simple pattern. Further down in the channel, not shown here, some open hi-hat notes are added for a bit of variation.
In the third and fourth channel the snare sample plays. The "8" command is for panning. One note is panned hard to the left and the other hard to the right. One sample is played a semitone lower than the other. This results in a cool flanging effect. It makes the snare stand out a little more in the mix.
Bass line
There are two different instruments used for the bass line. Instrument #6 is a pretty standard synthesized bass sound. Instrument #A sounds a bit like a slap bass when used with a quick fade out. By using two different instruments the bass line sounds a bit more ”human”. The volume command is used to cut off the notes. However, it is never set to zero. Setting the volume to a very small value will result in a reverb-like effect. This makes the song sound more "live".
The bass line hints at the chords that will be played and the key the song will be in. In this case the key of the song is D-major, a positive and happy key.
Chords
The D major chords that are being played here are chords stabs; short sounds with a quick decay (fade out). Two different instruments (#8 and #9) are used to form the chords. These instruments are quite similar, but have a slightly different sound, panning and volume decay. Again, the reason for this is to make the sound more human. The volume command is used on some chords to simulate a delay, to achieve more of a live feel. The chords are placed off-beat making for a funky rhythm.
Lead
Finally the lead melody is added. The other instruments are invaluable in holding the track together, but the lead melody is usually what catches people's attention.
A lot of notes and commands are used here, but it looks more complex than it is. A stepwise ascending melody plays in channel 13. Channel 14 and 15 copy this melody, but play it a few rows later at a lower volume. This creates an echo effect. A bit of panning is used on the notes to create some stereo depth. Like with the bass line, instead of cutting off notes the volume is set to low values for a reverb effect. The "461" effect adds a little vibrato to the note, which sounds nice on sustained notes.
Those paying close attention may notice the instrument used here for the lead melody is the same as the one used for the bass line (#6 "Square"), except played two or three octaves higher. This instrument is a looped square wave sample. Each type of wave has its own quirks, but the square wave (shown below) is a really versatile wave form.
Song structure
Good, catchy songs are often carefully structured into sections, some of which are repeated throughout the song with small variations.
A typical pop-song structure is: Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus.
Other single sectional song structures are
<pre>
Strophic or AAA Song Form - oldest story telling with refrain (often title of the song) repeated in every verse section melody
AABA Song Form - early popular, jazz and gospel fading during the 1960s
AB or Verse/Chorus Song Form - songwriting format of choice for modern popular music since the 1960s
Verse/Chorus/Bridge Song Form
ABAB Song Form
ABAC Song Form
ABCD Song Form
AAB 12-Bar Song Form - three four-bar lines or sub-sections
8-Bar Song Form
16-Bar Song Form
Hybrid / Compound Song Forms
</pre>
The most common building blocks are:
#INTRODUCTION(INTRO)
#VERSE
#REFRAIN
#PRE-CHORUS / RISE / CLIMB
#CHORUS
#BRIDGE
#MIDDLE EIGHT
#SOLO / INSTRUMENTAL BREAK
#COLLISION
#CODA / OUTRO
#AD LIB (OFTEN IN CODA / OUTRO)
The chorus usually has more energy than the verse and often has a memorable melody line. As the chorus is repeated the most often during the song, it will be the part that people will remember.
The bridge often marks a change of direction in the song. It is not uncommon to change keys in the bridge, or at least to use a different chord sequence. The bridge is used to build up tension towards the big finale, the last repetition of chorus.
Playing
RCTRL: Play song from row 0.
LSHIFT + RCTRL: Play song from current row.
RALT: Play pattern from row 0.
LSHIFT + RALT: Play pattern from current row.
Left mouse on '>': Play song from row 0.
Right mouse on '>': Play song from current row.
Left mouse on '|>': Play pattern from row 0.
Right mouse on '|>': Play pattern from current row.
Left mouse on 'Edit/Record': Edit mode on/off.
Right mouse on 'Edit/Record': Record mode on/off.
Editing
LSHIFT + ESCAPE: Switch large patterns view on/off
TAB: Go to next track
LSHIFT + TAB: Go to prev. track
LCTRL + TAB: Go to next note in track
LCTRL + LSHIFT + TAB: Go to prev. note in track
SPACE: Toggle Edit mode On & Off
(Also stop if the song is being played)
SHIFT SPACE: Toggle Record mode On & Off
(Wait for a key note to be pressed
or a midi in message to be received)
DOWN ARROW: 1 Line down
UP ARROW: 1 Line up
LEFT ARROW: 1 Row left
RIGHT ARROW: 1 Row right
PREV. PAGE: 16 Arrows Up
NEXT PAGE: 16 Arrows Down
HOME / END: Top left / Bottom right of pattern
LCTRL + HOME / END: First / last track
F5, F6, F7, F8, F9: Jump to 0, 1/4, 2/4, 3/4, 4/4 lines of the patterns
+ - (Numeric keypad): Next / Previous pattern
LCTRL + LEFT / RIGHT: Next / Previous pattern
LCTRL + LALT + LEFT / RIGHT: Next / Previous position
LALT + LEFT / RIGHT: Next / Previous instrument
LSHIFT + M: Toggle mute state of the current channel
LCTRL + LSHIFT + M: Solo the current track / Unmute all
LSHIFT + F1 to F11: Select a tab/panel
LCTRL + 1 to 4: Select a copy buffer
Tracking
1st and 2nd keys rows: Upper octave row
3rd and 4th keys rows: Lower octave row
RSHIFT: Insert a note off
/ and * (Numeric keypad)
or F1 F2: -1 or +1 octave
INSERT / BACKSPACE: Insert or Delete a line in current track
or current selected block.
LSHIFT + INSERT / BACKSPACE: Insert or Delete a line in current pattern
DELETE (NOT BACKSPACE): Empty a column or a selected block.
Blocks
(Blocks can also be selected with the mouse by holding the right button and scrolling the pattern with the mouse wheel).
LCTRL + A: Select entire current track
LCTRL + LSHIFT + A: Select entire current pattern
LALT + A: Select entire column note in a track
LALT + LSHIFT + A: Select all notes of a track
LCTRL + X: Cut the selected block and copy it into the block-buffer
LCTRL + C: Copy the selected block into the block-buffer
LCTRL + V: Paste the data from the block buffer into the pattern
LCTRL + I: Interpolate selected data from the first to the last row of a selection
LSHIFT + ARROWS
PREV. PAGE
NEXT PAGE: Select a block
LCTRL + R: Randomize the select columns of a selection, works similar to CTRL + I (interpolating them)
LCTRL + U: Transpose the note of a selection to 1 seminote higher
LCTRL + D: Transpose the note of a selection to 1 seminote lower
LCTRL + LSHIFT + U: Transpose the note of a selection to 1 seminote higher (only for the current instrument)
LCTRL + LSHIFT + D: Transpose the note of a selection to 1 seminote lower (only for the current instrument)
LCTRL + H: Transpose the note of a selection to 1 octave higher
LCTRL + L: Transpose the note of a selection to 1 octave lower
LCTRL + LSHIFT + H: Transpose the note of a selection to 1 octave higher (only for the current instrument)
LCTRL + LSHIFT + L: Transpose the note of a selection to 1 octave lower (only for the current instrument)
LCTRL + W: Save the current selection into a file
Misc
LALT + ENTER: Switch between full screen / windowed mode
LALT + F4: Exit program (Windows only)
LCTRL + S: Save current module
LSHIFT + S: Switch top right panel to synths list
LSHIFT + I: Switch top right panel to instruments list
<pre>
C-x xh xx xx hhhh Volume
B-x xh xx xx hhhh Jump to
A#x xh xx xx hhhh hhhh Slide
F-x xh xx xx hhhh Tempo
D-x xh xx xx hhhh Pattern Break
G#x xh xx xx hhhh
</pre>
h Hex 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
d Dec 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
The Set Volume command: C. Input a note, then move the cursor to the effects command column and type a C. Play the pattern, and you shouldn't be able to hear the note you placed the C by. This is because the effect parameters are 00. Change the two zeros to a 40(Hex)/64(Dec), depending on what your tracker uses. Play back the pattern again, and the note should come in at full volume.
The Position Jump command next. This is just a B followed by the position in the playing list that you want to jump to. One thing to remember is that the playing list always starts at 0, not 1. This command is usually in Hex.
Onto the volume slide command: A. This is slightly more complex (much more if you're using a newer tracker, if you want to achieve the results here, then set slides to Amiga, not linear), due to the fact it depends on the secondary tempo. For now set a secondary tempo of 06 (you can play around later), load a long or looped sample and input a note or two. A few rows after a note type in the effect command A. For the parameters use 0F. Play back the pattern, and you should notice that when the effect kicks in, the sample drops to a very low volume very quickly. Change the effect parameters to F0, and use a low volume command on the note. Play back the pattern, and when the slide kicks in the volume of the note should increase very quickly.
This because each part of the effect parameters for command A does a different thing. The first number slides the volume up, and the second slides it down. It's not recommended that you use both a volume up and volume down at the same time, due to the fact the tracker only looks for the first number that isn't set to 0. If you specify parameters of 8F, the tracker will see the 8, ignore the F, and slide the volume up. Using a slide up and down at same time just makes you look stupid. Don't do it...
The Set Tempo command: F, is pretty easy to understand. You simply specify the BPM (in Hex) that you want to change to. One important thing to note is that values of lower than 20 (Hex) sets the secondary tempo rather than the primary.
Another useful command is the Pattern Break: D. This will stop the playing of the current pattern and skip to the next one in the playing list. By using parameters of more than 00 you can also specify which line to begin playing from.
Command 3 is Portamento to Note. This slides the currently playing note to another note, at a specified speed. The slide then stops when it reaches the desired note.
<pre>
C-2 1 000 - Starts the note playing
--- 000
C-3 330 - Starts the slide to C-3 at a speed of 30.
--- 300 - Continues the slide
--- 300 - Continues the slide
</pre>
Once the parameters have been set, the command can be input again without any parameters, and it'll still perform the same function unless you change the parameters. This memory function allows certain commands to function correctly, such as command 5, which is the Portamento to Note and Volume Slide command. Once command 3 has been set up command 5 will simply take the parameters from that and perform a Portamento to Note. Any parameters set up for command 5 itself simply perform a Volume Slide identical to command A at the same time as the Portamento to Note.
This memory function will only operate in the same channel where the original parameters were set up.
There are various other commands which perform two functions at once. They will be described as we come across them.
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 00
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 02
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 05
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 08
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0A
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0D
C-3 04 .. .. 09 10 ---> C-3 04 .. .. 09 10
(You can also switch on the Slider Rec to On, and perform parameter-live-recording, such as cutoff transitions, resonance or panning tweaking, etc..) Note: this command only works for volume/panning and fx datas columns.
The next command we'll look at is the Portamento up/down: 1 and 2. Command 1 slides the pitch up at a specified speed, and 2 slides it down. This command works in a similar way to the volume slide, in that it is dependent on the secondary tempo. Both these commands have a memory dependent on each other, if you set the slide to a speed of 3 with the 1 command, a 2 command with no parameters will use the speed of 3 from the 1 command, and vice versa.
Command 4 is Vibrato. Vibrato is basically rapid changes in pitch, just try it, and you'll see what I mean. Parameters are in the format of xy, where x is the speed of the slide, and y is the depth of the slide. One important point to remember is to keep your vibratos subtle and natural so a depth of 3 or less and a reasonably fast speed, around 8, is usually used. Setting the depth too high can make the part sound out of tune from the rest.
Following on from command 4 is command 6. This is the Vibrato and Volume Slide command, and it has a memory like command 5, which you already know how to use.
Command 7 is Tremolo. This is similar to vibrato. Rather than changing the pitch it slides the volume. The effect parameters are in exactly the same format. vibrato effect (0x1dxy) x = speed y = depth (can't be used if arpeggio (0x1b) is turned on)
<pre>
C-7 00 .. .. 1B37 <- Turn Arpeggio effect on
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B38 <- Change datas
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B00 <- Turn it off
</pre>
Command 9 is Sample Offset. This starts the playback of the sample from a different place than the start. The effect parameters specify the sample offset, but only very roughly. Say you have a sample which is 8765(Hex) bytes long, and you wanted it to play from position 4321(Hex). The effect parameter could only be as accurate as the 43 part, and it would ignore the 21.
Command B is the Playing List/Order Jump command. The parameters specify the position in the Playing List/Order to jump to. When used in conjunction with command D you can specify the position and the line to play from.
Command E is pretty complex, as it is used for a lot of different things, depending on what the first parameter is. Let's take a trip through each effect in order.
Command E0 controls the hardware filter on an Amiga, which, as a low pass filter, cuts off the highest frequencies being played back. There are very few players and trackers on other system that simulate this function, not that you should need to use it. The second parameter, if set to 1, turns on the filter. If set to 0, the filter gets turned off.
Commands E1/E2 are Fine Portamento Up/Down. Exactly the same functions as commands 1/2, except that they only slide the pitch by a very small amount. These commands have a memory the same as 1/2 as well.
Command E3 sets the Glissando control. If parameters are set to 1 then when using command 3, any sliding will only use the notes in between the original note and the note being slid to. This produces a somewhat jumpier slide than usual. The best way to understand is to try it out for yourself. Produce a slow slide with command 3, listen to it, and then try using E31.
Command E4 is the Set Vibrato Waveform control. This command controls how the vibrato command slides the pitch. Parameters are 0 - Sine, 1 - Ramp Down (Saw), 2 - Square. By adding 4 to the parameters, the waveform will not be restarted when a new note is played e.g. 5 - Sine without restart.
Command E5 sets the Fine Tune of the instrument being played, but only for the particular note being played. It will override the default Fine Tune for the instrument. The parameters range from 0 to F, with 0 being -8 and F being +8 Fine Tune. A parameter of 8 gives no Fine Tune. If you're using a newer tracker that supports more than -8 to +8 e.g. -128 to +128, these parameters will give a rough Fine Tune, accurate to the nearest 16.
Command E6 is the Jump Loop command. You mark the beginning of the part of a pattern that you want to loop with E60, and then specify with E6x the end of the loop, where x is the number of times you want it to loop.
Command E7 is the Set Tremolo Waveform control. This has exactly the same parameters as command E4, except that it works for Tremolo rather than Vibrato.
Command E9 is for Retriggering the note quickly. The parameter specifies the interval between the retrigs. Use a value of less than the current secondary tempo, or else the note will not get retrigged.
Command EA/B are for Fine Volume Slide Up/Down. Much the same as the normal Volume Slides, except that these are easier to control since they don't depend on the secondary tempo. The parameters specify the amount to slide by e.g. if you have a sample playing at a volume of 08 (Hex) then the effect EA1 will slide this volume to 09 (Hex). A subsequent effect of EB4 would slide this volume down to 05 (Hex).
Command EC is the Note Cut. This sets the volume of the currently playing note to 0 at a specified tick. The parameters should be lower than the secondary tempo or else the effect won't work.
Command ED is the Note Delay. This should be used at the same time as a note is to be played, and the parameters will specify the number of ticks to delay playing the note. Again, keep the parameters lower than the secondary tempo, or the note won't get played!
Command EE is the Pattern Delay. This delays the pattern for the amount of time it would take to play a certain number of rows. The parameters specify how many rows to delay for.
Command EF is the Funk Repeat command. Set the sample loop to 0-1000. When EFx is used, the loop will be moved to 1000- 2000, then to 2000-3000 etc. After 9000-10000 the loop is set back to 0- 1000. The speed of the loop "movement" is defined by x. E is two times as slow as F, D is three times as slow as F etc. EF0 will turn the Funk Repeat off and reset the loop (to 0-1000).
effects 0x41 and 0x42 to control the volumes of the 2 303 units
There is a dedicated panel for synth parameter editing with coherent sections (osc, filter modulation, routing, so on) the interface is much nicer, much better to navigate with customizable colors, the reverb is now customizable (10 delay lines), It accepts newer types of Waves (higher bit rates, at least 24). Has a replay routine.
It's pretty much your basic VA synth. The problem isn't with the sampler being to high it's the synth is tuned two octaves too low, but if you want your samples tuned down just set the base note down 2 octaves (in the instrument panel).
so the synth is basically divided into 3 sections from left to right: oscillators/envelopes, then filter and LFO's, and in the right column you have mod routings and global settings.
for the oscillator section you have two normal oscillators (sine, saw, square, noise), the second of which is tunable, the first one tunes with the key pressed. Attached to OSC 1 is a sub-oscillator, which is a sawtooth wave tuned one octave down. The phase modulation controls the point in the duty cycle at which the oscillator starts. The ADSR envelope sliders (grouped with oscs) are for modulation envelope 1 and 2 respectively. you can use the synth as a sampler by choosing the instrument at the top.
In the filter column, the filter settings are: 1 = lowpass, 2 = highpass, 3 = off. cutoff and resonance. For the LFOs they are LFO 1 and LFO 2, the ADSR sliders in those are for the LFO itself.
For the modulation routings you have ENV 1, LFO 1 for the first slider and ENV 2, LFO 2 for the second, you can cycle through the individual routings there, and you can route each modulation source to multiple destinations of course, which is another big plus for this synth. Finally the glide time is for portamento and master volume, well, the master volume... it can go quite loud.
The sequencer is changed too, It's more like the one in AXS if you've used that, where you can mute tracks to re-use patterns with variation.
<pre>
Support for the following modules formats:
669 (Composer 669, Unis 669),
AMF (DSMI Advanced Module Format),
AMF (ASYLUM Music Format V1.0),
APUN (APlayer), DSM (DSIK internal format),
FAR (Farandole Composer),
GDM (General DigiMusic),
IT (Impulse Tracker),
IMF (Imago Orpheus),
MOD (15 and 31 instruments),
MED (OctaMED),
MTM (MultiTracker Module editor),
OKT (Amiga Oktalyzer),
S3M (Scream Tracker 3),
STM (Scream Tracker),
STX (Scream Tracker Music Interface Kit),
ULT (UltraTracker),
UNI (MikMod),
XM (FastTracker 2),
Mid (midi format via timidity)
</pre>
Possible plugin options include [http://lv2plug.in/ LV2],
====Midi - Musical Instrument Digital Interface====
A midi file typically contains music that plays on up to 16 channels (as per the midi standard), but many notes can simultaneously play on each channel (depending on the limit of the midi hardware playing it).
'''Timidity'''
Although usually already installed, you can uncompress the [http://www.libsdl.org/projects/SDL_mixer/ timidity.tar.gz (14MB)] into a suitable drawer like below's SYS:Extras/Audio/
assign timidity: SYS:Extras/Audio/timidity
added to SYSːs/User-Startup
'''WildMidi playback'''
'''Audio Evolution 4 (2003) 4.0.23 (from 2012)'''
*Sync Menu - CAMD Receive, Send checked
*Options Menu - MIDI Machine Control - Midi Bar Display - Select CAMD MIDI in / out - Midi Remote Setup
MCB Master Control Bus
*Sending a MIDI start-command and a Song Position Pointer, you can synchronize audio with an external MIDI sequencer (like B&P).
*B&P Receive, start AE, add AudioEvolution.ptool in Bars&Pipes track, press play / record in AE then press play in Pipes
*CAMD Receive, receive MIDI start or continue commands via camd.library sync to AE
*MIDI Machine Control
*Midi Bar Display
*Select CAMD MIDI in / out
*Midi Remote Setup - open requester for external MIDI controllers to control app mixer and transport controls cc remotely
Channel - mixer(vol, pan, mute, solo), eq, aux, fx,
Subgroup - Volume, Mute, Solo
Transport - Start, End, Play, Stop, Record, Rewind, Forward
Misc - Master vol., Bank Down, Bank up
<pre>
q - quit
First 3 already opened when AE started
F1 - timeline window
F2 - mixer
F3 - control
F4 - subgroups
F5 - aux returns
F6 - sample list
i - Load sample to use
space - start/stop play
b - reset time 0:00
s - split mode
r - open recording window
a - automation edit mode with p panning, m mute and v volume
[ / ] - zoom in / out
: - previous track
* - next track
x c v f - cut copy paste cross-fade
g - snap grid
</pre>
'''[http://bnp.hansfaust.de/ Bars n Pipes sequencer]'''
BarsnPipes debug ... in shell
Menu (right mouse)
*Song - Songs load and save in .song format but option here to load/save Midi_Files .mid in FORMAT0 or FORMAT1
*Track -
*Edit -
*Tool -
*Timing - SMTPE Synchronizing
*Windows -
*Preferences - Multiple MIDI-in option
Windows (some of these are usually already opened when Bars n Pipes starts up for the first time)
*Workflow -> Tracks, .... Song Construction, Time-line Scoring, Media Madness, Mix Maestro,
*Control -> Transport (or mini one), Windows (which collects all the Windows icons together-shortcut), .... Toolbox, Accessories, Metronome,
Once you have your windows placed on the screen that suits your workflow, Song -> Save as Default will save the positions, colors, icons, etc as you'd like them
If you need a particular setup of Tracks, Tools, Tempos etc, you save them all as a new song you can load each time
Right mouse menu -> Preferences -> Environment... -> ScreenMode - Linkages for Synch (to Slave) usbmidi.out.0 and Send (Master) usbmidi.in.0 - Clock MTC
'''Tracks'''
#Double-click on B&P's icon. B&P will then open with an empty Song. You can also double-click on a song icon to open a song in B&P.
#Choose a track. The B&P screen will contain a Tracks Window with a number of tracks shown as pipelines (Track 1, Track 2, etc...). To choose a track, simply click on the gray box to show an arrow-icon to highlight it. This icon show whether a track is chosen or not. To the right of the arrow-icon, you can see the icon for the midi-input. If you double-click on this icon you can change the MIDI-in setup.
#Choose Record for the track. To the right of the MIDI-input channel icon you can see a pipe. This leads to another clickable icon with that shows either P, R or M. This stands for Play, Record or Merge. To change the icon, simply click on it. If you choose P, this track can only play the track (you can't record anything). If you choose R, you can record what you play and it overwrites old stuff in the track. If you choose M, you merge new records with old stuff in the track. Choose R now to be able to make a record.
#Chose MIDI-channel. On the most right part of the track you can see an icon with a number in it. This is the MIDI-channel selector. Here you must choose a MIDI-channel that is available on your synthesizer/keyboard. If you choose General MIDI channel 10, most synthesizer will play drum sounds. To the left of this icon is the MIDI-output icon. Double-click on this icon to change the MIDI-output configuration.
#Start recording. The next step is to start recording. You must then find the control buttons (they look like buttons on a CD-player). To be able to make a record. you must click on the R icon. You can simply now press the play button (after you have pressed the R button) and play something on you keyboard. To playback your composition, press the Play button on the control panel.
#Edit track. To edit a track, you simply double click in the middle part of a track. You will then get a new window containing the track, where you can change what you have recorded using tools provided. Take also a look in the drop-down menus for more features.
Videos to help understand [https://www.youtube.com/watch?v=A6gVTX-9900 small intro], [https://www.youtube.com/watch?v=abq_rUTiSA4&t=3s Overview], [https://www.youtube.com/watch?v=ixOVutKsYQo Workplace Setup CC PC Sysex], [https://www.youtube.com/watch?v=dDnJLYPaZTs Import Song], [https://www.youtube.com/watch?v=BC3kkzPLkv4 Tempo Mapping], [https://www.youtube.com/watch?v=sd23kqMYPDs ptool Arpeggi-8], [https://www.youtube.com/watch?v=LDJq-YxgwQg PlayMidi Song], [https://www.youtube.com/watch?v=DY9Pu5P9TaU Amiga Midi], [https://www.youtube.com/watch?v=abq_rUTiSA4 Learning Amiga bars and Pipes],
Groups like [https://groups.io/g/barsnpipes/topics this] could help
'''Tracks window'''
* blue "1 2 3 4 5 6 7 8 Group" and transport tape deck VCR-type controls
* Flags
* [http://theproblem.alco-rhythm.com/org/bp.html Track 1, Track2, to Track 16, on each Track there are many options that can be activated]
Each Track has a
*Left LHS - Click in grey box to select what Track to work on, Midi-In ptool icon should be here (5pin plug icon), and many more from the Toolbox on the Input Pipeline
*Middle - (P, R, M) Play, Record, Merge/Multi before the sequencer line and a blue/red/yellow (Thru Mute Play) Tap
*Right RHS - Output pipeline, can have icons placed uopn it with the final ptool icon(s) being the 5pin icon symbol for Midi-OUT
Clogged pipelines may need Esc pressed several times
'''Toolbox (tools affect the chosen pipeline)'''
After opening the Toolbox window you can add extra Tools (.ptool) for the pipelines like keyboard(virtual), midimonitor, quick patch, transpose, triad, (un)quantize, feedback in/out, velocity etc
right mouse -> Toolbox menu option -> Install Tool... and navigate to Tool drawer (folder) and select requried .ptool
Accompany B tool to get some sort of rythmic accompaniment, Rythm Section and Groove Quantize are examples of other tools that make use of rythms
[https://aminet.net/search?query=bars Bars & Pipes pattern format .ptrn] for drawer (folder). Load from the Menu as Track or Group
'''Accessories (affect the whole app)'''
Accessories -> Install... and goto the Accessories drawer for .paccess like adding ARexx scripting support
'''Song Construction'''
<pre>
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Duplicator
F5 Eraser
F6 Toolpad
F7 Bounding box
F8 Lock to A-B-A
A-B-A strip, section, edit flags, white boxes,
</pre>
Bars&Pipes Professional offers three track formats; basic song tracks, linear tracks — which don't loop — and finally real‑time tracks. The difference between them is that both song and linear tracks respond to tempo changes, while real‑time tracks use absolute timing, always trigger at the same instant regardless of tempo alterations
'''Tempo Map'''
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Eraser
F5 Curve
F6 Toolpad
Compositions
Lyrics, Key, Rhythm, Time Signature
'''Master Parameters'''
Key, Scale/Mode
'''Track Parameters'''
Dynamics
'''Time-line Scoring'''
'''Media Madness'''
'''Mix Maestro'''
*ACCESSORIES Allows the importation of other packages and additional modules
*CLIPBOARD Full cut, copy and paste operations, enabling user‑definable clips to be shared between tracks.
*INFORMATION A complete rundown on the state of the current production and your machine.
*MASTER PARAMETERS Enables global definition of time signatures, lyrics, scales, chords, dynamics and rhythm changes.
*MEDIA MADNESS A complete multimedia sequencer which allows samples, stills, animation, etc
*METRONOME Tempo feedback via MIDI, internal Amiga audio and colour cycling — all three can be mixed and matched as required.
*MIX MAESTRO Completely automated mixdown with control for both volume and pan. All fader alterations are memorised by the software
*RECORD ACTIVATION Complete specification of the data to be recorded/merged. Allows overdubbing of pitch‑bend, program changes, modulation etc
*SET FLAGS Numeric positioning of location and edit flags in either SMPTE or musical time
*SONG CONSTRUCTION Large‑scale cut and paste of individual measures, verses or chorus, by means of bounding box and drag‑n‑drop mouse selections
*TEMPO MAP Tempo change using a variety of linear and non‑linear transition curves
*TEMPO PALETTE Instant tempo changes courtesy of four user‑definable settings.
*TIMELINE SCORING Sequencing of a selection of songs over a defined period — ideal for planning an entire set for a live performance.
*TOOLBOX Selection screen for the hundreds of signal‑processing tools available
*TRACKS Opens the main track window to enable recording, editing and the use of tools.
*TRANSPORT Main playback control window, which also provides access to user‑ defined flags, loop and punch‑in record modes.
Bars and Pipes Pro 2.5 is using internal 4-Byte IDs, to check which kind of data are currently processed.
Especially in all its files the IDs play an important role. The IDs are stored into the file in the same order they are laid out in the memory.
In a Bars 'N' Pipes file (no matter which kind) the ID "NAME" (saved as its ANSI-values) is stored on a big endian system (68k-computer) as "NAME". On a little endian system (x86 PC computer) as "EMAN". The target is to make the AROS-BnP compatible to songs, which were stored on a 68k computer (AMIGA).
If possible, setting MIDI channels for Local Control for your keyboard
http://www.fromwithin.com/liquidmidi/archive.shtml
MIDI files are essentially a stream of event data. An event can be many things, but typically "note on", "note off", "program change", "controller change", or messages that instruct a MIDI compatible synth how to play a given bit of music.
* Channel - 1 to 16 -
* Messages - PC presets, CC effects like delays, reverbs, etc
* Sequencing - MIDI instruments, Drums, Sound design,
* Recording -
* GUI - Piano roll or Tracker, Staves and Notes
MIDI events/messages like step entry e.g. Note On, Note Off
MIDI events/messages like PB, PC, CC, Mono and Poly After-Touch, Sysex, etc
MIDI sync - Midi Clocks (SPS Measures), Midi Time Code (h, m, s and frames) SMPTE
Individual track editing with audition edits so easier to test any changes. Possible to stop track playback, mix clips from the right edit flag and scroll the display using arrow keys.
Step entry, to extend a selected note hit the space bar and the note grows accordingly. Ability to cancel mouse‑driven edits by simply clicking the right mouse button — at which point everything snaps back into its original form. Lyrics can now be put in with syllable dividers, even across an entire measure or section. Autoranging when you open a edit window, the notes are automatically displayed — working from the lowest upwards.
Flag editing, shift‑click on a flag immediately open the bounds window, ready for numeric input. Ability to cancel edits using the right‑hand mouse button, plus much improved Bounding Box operations.
Icons other than the BarsnPipes icon -> PUBSCREEN=BarsnPipes (cannot choose modes higher than 8bit 256 colors)
Preferences -> Menu in Tracks window - Send MIDI defaults OFF
Prefs -> Environment -> screenmode (saved to BarsnPipes.prefs binary file)
Customization -> pics in gui drawer (folder) -
Can save as .song files and .mid General Midi
SMF is a “Standard Midi File” ([http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html SMF0, SMF1 and SMF2]), [https://github.com/stump/libsmf libsmf], [https://github.com/markc/midicomp MIDIcomp], [https://github.com/MajicDesigns/MD_MIDIFile C++ src], [], [https://github.com/newdigate/midi-smf-reader Midi player],
* SMF0 All MIDI data is stored in one track only, separated exclusively by the MIDI channel.
* SMF1 The MIDI data is stored in separate tracks/channels.
* SMF2 (rarely used) The MIDI data is stored in separate tracks, which are additionally wrapped in containers, so it's possible to have e.g. several tracks using the same MIDI channels.
Would it be possible to enrich Bars N’Pipes with software synth and sample support along with audio recording and mastering tools like in the named MAC or PC music sequencers?
On the classic AMIGA-OS this is not possible because of missing CPU-power. The hardware of the classic AMIGA is not further developed. So we must say (unfortunately) that those dreams can’t become reality
BarsnPipes is best used with external MIDI-equipment. This can be a keyboard or synthesizer with MIDI-connectors.
<pre>
MIDI can control 16 channels
There are USB-MIDI-Interfaces on the market with 16 independent MIDI-lines (multi-port), which can handle 16 MIDI devices independently – 16×16 = 256 independent MIDI-channels or instruments
handle up to 16 different USB-MIDI-Interfaces (multi-device). That is: 16X16X16 = 4096 independent MIDI-channels – theoretically
</pre>
<pre>
Librarian MIDI SYStem EXplorer (sysex) - PatchEditor and used to be supplied as a separate program like PatchMeister but currently not at present
It should support MIDI.library (PD), BlueRibbon.library (B&P), TriplePlayPlus, and CAMD.library (DeluxeMusic) and
MIDI information from a device's user manual and configure a custom interface to access parameters for all MIDI products connected to the system
Supports ALL MIDI events and the Patch/Librarian data is stored in MIDI standard format
Annette M.Crowling, Missing Link Software, Inc.
</pre>
Composers
<pre>
[https://x.com/hirasawa/status/1403686519899054086 Susumu Hirasawa]
</pre>
<pre>
1988 Todor Fay and his wife Melissa Jordan Gray, who founded the Blue Ribbon Inc
1992 Bars&Pipes Pro published
November 2000, Todor Fay announcement to release the sourcecode of Bars&Pipes Pro 2.5c beta
end of May 2001, the source of the main program and the sources of some tools and accessories were in a complete and compileable state
end of October 2009 stop further development of BarsnPipes New for now on all supported systems and made freeware
2013 Alfred Faust diagnosed with incureable illness, called „Myastenia gravis“ (weak muscles)
</pre>
Protrekkr
How to use Midi In/Out in Protrekkr ?
First of all, midi in & out capabilities of this program are rather limited.
# Go to Misc. Setup section and select a midi in or out device to use (ptk only supports one device at a time).
# Go to instrument section, and select a MIDI PRG (the default is N/A, which means no midi program selected).
# Go to track section and here you can assign a midi channel to each track of ptk.
# Play notes :]. Note off works. F'x' note cut command also works too, and note-volume command (speed) is supported.
Also, you can change midicontrollers in the tracker, using '90' in the panning row:
<pre>
C-3 02 .. .. 0000....
--- .. .. 90 xxyy.... << This will set the value
--- .. .. .. 0000.... of the controller n.'xx' to 'yy' (both in hex)
--- .. .. .. 0000....
</pre>
So "--- .. .. 90 2040...." will set the controller number $20(32) to $40(64).
You will need the midi implementation table of your gear to know what you can change with midi controller messages.
N.B. Not all MIDI devices are created equal!
Although the MIDI specification defines a large range of MIDI messages of various kinds, not every MIDI device is required to work in exactly the same way and respond to all the available messages and ways of working. For example, we don't expect a wind synthesiser to work in the same way as a home keyboard.
Some devices, the older ones perhaps, are only able to respond to a single channel. With some of those devices that channel can be altered from the default of 1 (probably) to another channel of the 16 possible.
Other devices, for instance monophonic synthesisers, are capable of producing just one note at a time, on one MIDI channel. Others can produce many notes spread across many channels.
Further devices can respond to, and transmit, "breath controller" data (MIDI controller number 2 (CC#2)) others may respond to the reception of CC#2 but not be able to create and to send it.
A controller keyboard may be capable of sending "expression pedal" data, but another device may not be capable of responding to that message.
Some devices just have the basic GM sound set. The "voice" or "instrument" is selected using a "Program Change" message on its own.
Other devices have a greater selection of voices, usually arranged in "banks", and the choice of instrument is made by responding to "Bank Select MSB" (MIDI controller 0 (CC#0)), others use "Bank Select LSB" (MIDI controller number 32 (CC#32)), yet others use both MSB and LSB sent one after the other, all followed by the Program Change message. The detailed information about all the different voices will usually be available in a published MIDI Data List.
MIDI Implementation Chart
But in the User Manual there is sometimes a summary of how the device works, in terms of MIDI, in the chart at the back of the manual, the MIDI Implementation Chart.
If you require two devices to work together you can compare the two implementation charts to see if they are "compatible". In order to do this we will need to interpret that chart.
The chart is divided into four columns headed "Function", "Transmitted" (or "Tx"), "Received" (or "Rx"), or more correctly "Recognised", and finally, "Remarks".
<pre>
The left hand column defines which MIDI functions are being described.
The 2nd column defines what the device in question is capable of transmitting to another device.
The 3rd column defines what the device is capable of responding to.
The 4th column is for explanations of the values contained within these previous two columns.
</pre>
There should then be twelve sections, with possibly a thirteenth containing extra "Notes". Finally there should be an explanation of the four MIDI "modes" and what the "X" and the "O" mean.
<pre>
Mode 1: Omni On, Poly;
Mode 2: Omni On, Mono;
Mode 3: Omni Off, Poly;
Mode 4: Omni Off, Mono.
</pre>
O means "yes" (implemented), X means "no" (not implemented).
Sometimes you will find a row of asterisks "**************", these seem to indicate that the data is not applicable in this case. Seen in the transmitted field only (unless you've seen otherwise).
Lastly you may find against some entries an asterisk followed by a number e.g. *1, these will refer you to further information, often on a following page, giving more detail.
Basic Channel
But the very first set of boxes will tell us the "Basic Channel(s)" that the device sends or receives on.
"Default" is what happens when the device is first turned on, "changed" is what a switch of some kind may allow the device to be set to.
For many devices e.g. a GM sound module or a home keyboard, this would be 1-16 for both. That is it can handle sending and receiving on all MIDI channels.
On other devices, for example a synthesiser, it may by default only work on channel 1. But the keyboard could be "split" with the lower notes e.g. on channel 2. If the synth has an arppegiator, this may be able to be set to transmit and or receive on yet another channel.
So we might see the default as "1" but the changed as "1-16".
Modes.
We need to understand Omni On and Off, and Mono and Poly, then we can decipher the four modes.
But first we need to understand that any of these four Mode messages can be sent to any MIDI channel. They don't necessarily apply to the whole device.
If we send an "Omni On" message (CC#125) to a MIDI channel of a device, we are, in effect, asking it to respond to e.g. a Note On / Off message pair, received on any of the sixteen channels. Sound strange? Read it again. Still strange? It certainly is. We normally want a MIDI channel to respond only to Note On / Off messages sent on that channel, not any other. In other words, "Omni Off".
So "Omni Off" (CC#124) tells a channel of our MIDI device to respond only to messages sent on that MIDI channel.
"Poly" (CC#127) is for e.g. a channel of a polyphonic sound module, or a home keyboard, to be able to respond to many simultaneous Note On / Off message pairs at once and produce musical chords.
"Mono" (CC#126) allows us to set a channel to respond as if it were e.g. a flute or a trumpet, playing just one note at a time. If the device is capable of it, then the overlapping of notes will produce legato playing, that is the attack portion of the second note of two overlapping notes will be removed resulting in a "smoother" transition.
So a channel with a piano voice assigned to it will have Omni Off, Poly On (Mode 3), a channel with a saxophone voice assigned could be Omni Off, Mono On (Mode 4).
We call these combinations the four modes, 1 to 4, as defined above.
Most modern devices will have their channels set to Mode 3 (Omni Off, Poly) but be switchable, on a per channel basis, to Mode 4 (Omni Off, Mono).
This second section of data will include first its default value i.e. upon device switch on. Then what Mode messages are acceptable, or X if none.
Finally, in the "Altered" field, how a Mode message that can't be implemented will be interpreted. Usually there will just be a row of asterisks effectively meaning nothing will be done if you try to switch to an unimplemented mode.
Note Number
<pre>
The next row will tell us which MIDI notes the device can send or receive, normally 0-127.
The second line, "True Voice" has the following in the MIDI specification:
"Range of received note numbers falling within the range of true notes produced by the instrument."
My interpretation is that, for instance, a MIDI piano may be capable of sending all MIDI notes (0 to 127) by transposition, but only responding to the 88 notes (21 to 108) of a real piano.
</pre>
Velocity
This will tell us whether the device we're looking at will handle note velocity, and what range from 1-127, or maybe just 64, it transmits or will recognise. So usually "O" plus a range or "X" for not implemented.
After touch
This may have one or two lines two it.
If a one liner the either "O" or "X", yes or no.
If a two liner then it may include "Keys" or "Poly" and "Channel".
This will show whether the device will respond to Polyphonic after touch or channel after touch or neither.
Pitch Bend
Again "O" for implemented, "X" for not implemented.
(Many stage pianos will have no pitch bend capability.)
It may also, in the notes section, state whether it will respond to the full 14 bits, or not, as usually encoded by the pitch bend wheel.
Control Change
This is likely to be the largest section of the chart.
It will list all those controllers, starting from CC#0, Bank Select MSB, which the device is capable of sending, and those that it will respond to using "O" or "X" respectively.
You will, almost certainly, get some further explanation of functionality in the remarks column, or in more detail elsewhere in the documentation.
Of course you will need to know what all the various controller numbers do. Lots of the official technical specifications can be found at the [www.midi.org/techspecs/ MMA], with the table of messages and control change [www.midi.org/techspecs/midimessages.php message numbers]
Program Change
Again "O" or "X" in the Transmitted or Recognised column to indicate whether or not the feature is implemented. In addition a range of numbers is shown, typically 0-127, to show what is available.
True # (number): "The range of the program change numbers which correspond to the actual number of patches selected."
System Exclusive
Used to indicate whether or not the device can send or recognise System Exclusive messages. A short description is often given in the Remarks field followed by a detailed explanation elsewhere in the documentation.
System Common - These include the following:
<pre>
MIDI Time Code Quarter Frame messages (device synchronisation).
Song Position Pointer
Song Select
Tune Request
</pre>
The section will indicate whether or not the device can send or respond to any of these messages.
System Real Time
These include the following:
<pre>
Timing Clock - often just written as "Clock"
Start
Stop
Continue
</pre>
These three are usually just referred to as "Commands" and listed.
Again the section will indicate which, if any, of these messages the device can send or respond to.
<pre>
Aux. Messages
Again "O" or "X" for implemented or not.
Aux. = Auxiliary.
Active Sense = Active Sensing.
</pre>
Often with an explanation of the action of the device.
Notes
The "Notes" section can contain any additional comments to clarify the particular implementation.
Some of the explanations have been drawn directly from the MMA MIDI 1.0 Detailed Specification.
And the detailed explanation of some of the functions will be found there, or in the General MIDI System Level 1 or General MIDI System Level 2 documents also published by the MMA.
OFFICIAL MIDI SPECIFICATIONS
SUMMARY OF MIDI MESSAGES
Table 1 - Summary of MIDI Messages
The following table lists the major MIDI messages in numerical (binary) order (adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88, and updated by the MIDI Manufacturers Association.). This table is intended as an overview of MIDI, and is by no means complete.
WARNING! Details about implementing these messages can dramatically impact compatibility with other products. We strongly recommend consulting the official MIDI Specifications for additional information.
MIDI 1.0 Specification
Message Summary Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1000nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1001nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1010nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127).
|-
|<!--Status-->1100nnnn || <!--Data-->0ppppppp || <!--Description-->Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.
|-
|<!--Status-->1101nnnn || <!--Data-->0vvvvvvv || <!--Description-->Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
|-
|<!--Status-->1110nnnn || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Pitch Bend Change. This message is sent to indicate a change in the pitch bender (wheel or lever, typically). The pitch bender is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the receiver, but may be set using RPN 0. (lllllll) are the least significant 7 bits. (mmmmmmm) are the most significant 7 bits.
|}
Channel Mode Messages (See also Control Change, above)
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are:
*All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible c = 120, v = 0: All Sound Off
*Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults) c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice.
*Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
* All Notes Off. When an All Notes Off is received, all oscillators will turn off.
c = 123, v = 0: All Notes Off (See text for description of actual mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off)
|}
System Common Messages
System Messages (0xF0)
The final status nybble is a “catch all” for data that doesn’t fit the other statuses. They all use the most significant nybble (4bits) of 0xF, with the least significant nybble indicating the specific category.
The messages are denoted when the MSB of the second nybble is 1. When that bit is a 0, the messages fall into two other subcategories.
System Common
If the MSB of the second second nybble (4 bits) is not set, this indicates a System Common message. Most of these are messages that include some additional data bytes.
System Common Messages
Type Status Byte Number of Data Bytes Usage
<pre>
Time Code Quarter Frame 0xF1 1 Indicates timing using absolute time code, primarily for synthronization with video playback systems. A single location requires eight messages to send the location in an encoded hours:minutes:seconds:frames format*.
Song Position 0xF2 2 Instructs a sequencer to jump to a new position in the song. The data bytes form a 14-bit value that expresses the location as the number of sixteenth notes from the start of the song.
Song Select 0xF3 1 Instructs a sequencer to select a new song. The data byte indicates the song.
Undefined 0xF4 0
Undefined 0xF5 0
Tune Request 0xF6 0 Requests that the receiver retunes itself**.
</pre>
*MIDI Time Code (MTC) is significantly complex. Please see the MIDI Specification
**While modern digital instruments are good at staying in tune, older analog synthesizers were prone to tuning drift. Some analog synthesizers had an automatic tuning operation that could be initiated with this command.
System Exclusive
If you’ve been keeping track, you’ll notice there are two status bytes not yet defined: 0xf0 and 0xf7. These are used by the System Exclusive message, often abbreviated at SysEx. SysEx provides a path to send arbitrary data over a MIDI connection. There is a group of predefined messages for complex data, like fine grained control of MIDI Time code machinery. SysEx is also used to send manufacturer defined data, such as patches, or even firmware updates.
System Exclusive messages are longer than other MIDI messages, and can be any length. The messages are of the following format:
0xF0, 0xID, 0xdd, ...... 0xF7
The message is bookended with distinct bytes.
It opens with the Start Of Exclusive (SOX) data byte, 0xF0.
The next one to three bytes after the start are an identifier.
Values from 0x01 to 0x7C are one-byte vendor IDs, assigned to manufacturers who were involved with MIDI at the beginning.
If the ID is 0x00, it’s a three-byte vendor ID - the next two bytes of the message are the value.
<pre>
ID 0x7D is a placeholder for non-commercial entities.
ID 0x7E indicates a predefined Non-realtime SysEx message.
ID 0x7F indicates a predefined Realtime SysEx message.
</pre>
After the ID is the data payload, sent as a stream of bytes.
The transfer concludes with the End of Exclusive (EOX) byte, 0xF7.
The payload data must follow the guidelines for MIDI data bytes – the MSB must not be set, so only 7 bits per byte are actually usable. If the MSB is set, it falls into three possible scenarios.
An End of Exclusive byte marks the ordinary termination of the SysEx transfer.
System Real Time messages may occur within the transfer without interrupting it. The recipient should handle them independently of the SysEx transfer.
Other status bytes implicitly terminate the SysEx transfer and signal the start of new messages.
Some inexpensive USB-to-MIDI interfaces aren’t capable of handling messages longer than four bytes.
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11110000 || <!--Data-->0iiiiiii [0iiiiiii 0iiiiiii] 0ddddddd --- --- 0ddddddd 11110111 || <!--Description-->System Exclusive.
This message type allows manufacturers to create their own messages (such as bulk dumps, patch parameters, and other non-spec data) and provides a mechanism for creating additional MIDI Specification messages. The Manufacturer's ID code (assigned by MMA or AMEI) is either 1 byte (0iiiiiii) or 3 bytes (0iiiiiii 0iiiiiii 0iiiiiii). Two of the 1 Byte IDs are reserved for extensions called Universal Exclusive Messages, which are not manufacturer-specific. If a device recognizes the ID code as its own (or as a supported Universal message) it will listen to the rest of the message (0ddddddd). Otherwise, the message will be ignored. (Note: Only Real-Time messages may be interleaved with a System Exclusive.)
|-
|<!--Status-->11110001 || <!--Data-->0nnndddd || <!--Description-->MIDI Time Code Quarter Frame.
nnn = Message Type
dddd = Values
|-
|<!--Status-->11110010 || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Song Position Pointer.
This is an internal 14 bit register that holds the number of MIDI beats (1 beat= six MIDI clocks) since the start of the song. l is the LSB, m the MSB.
|-
|<!--Status-->11110011 || <!--Data-->0sssssss || <!--Description-->Song Select.
The Song Select specifies which sequence or song is to be played.
|-
|<!--Status-->11110100 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110110 || <!--Data--> || <!--Description-->Tune Request. Upon receiving a Tune Request, all analog synthesizers should tune their oscillators.
|-
|<!--Status-->11110111 || <!--Data--> || <!--Description-->End of Exclusive. Used to terminate a System Exclusive dump.
|}
System Real-Time Messages
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11111000 || <!--Data--> || <!--Description-->Timing Clock. Sent 24 times per quarter note when synchronization is required.
|-
|<!--Status-->11111001 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111010 || <!--Data--> || <!--Description-->Start. Start the current sequence playing. (This message will be followed with Timing Clocks).
|-
|<!--Status-->11111011 || <!--Data--> || <!--Description-->Continue. Continue at the point the sequence was Stopped.
|-
|<!--Status-->11111100 || <!--Data--> || <!--Description-->Stop. Stop the current sequence.
|-
|<!--Status-->11111101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111110 || <!--Data--> || <!--Description-->Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
|-
|<!--Status-->11111111 || <!--Data--> || <!--Description-->Reset. Reset all receivers in the system to power-up status. This should be used sparingly, preferably under manual control. In particular, it should not be sent on power-up.
|}
Advanced Messages
Polyphonic Pressure (0xA0) and Channel Pressure (0xD0)
Some MIDI controllers include a feature known as Aftertouch. While a key is being held down, the player can press harder on the key. The controller measures this, and converts it into MIDI messages.
Aftertouch comes in two flavors, with two different status messages.
The first flavor is polyphonic aftertouch, where every key on the controller is capable of sending its own independent pressure information. The messages are of the following format:
<pre>
0xnc, 0xkk, 0xpp
n is the status (0xA)
c is the channel nybble
kk is the key number (0 to 127)
pp is the pressure value (0 to 127)
</pre>
Polyphonic aftertouch is an uncommon feature, usually found on premium quality instruments, because every key requires a separate pressure sensor, plus the circuitry to read them all.
Much more commonly found is channel aftertouch. Instead of needing a discrete sensor per key, it uses a single, larger sensor to measure pressure on all of the keys as a group. The messages omit the key number, leaving a two-byte format
<pre>
0xnc, 0xpp
n is the status (0xD)
c is the channel number
pp is the pressure value (0 to 127)
</pre>
Pitch Bend (0xE0)
Many keyboards have a wheel or lever towards the left of the keys for pitch bend control. This control is usually spring-loaded, so it snaps back to the center of its range when released. This allows for both upward and downward bends.
Pitch Bend Wheel
The wheel sends pitch bend messages, of the format
<pre>
0xnc, 0xLL, 0xMM
n is the status (0xE)
c is the channel number
LL is the 7 least-significant bits of the value
MM is the 7 most-significant bits of the value
</pre>
You’ll notice that the bender data is actually 14 bits long, transmitted as two 7-bit data bytes. This means that the recipient needs to reassemble those bytes using binary manipulation. 14 bits results in an overall range of 214, or 0 to 16,383. Because it defaults to the center of the range, the default value for the bender is halfway through that range, at 8192 (0x2000).
Control Change (0xB0)
In addition to pitch bend, MIDI has provisions for a wider range of expressive controls, sometimes known as continuous controllers, often abbreviated CC. These are transmitted by the remaining knobs and sliders on the keyboard controller shown below.
Continuous Controllers
These controls send the following message format:
<pre>
0xnc, 0xcc, 0xvv
n is the status (0xB)
c is the MIDI channel
cc is the controller number (0-127)
vv is the controller value (0-127)
</pre>
Typically, the wheel next to the bender sends controller number one, assigned to modulation (or vibrato) depth. It is implemented by most instruments.
The remaining controller number assignments are another point of confusion. The MIDI specification was revised in version 2.0 to assign uses for many of the controllers. However, this implementation is not universal, and there are ranges of unassigned controllers.
On many modern MIDI devices, the controllers are assignable. On the controller keyboard shown in the photos, the various controls can be configured to transmit different controller numbers. Controller numbers can be mapped to particular parameters. Virtual synthesizers frequently allow the user to assign CCs to the on-screen controls. This is very flexible, but it might require configuration on both ends of the link and completely bypasses the assignments in the standard.
Program Change (0xC0)
Most synthesizers have patch storage memory, and can be told to change patches using the following command:
<pre>
0xnc, 0xpp
n is the status (0xc)
c is the channel
pp is the patch number (0-127)
</pre>
This allows for 128 sounds to be selected, but modern instruments contain many more than 128 patches. Controller #0 is used as an additional layer of addressing, interpreted as a “bank select” command. Selecting a sound on such an instrument might involve two messages: a bank select controller message, then a program change.
Audio & Midi are not synchronized, what I can do ?
Buy a commercial software package but there is a nasty trick to synchronize both. It's a bit hardcore but works for me:
Simply put one line down to all midi notes on your pattern (use Insert key)
and go to 'Misc. Setup', adjust the latency and just search a value
that will make sound sync both audio/midi.
The stock Sin/Saw/Pulse and Rnd waveforms are too simple/common, is there a way to use something more complex/rich ?
You have to ability to redirect the waveforms of the instruments through the synth pipe by selecting the "wav" option for the oscillator you're using for this synth instrument, samples can be used as wavetables to replace the stock signals.
Sound banks like soundfont (sf2) or Kontakt2 are not supported at the moment
====DAW Audio Evolution 4====
Audio Evolution 4 gives you unsurpassed power for digital audio recording and editing on the Amiga. The latest release focusses on time-saving non-linear and non-destructive editing, as seen on other platforms. Besides editing, Audio Evolution 4 offers a wide range of realtime effects, including compression, noise gate, delays, reverb, chorus and 3-band EQ.
Whether you put them as inserts on a channel or use them as auxillaries, the effect parameters are realtime adjustable and can be fully automated. Together with all other mixing parameters, they can even be controlled remotely, using more ergonomic MIDI hardware.
Non-linear editing on the time line, including cut, copy, paste, move, split, trim and crossfade actions
The number of tracks per project(s) is unlimited .... AHI limits you to recording only two at a time. i.e. not on 8 track sound cards like the Juli@ or Phase 88.
sample file import is limited to 16bit AIFF (not AIFC, important distinction as some files from other sources can be AIFC with aiff file extension). and 16bit WAV (pcm only)
Most apps use the Music Unit only but a few apps also use Unit (0-3) instead or as well.
* Set up AHI prefs so that microphone is available. (Input option near the bottom)
stereo++ allows the audio piece to be placed anywhere and the left-right adjusted to sound positionally right
hifi best for music playback if driver supports this option
Load 16bit .aif .aiff only sample(s) to use not AIFC which can have the same ending. AIFF stands for Audio Interchange File Format
sox recital.wav recital.aiff
sox recital.wav −b 16 recital.aiff channels 1 rate 16k fade 3 norm
sox input.wav output.aiff bass −b 16 rate 48k
performs the same format translation, but also applies four effects (down-mix to one channel, sample rate change, fade-in, nomalize), and stores the result at a bit-depth of 16.
rec −c 2 radio.aiff trim 0 30:00
records half an hour of stereo audio
play existing-file.wav
24bit PCM WAV or AIFF do not work
*No stream format handling. So no way to pass on an AC3 encoded stream unmodified to the digital outputs through AHI.
*No master volume handling. Each application has to set its own volume. So each driver implements its own custom driver-mixer interface for handling master volumes, mute and preamps.
*Only one output stream. So all input gets mixed into one output.
*No automatic handling of output direction based on connected cables.
*No monitor input selection. Only monitor volume control.
select the correct input (Don't mistake enabled sound for the correct input.)
The monitor will feedback audio to the lineout and hp out no matter if you have selected the correct input to the ADC. The monitor will provide sound for any valid input. This will result in free mixing when recording from the monitor input instead of mic/line because the monitor itself will provide the hardware mixing for you. Be aware that MIC inputs will give two channel mono. Only Linein will give real stereo.
Now for the not working part. Attempt to record from linein in the AE4 record window, the right channel is noise and the left channel is distorted. Even with the recommended HIFI 16bit Stereo++ mode at 48kHz.
Channels
Monitor
Gain
Inout
Output
Advanced settings - Debugging via serial port
* Options -> Soundcard In/Out
* Options -> SampleRate
* Options -> Preferences
F6 for Sample File List
Setting a grid is easy as is measuring the BPM by marking a section of the sample. Is your kick drum track "not in time" ? If so, you're stumped in AE4 as it has no fancy variable time signatures and definitely no 'track this dodgy rhythm' function like software of the nature of Logic has. So if your drum beat is freeform you will need to work in freeform mode. (Real music is free form anyway).
If the drum *is* accurate and you are just having trouble measuring the time, I usually measure over a range of bars and set the number of beats in range to say 16 as this is more accurate, Then you will need to shift the drum track to match your grid *before* applying the grid. (probably an iterative process as when the grid is active samples snap to it, and when inactive you cannot see it).
AE4 does have ARexx but the functions are more for adding samples at set offsets and starting playback / recording.
These are the usual features found in DAWs...
* Recording digital audio, midi sequencer and mixer
* virtual VST instruments and plug-ins
* automation, group channels, MIDI channels, FX sends and returns, audio and MIDI editors and music notation editor
* different track views
* mixer and track layout (but not the same as below)
* traditional two windows (track and mixer)
Mixing - mixdown
Could not figure out how to select what part I wanted to send to the aux, set it to echo and return. Pretty much the whole echo effect. Or any effect.
Take look at page17 of the manual.
When you open the EQ / Aux send popup window you will see 4 sends. Now from the menu choose the windows menu.
Menus->Windows-> Aux Returns Window
or press F5
You will see a small window with 4 volume controls and an effects button for each. Click a button and add an effects to that aux channel, then set it up as desired (note the reverb effect has a special AUX setting that improves its use with the aux channel, not compulsory but highly useful). You set the amount of 'return' on the main mix in the Aux Return window, and the amount sent from each main mixer channel in the popup for that channel. Again the aux sends are "prefade" so the volume faders on each channel do not affect them.
Tracking
Effects - fade in
To add some echoes to some vocals, tried to add an effect on a track but did not come out. This is made more complicated as I wanted to mute a vocal but then make it echo at the muting point. Want to have one word of a vocal heard and then echoed off. But when the track is mute the echo is cancelled out.
To correctly understand what is happening here you need to study the figure at the bottom of page 15 on the manual. You will see from that that the effects are applied 'prefade' So the automation you applied will naturally mute the entire signal.
There would be a number of ways to achieve the goal,
You have three real time effects slots, one for smoothing like so
Sample -> Amplify -> Delay
Then automate the gain of the amplify block so that it effectively mutes the sample just before the delay at the appropriate moment, the echo effect should then be heard.
Getting the effects in the right order will require experimentation as they can only be added top down and it's not obvious which order they are applied to the signal, but there only two possibilities, so it wont take long to find out.
Using MUTE can cause clicks to the Amplify can be used to mute more smoothly so that's a secondary advantage.
Signal Processing -
Overdub
[[#top|...to the top]]
===Office===
====Spreadsheet Leu====
Support for some xlsx, and ods functions
====Spreadsheet Ignition====
; Needs ABIv1 to be completed before more can be done
File formats supported
* ascii #?.txt and #?.csv (single sheets with data only).
* igs and TurboCalc(WIP) #?.tc for all sheets with data, formats and formulas.
There is '''no''' support for xls, xlsx, ods or uos ([http://en.wikipedia.org/wiki/Uniform_Office_Format Uniform Unified Office Format]) at the moment.
* Always use Esc key after editing Spreadsheet cells.
* copy/paste seems to copy the first instance only so go to Edit -> Clipboard to manage the list of remembered actions.
* Right mouse click on row (1 or 2 or 3) or column header (a or b or c) to access optimal height or width of the row or column respectively
* Edit -> Insert -> Row seems to clear the spreadsheet or clears the rows after the inserted row until undo restores as it should be...
Change Sheet name by Object -> Sheet -> Properties
Click in the cell which will contain the result, and click '''down arrow button''' to the right of the formula box at the bottom of the spreadsheet and choose the function required from the list provided. Then click on the start cell and click on the bottom right corner, a '''very''' small blob, which allows stretching a bounding box (thick grey outlines) across many cells This grey bounding box can be used to '''copy a formula''' to other cells.
Object -> Cell -> Properties to change cell format - Currency only covers DM and not $, Euro, Renminbi, Yen or Pound etc.
Shift key and arrow keys selects a range of cells, so that '''formatting can be done to all highlighted cells'''.
View -> Overview then select ALL with one click (in empty cell in the top left hand corner of the sheet).
Default mode is relative cell referencing e.g. a1+a2 but absolute e.g. $a$1+$a$2 can be entered.
* #sheet-name to '''absolute''' reference another sheet-name cell unless reference() function used.
;Graphs
use shift key and arrow keys to select a bunch of cells to be graph'ed making sure that x axes represents and y axes represents
* value() - 0 value, 1 percent, 2 date, 3 time, 4 unit ...
;Dates
* Excel starts a running count from the 1st Jan 1900 and Ignition starts from 1st Jan 1AD '''(maybe this needs to change)'''
Set formatting Object -> Cell -> Properties and put date in days
;Time
Set formatting Object -> Cell -> Properties and put time in seconds taken
;Database (to be done by someone else)
type - standard, reference (bezug), search criterion (suchkriterium),
* select a bunch of cells and Object -> Database -> Define to set Datenbank (database) and Felder (fields not sure how?)
* Neu (new) or loschen (delete) to add/remove database headings e.g. Personal, Start Date, Finish Date (one per row?)
* Object -> Database -> Index to add fields (felder) like Surname, First Name, Employee ID, etc. to ?
Filtering done with dbfilter(), dbproduct() and dbposition().
Activities with dbsum(), dbaverage(), dbmin() and dbmax().
Table sorting -
;Scripts (Arexx)
;Excel(TM) to Ignition - commas ''',''' replaced by semi-colons ''';''' to separate values within functions
*SUM(),
*AVERAGE(), MAX(), MIN(), INT(), PRODUCT(), MEDIAN(), VAR() becomes Variance(), Percentile(),
*IF(), AND, OR, NOT
*LEFT(), RIGHT(), MID() becomes MIDDLE(), LEN() becomes LENGTH(),
*LOWER() becomes LOWERCASE(), UPPER() becomes UPPERCASE(),
* DATE(yyyy,mm,dd) becomes COMPUTEDATE(dd;mm;yyyy),
*TODAY(), DAY(),WEEK(), MONTH(),=YEAR(TODAY()),
*EOMONTH() becomes MONTHLENGTH(),
*NOW() should be date and time becomes time only, SECOND(), MINUTE(), HOUR(),
*DBSUM() becomes DSUM(),
;Missing and possibly useful features/functions needed for ignition to have better support of Excel files
There is no Merge and Join Text over many cells, no protect and/or freeze row or columns or books but can LOCK sheets, no define bunch of cells as a name, Macros (Arexx?), conditional formatting, no Solver, no Goal Seek, no Format Painter, no AutoFill, no AutoSum function button, no pivot tables, (30 argument limit applies to Excel)
*HLOOKUP(), VLOOKUP(), [http://production-scheduling.com/excel-index-function-most-useful/ INDEX(), MATCH()], CHOOSE(), TEXT(),
*TRIM(), FIND(), SUBSTITUTE(), CONCATENATE() or &, PROPER(), REPT(),
*[https://acingexcel.com/excel-sumproduct-function/ SUMPRODUCT()], ROUND(), ROUNDUP(), *ROUNDDOWN(), COUNT(), COUNTA(), SUMIF(), COUNTIF(), COUNTBLANK(), TRUNC(),
*PMT(), PV(), FV(), POWER(), SQRT(), MODE(), TRUE, FALSE,
*MODE(), LARGE(), SMALL(), RANK(), STDEV(),
*DCOUNT(), DCOUNTA(), WEEKDAY(),
;Excel Keyboard [http://dmcritchie.mvps.org/excel/shortx2k.htm shortcuts needed to aid usability in Ignition]
<pre>
Ctrl Z - Undo
Ctrl D - Fill Down
Ctrl R - Fill right
Ctrl F - Find
Ctrl H - Replace
Ctrl 1 - Formatting of Cells
CTRL SHIFT ~ Apply General Formatting ie a number
Ctrl ; - Todays Date
F2 - Edit cell
F4 - toggle cell absolute / relative cell references
</pre>
====Document Scanning - Scandal====
Scanner usually needs to be connected via a USB port and not via a hub or extension lead.
Check in Trident Prefs -> Devices that the USB Scanner is not bound to anything (e.g. Bindings None)
If not found then reboot the computer and recheck.
Start Scandal, choose Settings from Menu strip at top of screen and in Scanner Driver choose the ?#.device of the scanner (e.g. epson2.device).
The next two boxes - leave empty as they are for morphos SCSI use only
or put ata.device (use the selection option in bigger box below) and Unit as 0 this is needed for gt68xx
* gt68xx - no editing needed in s/gt68xx.conf but needs a firmware file that corresponds to the scanner [http://www.meier-geinitz.de/sane/gt68xx-backend/ gt68xx firmwares] in sys:s/gt68xx.
* epson2 - Need to edit the file epson2.conf in sys/s that corresponds to the scanner being used
'''Save''' the settings but do not press the Use button (aros freezes)
Back to the Picture Scan window and the right-hand sections.
Click on the '''Information''' tab and press Connect button and the scanner should now be detected.
Go next to the '''Scanner''' tab next to Information Tab should have Color, Black and White, etc. and dpi settings now. Selecting an option Color, B/W etc. can cause dpi settings corruption (especially if the settings are in one line) so set '''dpi first'''. Make sure if Preview is set or not.
In the '''Scan''' Tab, press Scan and the scanner will do its duty.
Be aware that nothing is saved to disk yet.
In the Save tab, change format JPEG, PNG or IFF DEEP. Tick incremental and base filename if necessary and then click the Save button. The image will now be saved to permanent storage.
The driver ignores a device if it is already bond to another USB class, rejects it from being usable. However, open Trident prefs, select your device and use the right mouse button to open. Select "NONE" to prevent poseidon from touching the device. Now save settings. It should always work now.
[[#top|...to the top]]
===Emulators===
==== Amiberry ====
==== Amiga Emu - Janus UAE ====
With Amibridge, AROS attempts to make the UAE emulator seem embedded within but it still is acting as an app
There is no dynarec m68k for each hardware that Aros supports or direct patching of motorola calls to AROS hardware accelerated ones unless the emulator has that included
Try starting Janus with a priority of -1 like this little script:
<pre>
cd sys:system/AmiBridge/emulator
changetaskpri -1
run janus-uae -f my_uaerc.config >nil:
cd sys:prefs
endcli
</pre>
This stops Janus hogging all the CPU time.
===Miscellaneous===
====Screensaver Blanker====
Most blankers on the amiga (i.e. aros) run as commodities (they are in the tools/commodities drawer). Double click on blanker.
Control is with an app called Exchange, which you need to run first (double click on app) or run QUIET sys:tools/commodities/Exchange >NIL: but subsequently can use (Cntrl Alt h).
Icon tool types (may be broken) or command line options
<pre>
seconds=number
</pre>
Once the timing is right then add the following to s:icaros-sequence or s:user-startup
e.g. for 5 minutes
run QUIET sys:tools/commodities/Blanker seconds=300 >NIL:
*[http://archives.aros-exec.org/index.php?function=showfile&file=graphics/screenblanker/gblanker.i386-aros.zip Garshneblanker] can make Aros unstable or slow. Certain blankers crashes in Icaros 2.0.x like Dragon, Executor.
*[ Acuario AROS version], the aquarium screen saver.
Startup: extras:acuariofv-aros/acuario
Kill: c:break name=extras:acuariofv-aros/acuario
Managed to start Acuario by the Executor blanker.
<pre>
cx_priority=
cx_popkey= ie CX_POPKEY="Shift F1"
cx_popup=Yes or No
</pre>
<pre>
Qualifier String Input Event Class
---------------- -----------------
"lshift" IEQUALIFIER_LSHIFT
"rshift" IEQUALIFIER_RSHIFT
"capslock" IEQUALIFIER_CAPSLOCK
"control" IEQUALIFIER_CONTROL
"lalt" IEQUALIFIER_LALT
"ralt" IEQUALIFIER_RALT
"lcommand" IEQUALIFIER_LCOMMAND
"rcommand" IEQUALIFIER_RCOMMAND
"numericpad" IEQUALIFIER_NUMERICPAD
"repeat" IEQUALIFIER_REPEAT
"midbutton" IEQUALIFIER_MIDBUTTON
"rbutton" IEQUALIFIER_RBUTTON
"leftbutton" IEQUALIFIER_LEFTBUTTON
"relativemouse" IEQUALIFIER_RELATIVEMOUSE
</pre>
<pre>
Synonym Synonym
String Identifier
------- ----------
"shift" IXSYM_SHIFT /* look for either shift key */
"caps" IXSYM_CAPS /* look for either shift key or capslock */
"alt" IXSYM_ALT /* look for either alt key */
Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del",
"up", "down", "right", "left", "f1", "f2", "f3", "f4", "f5",
"f6", "f7", "f8", "f9", "f10", "help".
</pre>
[[#top|...to the top]]
==== World Construction Set WCS (Version 2.031) ====
WCS is a fractal landscape software such as Scenery Animator, Vista Pro and Panorama. Open sourced February 2022, World Construction Set [https://3dnature.com/downloads/legacy-software/ legally and for free] and [https://github.com/AlphaPixel/3DNature c source].
Announced August 1994 this version dates from April 1996 developed by Gary R. Huber and Chris "Xenon" Hanson" from Questar
<pre>
Assign "WCSProjects:" "Volume:Dir/Dir/WCSProjects"
Assign "WCSFrames:" "Volume:Dir/Dir/WCSFrames"
</pre>
<pre>
Load projects .proj by accessing pull down menu Project -> Open then click on CanyonSunset.proj
OK to changing .par file and enlarge Status Log window to show what is happening
Render by pull down menu Modules -> Render with End equal 1 not 300 then click bottom middle button Render
</pre>
[https://www.youtube.com/watch?v=CxQDmf1ZWG0 Youtube walkthrough of above], [], [],
Also try working with the already built file ColoDemo - Then open with the drop-down menu: Project/Open, then WCSProject:ColoDemo.proj
Which allows you to use altimetric DEM files already included and Loading scene parameters from ColoDemo.par
Once this is done, save everything with a new name to start working exclusively on your project.
Then drop-down menu and select Save As ("NewName".proj name), then drop-down menu to open parameter and select Save All ( .par name)
After launching the software, there is a the Module Control Panel composed of five icons.
It is a dock type shortcut of the first few functions of the drop-down menu
*Database - Load (#?.proj), Append, Create, Edit, Save, Dir List (of WCSProject drawer),
*Data Ops - Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
*Map View - Database file Loader leading to Map View Control with option to the Database Editor
*Parameters - Editor for Motion, Color, Ecosystem, Clouds, Waves, management of altimeter files DEM, sclock settings etc
*Render - rendering terrain
These are more in the pull down menu but not in the dock
*Motion Editor
*Color Editor
*Ecosys Editor
Simple minimal workflow
*Load database (1st icon - 1st)
*Set parameters and save .par file (4th icon)
*Render scene (5th icon)
[https://www.youtube.com/watch?v=ZbTwwR2qcc4 Youtube], [],
<pre>
.proj new project name which creates a drawer of additional files
.binary array, ascii array .xyz , z buffer, DTED .dt0, vista 1990s dem, iff conversion
.Obj with .elev, .frd with .hdr maps, - digital elevation model (DEM) is a 3D representation of elevation data in various formats
USGS 7.5MinDEM,
.par
</pre>
Since for the time being no project is loaded, a query window indicates a procedural error when clicking on the rendering icon (right end of the bar). The menu is quite traditional; it varies according to the activity of the windows. To display any altimetric file in the "Mapview" (third icon of the panel), There are three possibilities:
* Loading of a demonstration project.
* The import of a DEM file, followed by texturing and packaging from the "Database-Editor" and the "Color-Editor".
* The creation of an altimetric file in WCS format, then texturing.
The altimeter file editing (display in the menu) is only made possible if the "Mapview" window is active.
The software is made up of many windows and won't be able to describe them all. Know that "Color-Editor" and the "Data-Editor" comprise sufficient functions for obtaining an almost real rendering quality. You have the possibility of inserting vector objects in the "Data-Editor" (creation of roads, railways, etc.)
The Map View (MapView) window
*Database - Objects and Topos
*View - Align, Center, Zoom, Pan, Move
*Draw - Maps and distance
*Object - Find, highlight, add points, conform topo, duplicate
*Motion - Camera, Focus, path, elevation
*Windows - DEM designer, Cloud (.cld) and wave (.wve) editor,
You will notice that by selecting this window and simply moving the pointer to various points on the map you will see latitude and longitude values change, along with the height.
Drop-down menu and Modules, then select MapView and change the width of the window with the map to arrange it in the best way on the screen. With the Auto button the center. Window that then displays the contents of my DEM file, in this case the Grand Canyon. MapView allows you to observe the shape of the landscape from above
ZOOM button
Press the Zoom button and then with the pointer position on a point on the map, press the left mouse button and then move to the opposite corner to circumscribe the chosen area and press the left mouse button again, then we will see the enlarged area selected on the map.
Would add that there is a box next to the Zoom button that allows the direct insertion of a value which, the larger it is, the smaller the magnification and the smaller the value, the stronger the magnification. At each numerical change you will need to press the DRAW button to update the view.
PAN button
Under Zoom you will find the PAN button which allows you to move the map at will in all directions by the amount you want. This is done by drawing a line in one direction, then press PAN and point to an area on the map with the pointer and press the left mouse button. At this point, leave it and move the pointer in one direction by drawing a line and press the left mouse button again to trigger the movement of the map on the screen (origin and end points). Do some experiments and then use the Auto button immediately below to recenter everything.
There are parameters such as TOPO, VEC to be left checked and immediately below one that allows different views of the map with the Style command (Single, Multi, Surface, Emboss, Slope, Contour), each with its own particularities to highlight different details.
Now you have the first basics to manage your project visually on the map. Close the MapView window and go further...
Let's start working on ECOSYSTEMS
If we select Emboss from the MapView Style command we will have a clear idea of how the landscape appears, realizing that it is a predominantly desert region of our planet. Therefore we will begin to act on any vegetation present and the appearance of the landscape.
With WCS we will begin to break down the elements of the landscape by assigning defined characteristics. It will be necessary to determine the classes of the ecosystem (Class) with parameters of Elevation Line (maximum altitude), Relative Elevation (arrangement on basins or convexities with respectively positive or negative parameters), Min Slope and Max Slope (slope). WCS offers the possibility of making ecosystems coexist on the same terrain with the UnderEco function, by setting a Density value.
Ecosys Ecosystem Editor
Let's open it from Modules, then Ecosys Editor. In the left pane you will find the list of ecosystems referring to the files present in our project. It will be necessary to clean up that box to leave only the Water and Snow landscapes and a few other predefined ones. We can do this by selecting the items and pressing the Remove button (be careful not for all elements the button is activated, therefore they cannot all be eliminated).
Once this is done we can start adding new ecosystems. Scroll through the various Unused and as soon as the Name item at the top is activated allowing you to write, type the name of your ecosystem, adding the necessary parameters.
<pre>
Ecosystem1: Name: RockBase Class: Rock Density: 80 MinSlope: 15 UnderEco: Terrain
Ecosystem2: Name: RockIncl Clss: Rock Density: 80 MinSlope: 30 UnderEco: Terrain
Ecosystem3: Name: Grass Class Low Veg Density: 50 Height: 1 Elev Line : 1500 Rel El Eff: 5
Max Slope: 10 – Min Slope: 0 UnderEco: Terrain
Ecosistema4: Name: Shrubs Class: Low Veg Density: 40 Height: 8 Elev Line: 3000
Rel El Eff: -2 Max Slope: 20 Min Slope : 5 UnderEco: Terrain
Ecosistema5: Name: Terrain Class: Ground Density: 100 UnderEco: Terrain
</pre>
Now we need to identify an intermediate ecosystem that guarantees a smooth transition between all, therefore we select as Understory Ecosystem the one called Terrain in all ecosystems, except Snow and Water .
Now we need to 'emerge' the Colorado River in the Canyon and we can do this by raising the sea level to 900 (Sea Level) in the Ecosystem called Water.
Please note that the order of the ecosystem list gives priority to those that come after. So our list must have the following order: Water, Snow, Shrubs, RockIncl, RockBase, Terrain. It is possible to carry out all movements with the Swap button at the bottom. To put order you can also press Short List. Press Keep to confirm all the work done so far with Ecosystem Editor.
Remember every now and then to save both the Project 'Modules/Save' and 'Parameter/Save All'
EcoModels are made up of .etp .fgp .iff8 for each model
Color Editor
Now it's time to define the colors of our scene and we can do this by going to Modules and then Color Editor. In the list we focus on our ecosystems, created first.
Let's go to the bottom of the list and select the first white space, assigning the name 'empty1', with a color we like and then we will find this element again in other environments... It could serve as an example for other situations!
So we move to 'grass' which already exists and assign the following colors: R 60 G 70 B50
<pre>
'shrubs': R 60 G 80 B 30
'RockIncl' R 110 G 65 B 60
'RockBase' R 110 G 80 B 80
' Terrain' R 150 G 30 B 30
<pre>
Now we can work on pre-existing colors
<pre>
'SunLight' R 150 G 130 B 130
'Haze and Fog' R 190 G 170 B 170
'Horizon' R 209 G 185 B 190
'Zenith' R 140 G 150 B 200
'Water' R 90 G 125 B 170
</pre>
Ambient R 0 G 0 B 0
So don't forget to close Color Editor by pressing Keep.
Go once again to Ecosystem Editor and assign the corresponding color to each environment by selecting it using the Ecosystem Color button. Press it several times until the correct one appears. Then save the project and parameters again, as done previously.
Motion Editor
Now it's time to take care of the framing, so let's go to Modules and then to Motion Editor. An extremely feature-rich window will open. Following is the list of parameters regarding the Camera, position and other characteristics:
<pre>
-Camera Altitude: 7.0
-Camera Latitude: 36.075
-Camera Longitude: 112.133
-Focus Attitude: -2.0
-Focus Latitude: 36.275
-Focus Longitude: 112.386
-Camera : 512 → rendering window
-Camera Y: 384 → rendering window
-View Arc: 80 → View width in degrees
-Sun Longitude: 172
-Sun Latitude: -0.9
-Haze Start: 3.8
-Haze Range: 78, 5
</pre>
As soon as the values shown in the relevant sliders have been modified, we will be ready to open the CamView window to observe the wireframe preview. Let's not consider all the controls that will appear.
Well from the Motion Editor if you have selected Camera Altitude and open the CamView panel, you can change the height of the camera by holding down the right mouse button and moving the mouse up and down. To update the view, press the Terrain button in the adjacent window. As soon as you are convinced of the position, confirm again with Keep. You can carry out the same work with the other functions of the camera, such as Focus Altitude...
Let's now see the next positioning step on the Camera map, but let's leave the CamView preview window open while we go to Modules to open the window at the same time MapView. We will thus be able to take advantage of the view from the other together with a subjective one.
From the MapView window, select with the left mouse button and while it is pressed, move the Camera as desired. To update the subjective preview, always click on Terrain.
While with the same procedure you can intervene on the direction of the camera lens, by selecting the cross and with the left button pressed you can choose the desired view. So with the pressure of Terrain I update the Preview. Possibly can enlarge or reduce the Map View using the Zoom button, for greater precision.
Also write that the circle around the cameras indicates the beginning of the haze, there are two types (haze and fog) linked to the altitude. Would also add that the camera height is editable through the Motion Editor panel.
The sun
Let's see that changing the position of the sun from the Motion Editor. Press the SUN button at the bottom right and set the time and the date. Longitude and latitude are automatically obtained by the program. Always open the View Arc command from the Motion Editor panel, an item present in the Parameter List box.
Once again confirm everything with Keep and then save again.
Animation
The animation part is not left-back and also occupies a window. The settings possibilities are enormous. A time line with dragging functions ("slide", "drag"...) comparable to that of LightWave completes this window.
A small window is available for positioning the stars as a function of a date, in order to vary the seasons and their various events (and yes...).
At the bottom of the "Motion-Editor", a "cam-view" function will give you access to a control panel. Different preview modes are possible. The rendering is also accessible through a window. No less than nine pages compose it. At this level, you will be able to determine the backup name of your images ("path"), the type of texture to be calculated, the resolution of the images, activate or deactivate functions such as the depth buffer ("zbuffer"), the blur, the background image, etc.
Once all these parameters have been set, all you have to do is click on the "Render" button.
For rendering go to Modules and then Render. Select the resolution, then under IMA select the name of the image. Move to FRA and indicate the level of fractal detail which of 4 is quite good. Then Keep to confirm and then reopen the window, pressing Render you will see the result. The image will be opened with any viewing program.
Strengths:
* Multi-window.
* Quality of rendering.
* Accuracy.
* Opening, preview and rendering on CyberGraphX screen.
* Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
* The "zbuffer" function.
Weaknesses:
* No OpenGL management
* Calculation time.
* No network computing tool.
====Writing CD / DVD - Frying Pan====
Can be backup DVDs (4GB ISO size limit due to use of FileInfoBlock), create audio cds from mp3's, and put .iso files on discs
If using for the first time - click Drive button and Device set to ata.device and unit to 0 (zero)
Click Tracks Button - Drive 1 - Create New Disc or Import Existing Disc Image (iso bin/cue etc.) - Session File open cue file
If you're making a data cd, with files and drawers from your hard drive, you should be using the ISO Builder.. which is the MUI page on the left. ("Data/Audio Tracks" is on the right).
You should use the "Data/Audio tracks" page if you want to create music cds with AIFF/WAV/MP3 files, or if you download an .iso file, and you want to put it on a cd.
Click WRITE Button - set write speed - click on long Write button
Examples
Easiest way would be to burn a DATA CD, simply go to "Tracks" page "ISO Builder" and "ADD" everything you need to burn.
On the "Write" page i have "Masterize Disc (DAO)", "Close Disc" and "Eject after Write" set.
One must not "Blank disc before write" if one uses a CDR
AUDIO CD from MP3's are as easy but tricky to deal with. FP only understands one MP3 format, Layer II, everything else will just create empty tracks
Burning bootable CD's works only with .iso files. Go to "Tracks" page and "Data/Audio Tracks" and add the .iso
====odf====
Every ODF file is a collection of several subdocuments within a package (ZIP file), each of which stores part of the complete document.
* content.xml – Document content and automatic styles used in the content.
* styles.xml – Styles used in the document content and automatic styles used in the styles themselves.
* meta.xml – Document meta information, such as the author or the time of the last save action.
* settings.xml – Application-specific settings, such as the window size or printer information.
To read document follow these steps:
* Extracting .ods file.
* Getting content.xml file (which contains sheets data).
* Creating XmlDocument object from content.xml file.
* Creating DataSet (that represent Spreadsheet file).
* With XmlDocument select “table:table” elements, and then create adequate DataTables.
* Parse child’s of “table:table” element and fill DataTables with those data.
* At the end, return DataSet and show it in application’s interface.
To write document follow these steps:
* Extracting template.ods file (.ods file that we use as template).
* Getting content.xml file.
* Creating XmlDocument object from content.xml file.
* Erasing all “table:table” elements from the content.xml file.
* Reading data from our DataSet and composing adequate “table:table” elements.
* Adding “table:table” elements to content.xml file.
* Zipping that file as new .ods file.
XLS file format
The XLS file format contains streams, substreams, and records.
These sheet substreams include worksheets, macro sheets, chart sheets, dialog sheets, and VBA module sheets.
All the records in an XLS document start with a 2-byte unsigned integer to specify Record Type (rt), and another for Count of Bytes (cb). A record cannot exceed 8224 bytes. If larger than the rest is stored in one or more continue records.
* Workbook stream
**Globals substream
***BoundSheet8 record - info for Worksheet substream i.e. name, location, type, and visibility. (4bytes the lbPlyPos FilePointer, specifies the position in the Workbook stream where the sheet substream starts)
**Worksheet substream (sheet) - Cell Table - Row record - Cells (2byte=row 2byte=column 2byte=XF format)
***Blank cell record
***RK cell record 32-bit number.
***BoolErr cell record (2-byte Bes structure that may be either a Boolean value or an error code)
***Number cell record (64-bit floating-point number)
***LabelSst cell record (4-byte integer that specifies a string in the Shared Strings Table (SST). Specifically, the integer corresponds to the array index in the RGB field of the SST)
***Formula cell record (FormulaValue structure in the 8 bytes that follow the cell structure. The next 6 bytes can be ignored, and the rest of the record is a CellParsedFormula structure that contains the formula itself)
***MulBlank record (first 2 bytes give the row, and the next 2 bytes give the column that the series of blanks starts at. Next, a variable length array of cell structures follows to store formatting information, and the last 2 bytes show what column the series of blanks ends on)
***MulRK record
***Shared String Table (SST) contains all of the string values in the workbook.
ACCRINT(), ACCRINTM(), AMORDEGRC(), AMORLINC(),
COUPDAYBS(), COUPDAYS(), COUPDAYSNC(), COUPNCD(), COUPNUM(), COUPPCD(),
CUMIPMT(), CUMPRINC(),
DB(), DDB(), DISC(),
DOLLARDE(), DOLLARFR(),
DURATION(), EFFECT(), FV(), FVSCHEDULE(),
INTRATE(), IPMT(), IRR(), ISPMT(), MDURATION(), MIRR(), NOMINAL(), NPER(), NPV(),
ODDFPRICE(), ODDFYIELD(), ODDLPRICE(), ODDLYIELD(),
PMT(), PPMT(), PRICE(), PRICEDISC(), PRICEMAT(), PV(), RATE(),
RECEIVED(), SLN(), SYD(), TBILLEQ(), TBILLPRICE(), TBILLYIELD(),
VDB(), XIRR(), XNPV(), YIELD(), YIELDDISC(), YIELDMAT(),
<pre>
</pre>
<pre>
</pre>
<pre>
</pre>
{{BookCat}}
7f1gaogsksgfcttju0jmbydiy23l85u
4672145
4672140
2026-09-24T14:08:36Z
Jeff1138
301139
4672145
wikitext
text/x-wiki
==Introduction==
[[#Graphical Image Editing Art]]
[[#Office Application]]
[[#Audio]]
[[#Misc Application]]
[[#Games & Emulation]]
[[#Application Guides]]
[[#top|...to the top]]
[[#top|...to the top]]
Most apps can be opened on the Workbench (aka publicscreen pubscreen) which is the default display option but can offer a custom one set to your configurations (aka custom screen mode promotion). These custom ones tend to stack so the possible use of A-M/A-N method of switching between full screens and the ability to pull down screens as well
If you are interested in creating or porting new software, see [http://en.wikibooks.org/wiki/Aros/Developer/Docs here]
{| class="wikitable sortable"
|-
!width:30%;|Internet Applications
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Web Online Browser [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=network/browser Amelinium], Odyssey 2.0, [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0], [],
|<!--Amiga OS-->[https://juen.in/ Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, [https://github.com/zapek/Voyager Voyager], [https://github.com/amigazen/aweb3/ AWeb 3.6 src], [https://github.com/matjam/aweb AWeb Src], [http://aminet.net/package/comm/www/NetSurf-m68k-sources Netsurf], [],
|<!--AmigaOS4-->[ Odyssey OWB], [ Timberwolf (Firefox port 2011)], [http://amigaworld.net/modules/newbb/viewtopic.php?forum=32&topic_id=32847 OWB-mui], [http://strohmayer.org/owb/ OWB-Reaction], IBrowse*, [http://os4depot.net/index.php?function=showfile&file=network/browser/aweb.lha AWeb], Voyager, [http://www.os4depot.net/index.php?function=browse&cat=network/browser Netsurf],
|<!--MorphOS-->Wayfarer, [http://fabportnawak.free.fr/owb/ Odyssey OWB], [ Netsurf], IBrowse*, AWeb, [],
|-
|<!--Sub Menu-->YouTube, Dailymotion website downloading videos audio [https://github.com/yt-dlp/yt-dlp yt-dlp], [https://clipgrab.org/ clipgrab],
|<!--AROS-->[], [https://blog.alb42.de/amitube/ Amitube],
|<!--Amiga OS-->[https://blog.alb42.de/amitube/ Amitube], [ smtube],
|<!--AmigaOS4-->[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|<!--MorphOS-->[ ytsearch], [https://blog.alb42.de/amitube/ Amitube], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->Old style E-mailing SMTP POP3 IMAP based
|<!--AROS-->Emailinium, [http://archives.arosworld.org/index.php?function=browse&cat=network/email SimpleMail], [http://sourceforge.net/projects/simplemail/files/ src], [https://github.com/jens-maus/yam YAM]
|<!--Amiga OS-->Emailinium, [http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC, ICB,
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/chat WookieChat], [https://sourceforge.net/projects/wookiechat/ Wookiechat src], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat AiRcOS], Jabberwocky,
|<!--Amiga OS-->[https://github.com/charabaruk/WookieChat Wookiechat], AmIRC
|<!--AmigaOS4-->Wookiechat
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Wookiechat], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 AmIRC],
|-
|<!--Sub Menu-->Instant Messaging IM like [https://github.com/BlitterStudio/amidon Hollywood lang based Mastodon client], BlueSky AT protocol, Facebook(TM), Twitter X (TM), Bitlbee IRC Gateway and others
|<!--AROS-->[https://github.com/kaffeine1/telegram-amiga telegram-amiga], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat jabberwocky],
|<!--Amiga OS-->[http://amitwitter.sourceforge.net/ AmiTwitter], CLIMM, SabreMSN, [https://sourceforge.net/projects/ajabberwocky/ jabberwocky],
|<!--AmigaOS4-->[http://amitwitter.sourceforge.net/ AmiTwitter], SabreMSN,
|<!--MorphOS-->[http://amitwitter.sourceforge.net/ AmiTwitter], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 PolyglotNG], SabreMSN,
|-
|<!--Sub Menu-->Torrents
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/p2p ArTorr],
|<!--Amiga OS-->
|<!--AmigaOS4-->CTorrent, Transmission
|<!--MorphOS-->MLDonkey, Beehive, [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Transmission], CTorrent,
|-
|<!--Sub Menu-->FTP
|<!--AROS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], MarranoFTP, [https://aminet.net/package/comm/tcp/wput-0.3.4c.i386-aros wput i386 c src]
|<!--Amiga OS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP, [https://aminet.net/package/comm/tcp/sana2-tftpclient sana2 tftpclient c src]
|<!--AmigaOS4-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|<!--MorphOS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Pftp], [http://aminet.net/package/comm/tcp/AmiFTP-1.935-OS4 AmiFTP],
|-
|<!--Sub Menu-->WYSIWYG Web Site Editor
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Internet Radio Streaming Audio [http://www.gnu.org/software/gnump3d/ gnump3d], [http://www.icecast.org/ Icecast2] Server (Broadcast) and Client (Listen), [ mpd], [http://darkice.sourceforge.net/ DarkIce], [http://www.dyne.org/software/muse/ Muse],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc], Mplayer (Icecast Client only),
|<!--Amiga OS-->[https://github.com/sandlbn/TuneFinder TuneFinder C Src], [https://github.com/sandlbn/TuneFinderMUI TuneFinderMUI], [http://amigazeux.net/anr/ AmiNetRadio], [https://github.com/boingball/MintAMP MintAMP], [],
|<!--AmigaOS4-->[http://www.tunenet.co.uk/ Tunenet],
|<!--MorphOS-->Mplayer, AmiNetRadio,
|-
|<!--Sub Menu-->VoIP (Voice over IP) with SIP Client (Session Initiation Protocol) or Asterisk IAX2 Clients Softphone (skype like)
|<!--AROS-->
|<!--Amiga OS-->AmiPhone with Speak Freely,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Weather Forecast
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ WeatherBar], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench AWeather], []
|<!--Amiga OS-->[http://amigazeux.net/wetter/ Wetter], [https://github.com/emartisoft/AmiWeatherForecasts AmiWeatherForecasts src],
|<!--AmigaOS4-->[http://os4depot.net/?function=showfile&file=utility/workbench/flipclock.lha FlipClock],
|<!--MorphOS-->[http://amigazeux.net/wetter/ Wetter],
|-
|<!--Sub Menu-->Street Road Maps Route Planning GPS Tracking
|<!--AROS-->[https://blog.alb42.de/programs/muimapparium/ MuiMapparium] [https://build.alb42.de/ Build of MuiMapp versions],
|<!--Amiga OS-->AmiAtlas*, UKRoutePlus*, [http://blog.alb42.de/ AmOSM],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://blog.alb42.de/programs/mapparium/ Mapparium],
|-
|<!--Sub Menu-->Clock and Date setting from the internet by network time protocol (NTP) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ old standard NIST Internet Time Servers],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync], [https://archives.arosworld.org/?function=showfile&file=utility/workbench/amitimekeeper.i386-aros.lha amitimekeeper with c src], [PiNTP], [],
|<!--Amiga OS-->ntpsync, [http://aminet.net/package/util/cdity/AmiTimeKeeper amitimekeeper], [http://aminet.net/comm/misc/netclock netclock], [https://aminet.net/package/comm/net/sntp sntp], [http://aminet.net/package/util/time/ScreenTime ScreenTime],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->RSS
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/Team-Boingo/AmiRSS AmiRSS src]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->AI
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/murinsel/AmigaAI Claude], [https://github.com/geekychris/amiga_mcp AI on host machine], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->BBS
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Graphical Image Editing Art==
{| class="wikitable sortable"
|-
!width:30%;|Image Editing
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Pixel Raster Artwork [https://github.com/LibreSprite/LibreSprite LibreSprite based on GPL aseprite], [https://github.com/abetusk/hsvhero hsvhero], [],
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/ZunePaint/ ZunePaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit LunaPaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit GrafX2], [ LodePaint needs OpenGL],
|<!--Amiga OS-->[http://www.amigaforever.com/classic/download.html PPaint], GrafX2, [https://github.com/grovdata/Amiga_Sources/blob/master/software.md DeluxePaint], [http://www.amiforce.de/perfectpaint/perfectpaint.php PerfectPaint], Zoetrope, Brilliance2*,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/edit LodePaint], GrafX2,
|<!--MorphOS-->Sketch, Pixel*, GrafX2, [http://morphos.lukysoft.cz/en/vypis.php?kat=3 LunaPaint]
|-
|<!--Sub Menu-->Image viewing
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LookHere], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LoView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer PicShow] , [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--Amiga OS-->PicShow, PicView, Photoalbum,
|<!--AmigaOS4-->WarpView, PicShow, flPhoto, Thumbs, [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album]
|-
|<!--Sub Menu-->Photography retouching / Image Manipulation like Photoshop(tm)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOEffects],
|<!--Amiga OS-->[ Tecsoft Video Paint aka TVPaint], Photogenics*, ArtEffect*, ImageFX*, XiPaint, fxPaint, ImageMasterRT, Opalpaint,
|<!--AmigaOS4-->WarpView, flPhoto, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit Photocrop]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], ImageFX*,
|-
|<!--Sub Menu-->Manage RAW picture folder galleries like Darktable, RAWtherapy, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Graphic Format Converter - ICC profile support sRGB, Adobe RGB, XYZ and linear RGB
|<!--AROS-->
|<!--Amiga OS-->GraphicsConverter, ImageStudio, [http://www.coplabs.org/artpro.html ArtPro]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Thumbnail Generator [],
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=utility/shell Thumbnail Generator]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Icon Editor
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/iconedit Archives], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench Icon Toolbox],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/iconedit IconEditor]
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Pixel Art Animation
|<!--AROS-->Lunapaint
|<!--Amiga OS-->PPaint, AnimatED, Scala*, GoldDisk MovieSetter*, Walt Disney's Animation Studio*, ProDAD*, [https://github.com/historicalsource/DeluxePaint DeluxePaint src], Brilliance
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 Titler]
|-
|<!--Sub Menu-->2D SVG based MovieSetter type
|<!--AROS-->
|<!--Amiga OS-->MovieSetter*, Fantavision*
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Morphing
|<!--AROS-->[ GLMorph]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Cad (qcad->LibreCAD, etc.)
|<!--AROS-->
|<!--Amiga OS-->Xcad, MaxonCAD
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Cad like FreeCad, BRL-CAD, OpenSCAD, AvoCADo, etc. using dxf, obj (vertices), blend,
|<!--AROS-->
|<!--Amiga OS-->XCad3d*, DynaCADD*, [https://aminet.net/package/gfx/3d/Cycas178_EN Cycas]*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Model Rendering of glft (json) gbl (png jpg), usdz (USD files with materials, textures, and animations), FBX Filmbox is a proprietary Autodesk format,
|<!--AROS-->POV-Ray
|<!--Amiga OS-->[http://www.discreetfx.com./amigaproducts.html CINEMA 4D]*, POV-Ray, Lightwave3D*, Real3D*, Caligari24*, Reflections/Monzoom*, [https://github.com/privatosan/RayStorm Raystorm src], Tornado 3D, [https://github.com/AlphaPixel/Eric-Graham-1987-Juggler-Raytracer-1.0 Eric-Graham-1987-Juggler-Raytracer-1.0]
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=graphics/convert/ 3doc.i386-aros], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen grabbing display
|<!--AROS-->[ Screengrabber], [http://archives.arosworld.org/index.php?function=browse&cat=utility/misc snapit], [http://archives.arosworld.org/index.php?function=browse&cat=video/record screen recorder], []
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Grab graphics music from apps [https://github.com/Malvineous/ripper6 ripper6], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Manage metadata of images [https://github.com/exiv2/exiv2 exiv2], [ exif], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Office Application==
{| class="wikitable sortable"
|-
!width:30%;|Office
!width:10%;|AROS (x86)
!width:10%;|[http://en.wikipedia.org/wiki/Amiga_software Commodore-Amiga OS 3.1] (68k)
!width:10%;|[http://en.wikipedia.org/wiki/AmigaOS_4 Hyperion OS4] (PPC)
!width:10%;|[http://en.wikipedia.org/wiki/MorphOS MorphOS] (PPC)
|-
|<!--Sub Menu-->Office Suite
|<!--AROS-->
|<!--Amiga OS-->[ Softwood Final Office], [ Wordworth Office], [ Digita Office], [ The Works!], [ Europress Mini Office], [], [ Papyrus Office Demo],
|<!--AmigaOS4-->
|<!--MorphOS-->[ Papyrus Office],
|-
|<!--Sub Menu-->Word-processing
|<!--AROS-->[https://finalwriter.godaddysites.com/ Final Writer 7*], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1995&rowstart=20&pid=12668#post_12668 Slovo], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [],
|<!--AmigaOS-->[ Softwood FinalCopy II*], Haage AmigaWriter*, Digita WordWorth*, Softwood FinalWriter*, Micro-Systems Excellence 3*, Arnor Protext, Rashumon, [ InterWord], [ KindWords], [WordPerfect], [ New Horizons Flow], [ CygnusEd Pro], [ Micro-systems Scribble],
|<!--AmigaOS4-->AbiWord, [ CinnamonWriter],
|<!--MorphOS-->[ Cinnamon Writer], [http://www.meta-morphos.org/viewtopic.php?topic=1246&forum=53 scriba], [http://morphos.lukysoft.cz/en/index.php Papyrus Office],
|-
|<!--Sub Menu-->Spreadsheets
|<!--AROS-->[https://blog.alb42.de/programs/leu/ Leu], [https://archives.arosworld.org/index.php?function=browse&cat=office/spreadsheet ],
|<!--AmigaOS-->[https://aminet.net/package/biz/spread/ignition-src Ignition Src 1.3], [MaxiPlan 500 Plus], [OXXI Plan/IT v2.0 Speadsheet], [ Superplan], [ Creative Developments TurboCalc], [ ProCalc], [ InterSpread], [Digita DGCalc], [ Gold Disk Advantage], [ Micro-systems Analyze!]
|<!--AmigaOS4-->Gnumeric, [https://ignition-amiga.sourceforge.net/ Ignition],
|<!--MorphOS-->[ ignition], [http://morphos.lukysoft.cz/en/vypis.php Papyrus Office],
|-
|<!--Sub Menu-->Presentations
|<!--AROS-->[http://www.hollywoood-mal.com/ Hollywood]*,
|<!--Amiga OS-->[http://www.hollywoood-mal.com/ Hollywood]*, [https://github.com/evaneykelen/mediapoint-amiga MediaPoint C and asm], PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, [https://sourceforge.net/projects/beebase/ BeeBase], Datastore, FinalData*, AmigaBase, Fiasco, Twist2*, [Digita DGBase], [],
|<!--AmigaOS4-->BeeBase, SQLite,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=6 BeeBase],
|-
|<!--Sub Menu-->PDF Viewing and editing digital signatures
|<!--AROS-->[https://github.com/tomaszstaniak/aros-foliopdf aros-foliopdf version of mupdf], [http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Note Taking markdown support like Obsidian like, joplin, OneNote, EverNotes, xournalpp, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Study and analyse, collect, organize, annotate, cite, and share
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PIM Personal Information Manager - Day Diary Planner Calendar App Filofax like
|<!--AROS-->[ ], [ ], [ ],
|<!--Amiga OS-->Digita Organiser*, On The Ball, Everyday Organiser, [ Contact Manager],
|<!--AmigaOS4-->AOrganiser,
|<!--MorphOS-->[http://polymere.free.fr/orga_en.html PolyOrga],
|-
|<!--Sub Menu-->Accounting
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/misc ETB], LoanCalc, [ ], [ ], [ ],
|[ Digita Home Accounts2], Accountant, Small Business Accounts, Account Master, [ Amigabok],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Project Management Research
|<!--AROS-->
|<!--Amiga OS-->SuperGantt, SuperPlan,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Desktop
|<!--AROS-->Wanderer, Scalos, Workbook, DOpus5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[https://github.com/zapek/Ambient Ambient Src]
|-
|<!--Sub Menu-->System Wide Search
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility/filetool Finder], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Wide Dictionary - multilingual [http://sourceforge.net/projects/babiloo/ Babiloo], [http://code.google.com/p/stardict-3/ StarDict],
|<!--AROS-->[ ],
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System wide Thesaurus - multi lingual
|<!--AROS-->[ ],
|Kuma K-Roget*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Sticky Desktop Notes (post it type)
|<!--AROS-->[http://aminet.net/package/util/wb/amimemos.i386-aros AmiMemos], [https://aminet.net/package/util/wb/amimemos.src-aros AmiMemos Src], [],
|<!--Amiga OS-->[http://aminet.net/package/util/wb/StickIt-2.00 StickIt v2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DTP Desktop Publishing
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOPublisher],
|<!--Amiga OS-->[http://pagestream.org/ Pagestream]*, Professional Pro Page*, Saxon Publisher, Pagesetter, PenPal,
|<!--AmigaOS4-->[http://pagestream.org/ Pagestream]*
|<!--MorphOS-->[http://pagestream.org/ Pagestream]*
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers, [https://github.com/bohunamiga/MintPRINT MintPRINT AirPrint IPP], [ Ghostscript], [],
|<!--Amiga OS-->[https://github.com/boingball/MintPRINT MintPRINT IPP], [https://github.com/Andiweli/AmiAirprint AmiAirprint], [http://www.irseesoft.de/tp_what.htm TurboPrint]*, [ GutenPrint], [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR], [], [],
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included, [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR],
|-
|<!--Sub Menu-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*, [https://github.com/boingball/MintSCAN MintSCAN],
|<!--AmigaOS4-->SCANdal (Sane)
|<!--MorphOS-->SCANdal
|-
|<!--Sub Menu-->OCR
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/convert gOCR]
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos-files.net/categories/office/text Tesseract]
|-
|<!--Sub Menu-->Text Editing
|<!--AROS-->Jano Editor (already installed as Editor), [http://archives.arosworld.org/index.php?function=browse&cat=development/edit EdiSyn], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate], [https://archives.arosworld.org/index.php?function=browse&cat=development/edit Vim], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd] [https://github.com/vidarh/FrexxEd src], [ NoWinEd],
|<!--Amiga OS-->[https://aminet.net/package/text/edit/TurboText20 TurboText20 ttx], Annotate, MicroGoldED/CubicIDE*, CygnusED*, Protext*, NoWinED,
|<!--AmigaOS4-->Notepad, Annotate, CygnusED*, NoWinED,
|<!--MorphOS-->MorphOS ED, NoWinED, GoldED/CubicIDE*, CygnusED*, Annotate,
|-
|<!--Sub Menu-->Office Fonts [http://sourceforge.net/projects/fontforge/files/fontforge-source/ Font Designer]
|<!--AROS-->[ ], [ ],
|<!--Amiga OS-->TypeSmith*, SaxonScript (GetFont Adobe Type 1),
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Drawing Vector
|<!--AROS-->[http://sourceforge.net/projects/amifig/ ZuneFIG previously AmiFIG], [https://github.com/serk118/designworks-aros designworks aros 64bit]
|<!--Amiga OS-->Drawstudio*, ProVector*, ArtExpression*, Professional Draw*, AmiFIG, MetaView, [https://gitlab.com/amigasourcecodepreservation/designworks Design Works Src], [],
|<!--AmigaOS4-->MindSpace, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit amifig],
|<!--MorphOS-->SteamDraw, [http://aminet.net/package/gfx/edit/amifig amiFIG],
|-
|<!--Sub Menu-->video conferencing (jitsi)
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->source code hosting
|<!--AROS-->Gitlab,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Remote Desktop (server)
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/VNC_Server ArosVNCServer],
|<!--Amiga OS-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC], [http://dspach.free.fr/amiga/avnc/index.html AVNC]
|<!--AmigaOS4-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC]
|MorphVNC, vncserver
|-
|<!--Sub Menu-->Remote Desktop (client) login and connect to another machine
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/VNC_Client/ ArosVNC], [http://archives.arosworld.org/index.php?function=browse&cat=network/misc rdesktop],
|<!--Amiga OS-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://dspach.free.fr/amiga/vva/index.html VVA], [http://www.hd-zone.com/ RDesktop]
|<!--AmigaOS4-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|-
|<!--Sub Menu-->notifications
|<!--AROS-->
|<!--Amiga OS-->Ranchero
|<!--AmigaOS4-->Ringhio
|<!--MorphOS-->MagicBeacon
|-
|<!--Sub Menu-->Biometric facial logins and fingerprint security features
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Audio==
{| class="wikitable sortable"
|-
!width:30%;|Audio
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing playback Audio like MP3, [https://github.com/chrg127/gmplayer NSF], [https://github.com/kode54/lazyusf miniusf .usflib] [https://gitlab.com/kode54/psflib with pfslib], [], [], etc
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ HarmonyPlayer hp], [http://www.a500.org/downloads/audio/index.xhtml playcdda] CDs, [ WildMidi Player], [https://bszili.morphos.me/ UADE mod player], [], [ RNOTunes], [ mp3Player], [],
|<!--Amiga OS-->AmiNetRadio, AmigaAmp, playOGG, [https://codeberg.org/tygre/amimodradio amimodradio]
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX], [ Samplitude],
|<!--AmigaOS4-->[https://sourceforge.net/projects/hd-rec/ HD-Rec], AmiSoundED, [http://os4depot.net/?function=showfile&file=audio/record/audioevolution4.lha Audio Evolution 4]
|[http://www.hd-rec.de/HD-Rec/index.php?site=home HD-Rec],
|-
|<!--Sub Menu-->Editing Tracker Music
|<!--AROS-->[https://github.com/hitchhikr/protrekkr Protrekkr], [ Schism Tracker], [http://archives.arosworld.org/index.php?function=browse&cat=audio/tracker MilkyTracker], [http://www.hivelytracker.com/ HivelyTracker], [ Radium in AROS already], [http://www.a500.org/downloads/development/index.xhtml libMikMod],
|<!--Amiga OS-->MilkyTracker, HivelyTracker, DigiBooster, Octamed SoundStudio, [https://github.com/elindstrom/soundtracker soundtracker],
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and musical notes on manuscript [https://github.com/ratchov/midish midish] midi sequencer
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes], [], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction Set DMCS2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src] [https://github.com/kas1e/midi-sequencer-amigaos/tree/master/HornyGCC HornyGCC OS4 src] [https://github.com/capehill/midi-sequencer-amigaos Horny OS4 fork src] [https://www.amigans.net/modules/newbb/viewtopic.php?start=0&topic_id=8143&order=ASC&status=&mode=0 OS4 thread], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator], [https://github.com/royaltm/Amiga-midiIn Amiga-midiIn], [ Aegis Sonix 2.0]
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [https://github.com/gooofy/freeaction Horny OS4 src fork], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[ Advanced AHI Recorder all], [https://archives.arosworld.org/index.php?function=browse&cat=audio/record Audio Evolution 4], [http://www.imica.net/SitePortalPage.aspx?siteid=1&did=162 Quick Record], [https://archives.arosworld.org/index.php?function=browse&cat=audio/misc SOX to get AIFF 16bit files], [https://github.com/aros-development-team/AROS/tree/master/workbench/tools/AHIRecord AHIRecord],
|<!--Amiga OS-->[https://aminet.net/package/mus/edit/AudioEvolution3_src Audio Evolution 3 c src], [ Samplitude]*, Audiomaster IV*,
|<!--AmigaOS4-->[https://github.com/timoinutilis/phonolith-amigaos phonolith c src], HD-Rec, Audio Evolution 4,
|<!--MorphOS-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Audio Evolution 4,
|-
|<!--Sub Menu-->Audio Processing like easyeffects so having limiter, compressor, convolver, equalizer and auto volume and many other plugins
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility IsoTools], [https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [ MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|<!--MorphOS-->[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|<!--AROS-->Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|<!--MorphOS-->Lame,
|-
|<!--Sub Menu-->MP3 v1 and v2 Tagger
|<!--AROS-->id3ren (v1), [http://archives.arosworld.org/index.php?function=browse&cat=audio/edit mp3info],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|
|-
|<!--Sub Menu-->Audio Convert
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc Sox], [],
|<!--Amiga OS-->[http://aminet.net/package/mus/misc/SoundBox SoundBox], [http://aminet.net/package/mus/misc/SoundBoxKey SoundBox Key], [http://aminet.net/package/mus/edit/SampleE SampleE], sox
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DJ mixing jamming
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/djh0ffman/PT1210 Hoffman PT1210 DJ tracker], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Radio Automation Software [http://www.rivendellaudio.org/ Rivendell], [http://code.campware.org/projects/livesupport/report/3 Campware LiveSupport], [http://www.sourcefabric.org/en/airtime/ SourceFabric AirTime], [http://www.ohloh.net/p/mediabox404 MediaBox404],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speakers Audio Sonos Mains AC networked wired controlled
*2005 ZP100 with ZP80
*2008 Zoneplayer ZP120 (multi-room wireless amp) ZP90 receiver only with CR100 controller,
*2009 ZonePlayer S5,
*2010 BR100 wireless Bridge (no support),
*2011 Play:3
*2013 Bridge (no support), Play:1,
*2016 Arc, Play:1,
*Beam (Gen 2), Playbar, Ray, Era 100, Era 300, Roam, Move 2,
*Sub (Gen 3), Sub Mini, Five, Amp S2
|<!--AROS-->SonosController
|<!--Amiga OS-->SonosController
|<!--AmigaOS4-->SonosController
|<!--MorphOS-->SonosController
|-
|<!--Sub Menu-->Smart Speakers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Video Creativity and Production==
{| class="wikitable sortable"
|-
!width:30%;|Video
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing Video
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ VAMP], [http://www.a500.org/downloads/video/index.xhtml CDXL player], [http://www.a500.org/downloads/video/index.xhtml IffAnimPlay], [],
|<!--Amiga OS-->Frogger*, AMP2, MPlayer, RiVA*, MooViD*,
|<!--AmigaOS4-->DvPlayer, MPlayer
|<!--MorphOS-->MPlayer, Frogger, AMP2, VLC
|-
|<!--Sub Menu-->Streaming Video and game streaming like OBS studio, Parsec, [https://github.com/lizardbyte/sunshine sunshine], [https://github.com/moonlight-stream/moonlight-qt moonlight], etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Playing DVD
|<!--AROS-->[http://a-mc.biz/ AMC]*, Mplayer
|<!--Amiga OS-->AMP2, Frogger
|<!--AmigaOS4-->[http://a-mc.biz/ AMC]*, DvPlayer*, AMP2,
|<!--MorphOS-->Mplayer
|-
|<!--Sub Menu-->Screen Recording
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/record Screenrecorder], [ ], [ ], [ ], [ ],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Screenrecorder,
|-
|<!--Sub Menu-->Create Edit Individual Video - Amiga like OSs have no pro NLE
|<!--AROS-->[ Mencoder], [ Quick Videos], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit AVIbuild], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/misc FrameBuild], FFMPEG,
|<!--Amiga OS-->[ MainConcept Mainactor Broadcast*], [http://en.wikipedia.org/wiki/Video_Toaster Video Toaster*] with [https://discreetfx.com/openvideotoaster.html some c src], MacroSystem MovieShop 4.3*, proDAD Adorage*, [ IOSpirit VHI studio]*, [Gold Disk ShowMaker], [],
|<!--AmigaOS4-->FFMpeg/GUI
|<!--MorphOS-->Blender, Mencoder, FFmpeg
|-
|<!--Sub Menu-->Subtitle editor
|<!--AROS-->[https://aminet.net/package/text/edit/Slarti_Arosx86ABIv0 Slarti_Arosx86ABIv0], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->IP-based video production workflows with High Dynamic Range (HDR), 10-bit color collaborative NDI,
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Blogging like Lemmy or kbin
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR face recognition for Vtubers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting Live2D models with Cubism type editor or [https://github.com/AyagamiDev/ayagami ayagami] like with zipped moc3 with model metadata (model3, cdi3)
<pre>
Model data (cmo3)
Basic motions (can3)
Background image (png)
Set of files for embedding (runtime folder)
• Model data (moc3)
• Motion data (motion3.json)
• Model settings file (model3.json)
• Physics settings file (physics3.json)
• Display auxiliary file (cdi3.json)
</pre>
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting chatters .VRML models - standardized 3D file format for VR avatars
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->V-tubers V-tubing like Vseeface with Openseeface tracker or Vpuppr (virtual puppet project) for online live 2d / 3d art models rigging rigged LIV
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Misc Application==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->File Management
|<!--AROS-->DOpus4, [https://github.com/BlitterStudio/dopus5 DOpus Magellan aka DOpus 5], [ Scalos], [ Diskmaster],
|<!--Amiga OS-->DOpus2, DOpus 4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], Filer, AmiDisk
|<!--MorphOS-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->[https://arosarchives.os4depot.net/index.php?function=browse&cat=utility md5sum], [https://arosarchives.os4depot.net/index.php?function=browse&cat=utility/filetool asum], [http://archives.arosworld.org/index.php?function=browse&cat=utility/filetool workpar2] (PAR2), [http://zakalwe.fi/~shd/foss/cksfv/files/ compile cksfv from website],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Par2,
|-
|Application Installer
|<!--AROS-->[], [ InstallerNG],
|<!--Amiga OS-->InstallerNG, Grunch,
|<!--AmigaOS4-->Jack
|<!--MorphOS-->Jack
|-
|<!--Sub Menu-->Compression archiver [https://github.com/FS-make-simple/paq9a paq9a], [],
|<!--AROS-->XAD system is a toolkit designed for handling various file and disk archiver
|<!--Amiga OS-->
|<!--AmigaOS4-->[https://aminet.net/package/util/pack/decrunchmania_os4 Crunchmania CrM2 depacker],
|<!--MorphOS-->
|-
|<!--Sub Menu-->Binary Hexadecimal Editor
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/edit Zaphod], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter Disk Management
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [ HDToolBox]
|<!--Amiga OS-->[https://github.com/stefanskotte/hdpart hdpart], [https://github.com/ChuckyGang/AmiPart AmiPart],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair and backups
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS-->[https://aminet.net/package/disk/bakup/quarterback_src Quarterback Tools C and asm src], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Disk check, integrity and history [https://github.com/smartmontools/smartmontools smart tools], [],
|<!--AROS-->
|<!--Amiga OS-->[],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Multiple File renaming
|<!--AROS-->DOpus 4 or 5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Anti Virus
|<!--AROS-->
|<!--Amiga OS-->VChecker,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Random Wallpaper Desktop changer [ DOpus5], [ Scalos],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Alarm Clock, Timer, Stopwatch, Countdown
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench DClock], [http://aminet.net/util/time/AlarmClockAROS.lha AlarmClock], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 2==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->C/C++ IDE Integrated Development
|<!--AROS-->[https://sourceforge.net/projects/aidea/ AIDEa], [ Murks], [],
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, [ StormC], [https://github.com/jens-maus/amide amide], [],
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*,
|-
|<!--Sub Menu-->C/C++ Text Editors
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate] with [https://www.onyxsoft.se/files/annotate_src.lha src],
|<!--Amiga OS-->[ Protext], [ CED], [],
|<!--AmigaOS4-->
|<!--MorphOS-->[https://www.onyxsoft.se/annotate.html Annotate],
|-
|<!--Sub Menu-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->BASIC Computer Language
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/language Basic4SDL], [ Ace Basic], [ X-AMOS], [SDLBasic], [ Alvyn],
|<!--Amiga OS-->[http://www.amiforce.de/main.php Amiblitz 3] with [https://github.com/AmiBlitz/AmiBlitz3 Asm src], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro] with [https://github.com/AmiDARK/AmosProfessionalUnity-Official-Releases Asm src], [http://aminet.net/package/dev/basic/ace24dist ACE Basic], [https://github.com/gooofy/aqb aqb], [],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/], [https://github.com/kermitfrog/Amiga-Re-Engineering Rust, Ghidra and FS-UAE],
|<!--AROS-->
|<!--Amiga OS-->[https://bitbucket.org/rhinoid/convert68000toc/src/main/ convert m68k seka asm-one to c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Gui Creators
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/guitool MuiBuilder],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[ MuiBuilder],
|-
|<!--Sub Menu-->Catalog .cd .ct Custom App Language Editors
|<!--AROS-->FlexCat, [https://archives.arosworld.org/index.php?function=browse&cat=utility Flexcat GUI], [],
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|<!--MorphOS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->Cross Development
|<!--AROS-->[], [],
|<!--Amiga OS-->[https://github.com/geekychris/amiga_mcp amiga_mcp], [https://github.com/mbergmann-sh/AmigaED4-IDE AmigaED4-IDE], [https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/ Turbo Rascal], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Misc Application 3==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Terminals Shells CLIs
|<!--AROS-->[https://tomaszstaniak.com/aros-term/ aros-term], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->OSK On Screen Keyboard
|<!--AROS-->[],
|<!--Amiga OS-->[https://aminet.net/util/wb/OSK.lha OSK]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Magnifier Magnifying Glass Magnification
|<!--AROS-->[http://www.onyxsoft.se/files/zoomit.lha ZoomIT],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Comic Book CBR CBZ format reader viewer
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comics], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comicon], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Reader
|<!--AROS-->[https://blog.alb42.de/programs/#legadon Legadon EPUB],[]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Converter
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Text to Speech tts [https://github.com/JonathanFly/bark-installer Bark], [],
|<!--AROS-->[ Echo " " >SPEAK:A1 inbuilt], [http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator], [https://github.com/sidick/narrator.wyoming narrator.wyoming], [],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=search&tool=simple FLite]
|<!--MorphOS-->[http://se.aminet.net/pub/aminet/mus/misc/ FLite]
|-
|<!--Sub Menu-->Speech Voice Recognition Dictation - [http://sourceforge.net/projects/cmusphinx/files/ CMU Sphinx], [http://julius.sourceforge.jp/en_index.php?q=en/index.html Julius], [http://www.isip.piconepress.com/projects/speech/index.html ISIP],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speech Voice Changer [], [], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Display Blanker screensaver
|<!--AROS-->Blanker Commodity (built in), [https://archives.arosworld.org/index.php?function=browse&cat=graphics/screenblanker GarshneBlanker], [http://sourceforge.net/projects/gblanker/ GBlanker Src], [],
|<!--Amiga OS-->MultiCX,
|<!--AmigaOS4-->
|<!--MorphOS-->ModernArt Blanker,
|-
|<!--Sub Menu-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 4==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Fractals mandelbrot, etc
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/misc],
|<!--Amiga OS-->ZoneXplorer,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Landscape Rendering
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/raytrace WCS World Construction Set],
|<!--Amiga OS-->[ Vista Pro], [http://en.wikipedia.org/wiki/World_Construction_Set World Construction Set]
|<!--AmigaOS4-->[ WCS World Construction Set],
|<!--MorphOS-->[ WCS World Construction Set],
|-
|<!--Sub Menu-->Astronomy [https://sourceforge.net/projects/skychart/ skychart freepascal], [], [],
|<!--AROS-->[ Digital Almanac (ABIv0 only)],
|<!--Amiga OS-->[http://aminet.net/search?query=planetarium Aminet search], [http://aminet.net/misc/sci/DA3V56ISO.zip Digital Almanac], [https://aminet.net/package/misc/sci/da3sourceV58 Src c V58], [ Galileo renamed to Distant Suns]*, [],
|<!--AmigaOS4-->[http://sourceforge.net/projects/digital-almanac/ Digital Almanac], Distant Suns*, [http://www.digitaluniverse.org.uk/ Digital Universe]*,
|<!--MorphOS-->[http://www.aminet.net/misc/sci/da3.lha Digital Almanac], [http://www.aminet.net/package/misc/sci/da3-mos-src Src c V56],
|-
|<!--Sub Menu-->Astrology [https://sourceforge.net/projects/skylendar/ skylendar], [https://github.com/CruiserOne/Astrolog Astrolog], [https://www.astrolog.org/astrolog/astfile.htm Astrology alt site], [https://saravali.github.io/download.html Maitreya], [https://github.com/alamahant/Asteria Asteria],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Genealogy History Family Tree Ancestry Records (FreeBMD, FreeREG, and FreeCEN file formats or GEDCOM GenTree)
|<!--AROS-->
|<!--Amiga OS--> [ Origins], [ Your Family Tree], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Languages
|<!--AROS-->
|<!--Amiga OS-->Fun School,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Mathematics ([http://www-fourier.ujf-grenoble.fr/~parisse/install_en.html Xcas], etc.),
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/scientific mathX]
|<!--Amiga OS-->Maple V, mathX, Fun School, GCSE Maths, [ ], [ ], [ ],
|<!--AmigaOS4-->Yacas
|<!--MorphOS-->Yacas
|-
|<!--Sub Menu-->Maths Graph Function Plotting
|<!--AROS-->[https://blog.alb42.de/programs/#MUIPlot MUIPlot],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->App Utility Launcher Dock toolbar
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/docky BoingBar], [],
|<!--Amiga OS-->[https://github.com/adkennan/DockBot Dockbot],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Printer [https://github.com/OrcaSlicer/OrcaSlicer OrcaSlicer]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->HAM radio, amateur radio, packet radio, [], [], [], [https://cemaxecuter.com/ Dragon OS], [https://github.com/km4ack/73Linux with 73 link update], [https://www.youtube.com/watch?v=YAL5KNePRSg video for],
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/punktniklas/NiKom NiKom], [https://www.amigarealm.com/amiga/amicomms/comm4.htm Comm4], [https://www.amigarealm.com/archives/comms/aarug/ TNC Terminal Node Controller with packets over serial connections on Yaesu or Woxum handheld], [https://aminet.net/comm/misc AmiCom], [ with 7Plus file encoder/decoder], [ mksstv], [ RTTYam],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->modern smart home network like Home Assistant Automation Yellow, Green, Mosquitto, EMQX,
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/evil4dmin/ami2ha HA], [https://github.com/sidick/midge mtqq.lib], [https://aminet.net/package/comm/tcp/AmiHomeassist-0.7 AmiHomeassist],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Teaching classroom learning training [https://github.com/moodle/moodle moodle], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Games & Emulation==
Some emulators/games require OpenGL to function and to adjust ahi prefs channels, frequency and unit0 and unit1 and
[http://aros.sourceforge.net/documentation/users/shell/changetaskpri.php changetaskpri -1]
Rom patching https://www.marcrobledo.com/RomPatcher.js/ https://www.romhacking.net/patch/ (ips, ups, bps, etc) and this other site supports the latter formats https://hack64.net/tools/patcher.php
Free public domain roms for use with emulators can be found [http://www.pdroms.de/ here] as most of the rest are covered by copyright rules. If you like to read about old games see [http://retrogamingtimes.com/ here] and [http://www.armchairarcade.com/neo/ here] and a [http://www.vintagecomputing.com/ blog] about old computers. Possibly some of the [http://www.answers.com/topic/list-of-best-selling-computer-and-video-games best selling] of all time. [http://en.wikipedia.org/wiki/List_of_computer_system_emulators Wiki] with emulated systems list.
[https://archive.gamehistory.org/ Archive of VGHF], [https://library.gamehistory.org/ Video Game History Foundation Library search]
{| class="wikitable sortable"
|-
!width:10%;|Games [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Emulation]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Games Emulation Amstrad CPC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [ Caprice32 (OpenGL & pure SDL)], [ Arnold], [https://retroshowcase.gr/cpcbox-master/],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2],
|-
|<!--Sub Menu-->Games Emulation Apple2 and 2GS
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Arcade
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Mame], [ SI Emu (ABIv0 only)],
|<!--Amiga OS-->Mame,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem xmame], amiarcadia,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 Mame],
|-
|<!--Sub Menu-->Games Emulation Atari 2600 [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Stella],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 5200 [https://github.com/wavemotion-dave/A5200DS A5200DS], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 7800
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 400 800 130XL [https://github.com/wavemotion-dave/A8DS A8DS], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Atari800],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Lynx
|<!--AROS-->[http://myfreefilehosting.com/f/6366e11bdf_1.93MB Handy (ABIv0 only)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Jaguar
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Bandai Wonderswan
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation BBC Micro and Acorn Electron [http://beehttps://bem-unix.bbcmicro.com/download.html BeebEm], [http://b-em.bbcmicro.com/ B-Em], [http://elkulator.acornelectron.co.uk/ Elkulator], [http://electrem.emuunlim.com/ ElectrEm],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Dragon 32 and Tandy CoCo [http://www.6809.org.uk/xroar/ xroar], [],
|<!--AROS-->[], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C16 Plus4
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C64
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Vice (ABIv0 only)], [],
|<!--Amiga OS-->Frodo,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem viceplus],
|<!--MorphOS-->Vice,
|-
|<!--Sub Menu-->Games Emulation Commodore Amiga
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Janus UAE], Emumiga,
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer UAE],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 UAE],
|-
|<!--Sub Menu-->Games Emulation Japanese MSX MSX2
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Intelivision
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Colecovision and Adam
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Milton Bradley (MB) Vectrex [ Vectrex OpenGL],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation PICO8 Pico-8 fantasy video game console [https://github.com/egordorichev/pemsa-sdl/ pemsa-sdl], [https://github.com/jtothebell/fake-08 fake-08], [https://github.com/Epicpkmn11/fake-08/tree/wip fake-08 fork],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo Gameboy
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem vba no sound], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem vba]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo NES
|<!--AROS-->[ EmiNES], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Fceu], [https://github.com/takahirox/nes-js?tab=readme-ov-file nes-js], [https://github.com/bfirsh/jsnes jsnes], [https://github.com/angelo-wf/NesJs NesJs],
|<!--Amiga OS-->AmiNES, [http://www.dridus.com/~nyef/darcnes/ darcNES],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem amines]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo SNES
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Zsnes],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem warpsnes]
|<!--MorphOS-->[http://fabportnawak.free.fr/snes/ Snes9x],
|-
|<!--Sub Menu-->Games Emulation Nintendo N64
*HLE and plugins [ mupen64], [https://github.com/ares-emulator/ares ares], [https://github.com/N64Recomp/N64Recomp N64Recomp], [https://github.com/rt64/rt64 rt64], [https://github.com/simple64/simple64 Simple64],
*LLE [],
|<!--AROS-->[http://code.google.com/p/mupen64plus/ Mupen64+],
|<!--Amiga OS-->[http://code.google.com/p/mupen64plus/ Mupen64+], [http://aminet.net/package/misc/emu/tr-981125_src TR64],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Gamecube Wii]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Wii U]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/yuzu-emu Nintendo Switch]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation NEC PC Engine
|<!--AROS-->[], [], [https://github.com/yhzmr442/jspce js-pce],
|[http://www.hugo.fr.fm/ Hugo], [http://mednafen.sourceforge.net/ Mednafen],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem tgemu]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Master System (SMS)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Dega], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem sms],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem osmose]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Genesis/Megadrive
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem gp no sound], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem DGen],
|<!--Amiga OS-->[http://code.google.com/p/genplus-gx/ Genplus],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem genesisplus]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Saturn
*HLE [https://mednafen.github.io/ mednafen], [http://yabause.org/ yabause], [],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->[http://yabause.org/ Yabause],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Dreamcast
*HLE [https://github.com/flyinghead/flycast flycast], [https://code.google.com/archive/p/nulldc/downloads NullDC],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair ZX80 and ZX81
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair Spectrum
|[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Fuse (crackly sound)], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer SimCoupe], [ FBZX slow], [https://jsspeccy.zxdemo.org/ jsspeccy], [http://torinak.com/qaop/games qaop],
|<!--Amiga OS-->[http://www.lasernet.plus.com/ Asp], [http://www.zophar.net/sinclair.html Speculator], [http://www.worldofspectrum.org/x128/index.html X128],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair QL
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/QDOS4amiga1 QDOS4amiga]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation SNK NeoGeo Pocket
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem gngeo], NeoPop,
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sony PlayStation
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem FPSE],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem FPSE]
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS2]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS3]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://vita3k.org/ Sony Vita]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/shadps4-emu/shadPS4 PS4]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation [http://en.wikipedia.org/wiki/Tangerine_Computer_Systems Tangerine] Oric and Atmos
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Oricutron]
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem Oricutron]
|<!--MorphOS-->[http://aminet.net/package/misc/emu/oricutron Oricutron]
|-
|<!--Sub Menu-->Games Emulation TI 99/4 99/4A [https://github.com/wavemotion-dave/DS994a DS994a], [], [https://js99er.net/#/ js99er], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation HP 38G 40GS 48 49G/50G Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation TI 58 83 84 85 86 - 89 92 Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
{| class="wikitable sortable"
|-
!width:10%;|Games [https://www.rockpapershotgun.com/ General]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|- style="background:lightgrey;{{text default color}}; text-align:center; font-weight:bold;"
| Games [https://www.trackawesomelist.com/michelpereira/awesome-open-source-games/ Open Source and others] || AROS || Amiga OS || Amiga OS4 || Morphos
|-
|<!--Sub Menu-->Games Action like [https://github.com/opentomb/OpenTomb opentomb], [https://github.com/LostArtefacts/TRX TRX formerly Tomb1Main], [https://github.com/TombEngine TombEngine], [http://archives.arosworld.org/index.php?function=browse&cat=game/action Thrust], [https://github.com/fragglet/sdl-sopwith sdl sopwith],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/action], [https://archives.arosworld.org/index.php?function=browse&cat=game/action BOH], [],
|<!--Amiga OS-->[https://github.com/BSzili/OpenLara/tree/amiga/src source of openlara SDL2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Adventure like [http://dotg.sourceforge.net/ DMJ], [https://github.com/kromenak/gengine Gabriel Knight 3], [http://www.sarien.net/ Sierra Sarien], [https://github.com/klembot/twinejs twine js], [https://github.com/QSPFoundation/qspgui Quest Soft Player QSP], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/adventure dmagnetic], [https://archives.arosworld.org/?function=browse&cat=emulation/misc ScummVM], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying frotz infocom], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Board like [https://github.com/aperture-software/colditz-escape escape from colditz], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/board], [http://amigan.1emu.net/releases Africa]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Cards
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/card], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12934#post_12934 Balatro],
|<!--AmigaOS-->[http://home.arcor.de/amigasolitaire/e/welcome.html Reko], [https://github.com/samskivert/beschei-en beschei Src],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Misc [https://github.com/michelpereira/awesome-open-source-games Awesome open], [https://github.com/bobeff/open-source-games General Open Source], [https://github.com/SAT-R/sa2 Sonic Advance 2], [https://github.com/velorek1/cwordle Wordle type],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/misc], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games FPS like [https://aminet.net/package/game/shoot/D1X_Rebirth_AGA Descent D1X src], [https://github.com/DescentDevelopers/Descent3 Descent 3], [https://github.com/Fewnity/Counter-Strike-Nintendo-DS Counter-Strike-Nintendo-DS], [https://github.com/Aleph-One-Marathon/alephone Bungie Marathon 1994], [https://zdoom.org/downloads UzDoom opengl 3.3], [https://github.com/ZDoom/gzdoom gzdoom opengl 3+], [https://zdoom.org/downloads LZDoom opengl 2.1], [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray],
|<!--AROS-->Doom, Quake, [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Quake 3 Arena (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Assault Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube 2 Sauerbraten (OpenGL)], [http://fodquake.net/test/ FodQuake QuakeWorld], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Duke Nukem 3D], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Darkplaces Nexuiz Xonotic], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Doom 3 SDL (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Hexenworld and Hexen 2], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Aliens vs Predator Gold 2000 avp (openGL)], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Odamex (openGL doom)], [https://archives.arosworld.org/?function=showfile&file=game/fps/ zgloom], [], [https://archives.arosworld.org/?function=showfile&file=game/fps/ ab3dhd], [],
|<!--Amiga OS-->Doom, Quake, AB3D, Fears, Breathless, Gloom,
|<!--AmigaOS4-->Doom, Quake,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12 Doom], Quake, Quake 3 Arena,
|-
|<!--Sub Menu-->Games MMORG like
|<!--AROS-->[ Eternal Lands (OpenGL)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Platform like
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/platform], [ Maze of Galious], [ Gish]*(openGL), [ Mega Mario], [https://archives.arosworld.org/?function=showfile&file=game/platform/ thextech SMBX], [http://www.gianas-return.de/ Giana's Return], [http://www.sqrxz.de/ Sqrxz], [www.sqrxz2.de/ Sqrxz 2], [http://www.sqrxz.de/sqrxz-3/ Sqrxz 3], [http://www.sqrxz.de/sqrxz-4/ Sqrxz 4], [http://archives.arosworld.org/index.php?function=browse&cat=game/platform Cave Story], [https://bszili.morphos.me/ Frogatto], [https://bszili.morphos.me/ OpenJazz], [https://archives.arosworld.org/?function=showfile&file=game/platform/ pekkakana2], [ Aquaria], [https://archives.arosworld.org/?function=showfile&file=game/platform/ sonic CD], [],
|<!--Amiga OS-->[ Giana Sisters], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Puzzle [https://github.com/mariopartyrd/marioparty4/tree/port Party], [https://github.com/mdodis/OpenSolomonsKey OpenSolomonsKey], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle], [ Cubosphere (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle Candy Crisis], [http://bszili.morphos.me/ TailTale],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Racing [ Trigger Rally], [ VDrift], [http://www.ultimatestunts.nl/index.php?page=2&lang=en Ultimate Stunts], [http://maniadrive.raydium.org/ Mania Drive], [https://github.com/plowteam/donut Simpsons Hit and Run], [],
|<!--AROS-->[ Super Tux Kart (OpenGL)], [http://www.dusabledanslherbe.eu/AROSPage/F1Spirit.30.html F1 Spirit (OpenGL)], [http://bszili.morphos.me/index.html MultiRacer], [https://bszili.morphos.me/ Speed Dreams], [https://archives.arosworld.org/?function=showfile&file=game/driving/dethrace-0.10.1.x86_64-aros-v11.zip Carmageddon dethrace 64bit], [http://maniadrive.raydium.org/index.php?downloads=yes maniadrive like trackmania],
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://bszili.morphos.me/index.html Speed Dreams],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12], [http://bszili.morphos.me/index.html TORCS],
|-
|<!--Sub Menu-->Games 1st first person DRPG [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/OpenEnroth/OpenEnroth OpenEnroth MM], []
|<!--AROS-->[https://github.com/BSzili/aros-stuff Arx Libertatis], [http://www.playfuljs.com/a-first-person-engine-in-265-lines/ js raycaster], [https://github.com/Dorthu/es6-crpg webgl], [https://github.com/sonountaleban/AmiShockolate System Shock], [], [],
|<!--AmigaOS-->Phantasie, Faery Tale, Dungeon Master,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 3rd third person action CRPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/alexbatalov/fallout1-ce fallout ce], [https://github.com/rwengine/openrw gta3], [https://github.com/gta-reversed/gta-reversed gta3 sa], [https://github.com/mrxenginner/reVC gta3 vc revc], [https://github.com/jakobharder/burntime/tree/main Burntime],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=game/strategy/ fheroes2 homm2], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ breakhack], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ devilutionx diablo 1 hellfire], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ fallout 1], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ stratagus], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ hostile-takeover], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games isometric RPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/topics/dungeon?l=javascript Dungeon], [], [https://github.com/clintbellanger/heroine-dusk JS Dusk],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying nethack], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying GemRB], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games card based RPG [https://github.com/open-duelyst/duelyst Duelyst], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games turn based tactics RPG [], [], [], [], [], [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/strategy UFO AI], [http://play.freeciv.org/ FreeCiv], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Strategy [http://rtsgus.org/ RTSgus], [http://stargus.sourceforge.net/ Stargus], [https://github.com/KD-lab-Open-Source/Perimeter Perimeter], [https://matty77.itch.io/conflict-3049 conflict-3049], [https://github.com/ZeroK-RTS/Zero-K Zero-K multi player rts lua],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/strategy MegaGlest (OpenGL)], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ signus], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=140&pid=12446#post_12446 Wargus warcraft 2 setup],
|<!--Amiga OS-->[https://aminet.net/package/game/strat/OpenDUNE_RTG OpenDUNE_RTG src]
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Rhythm, Beat, Step [], [], [https://clonehero.net/ clonehero], [https://github.com/MatteoGodzilla/Dj-Engine Dj-Engine],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/misc Frets on Fire], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Shoot Em Ups [http://www.mhgames.org/oldies/formido/ Formido], [http://code.google.com/p/violetland/ Violetland],
||<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/action Open Tyrian], [http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ Alien Blaster], [https://github.com/OpenFodder/openfodder OpenFodder], [https://archives.arosworld.org/?function=showfile&file=game/action/ tbftss The Battle for the Solar System: the Pandora War]
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ The Battle for the Solar System: the Pandora War]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Simulations [http://scp.indiegames.us/ Freespace 2], [http://www.heptargon.de/gl-117/gl-117.html GL117], [http://code.google.com/p/corsix-th/ Theme Hospital], [http://code.google.com/p/freerct/ Rollercoaster Tycoon], [http://hedgewars.org/ Hedgewars], [https://github.com/raceintospace/raceintospace raceintospace], [https://github.com/Return-To-The-Roots RTTR Settlers 2], [https://github.com/OoliteProject/oolite oolite elite], [https://github.com/fesh0r/newkind newkind elite], [https://github.com/bohemiainteractive/cwr Arma Cold War Src], [https://github.com/endless-sky/endless-sky endless-sky], [https://github.com/pioneerspacesim/pioneer pioneer space command],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park, [https://github.com/angree/openttd_amiga_68k openttd amiga_68k],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Life Sim [https://github.com/ACreTeam/forest Animal Crossing], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Horror [https://github.com/Mikompilation/MikuPan Fatal Frame], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Sandbox Voxel Open World Exploration [https://github.com/ClassiCube/ Classicube],[http://www.michaelfogleman.com/craft/ Craft], [https://github.com/tothpaul/DelphiCraft DelphiCraft],[https://www.minetest.net/ Luanti formerly Minetest], [ infiniminer],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Battle Royale [https://bruh.io/ Play.Bruh.io], [https://www.coolmathgames.com/0-copter Copter Royale], [https://surviv.io/ Surviv.io], [https://nuggetroyale.io/#Ketchup Nugget Royale], [https://miniroyale2.io/ Miniroyale2.io],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Tower Defense [https://chriscourses.github.io/tower-defense/ HTML5], [https://github.com/SBardak/Tower-Defense-Game TD C++], [https://github.com/bdoms/love_defense LUA and LOVE], [https://github.com/HyOsori/Osori-WebGame HTML5], [https://github.com/PascalCorpsman/ConfigTD ConfigTD Pascal], [https://github.com/GloriousEggroll/wine-ge-custom Wine], []
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12871#post_12871 Plants vs Zombies PvZ],
|<!--Amiga OS-->[https://github.com/boingball/miggy-tower-defense miggy-tower-defense],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/diane1f0cd/VisualNovelTemplate Visual Novel Template], [https://github.com/Kirilllive/tuesday-js Tuesday JS], [https://github.com/tejasnayak25/vnsutra vnsutra], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [https://github.com/NathanGuilhot/VNES-Raylib https://github.com/NathanGuilhot/VNES VNES in Raylib], [https://www.renpy.org/latest.html renpy ren'py python based],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Reality VR [https://gitlab.com/madsbuvi/openmw openmw vr], [https://github.com/Team-Beef-Studios/BeefRaiderXR BeefRaiderXR],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Table Top VTT [ Roll20], [https://www.owlbear.rodeo/ owlbear rodeo], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Computer assisted TableTop TTRPG OSR [https://www.rpgsolo.com/play.php RPGSolo], [https://github.com/fpsvogel/solo-ttrpgs Solo TTRPG], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 2D 3D Engines [https://github.com/fegennari/3DWorld 3DWorld], [https://github.com/GarageGames/Torque3D Torque3D], [https://github.com/gameplay3d/GamePlay GamePlay 3D], [https://www.babylonjs.com/ BabylonJS ], [ Godot], [ Ogre], [ Crystal Space], [https://github.com/JacobHess03/ Dragon-Quest like], [https://github.com/bjornbytes/lovr Lua LOVE for 2D LOVR for 3D], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->[https://github.com/alpyre/Sevgi_Engine Sevgi Engine], [], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games C based game frameworks [https://github.com/orangeduck/Corange Corange], [https://github.com/scottcgi/Mojoc Mojoc], [https://orx-project.org/ Orx], [https://github.com/ioquake/ioq3 Quake 3], [https://www.mapeditor.org/ Tiled], [https://www.raylib.com/ 2d Raylib], [https://github.com/Rabios/awesome-raylib other raylib], [https://github.com/MrFrenik/gunslinger Gunslinger], [https://o3de.org/ o3d], [http://archives.aros-exec.org/index.php?function=browse&cat=development/library GLFW], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/library Raylib 5],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games RPGMaker MV/MZ-compatible projects [https://github.com/Psychronic-Games/RPGReactor RPGReactor js],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games unpack unarc [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
==Application Guides==
[[#top|...to the top]]
===Web Browser===
OWB is now at version 2.0 (which got an engine refresh, from July 2015 to February 2019) and 3.0.
This latest version has a good support for many/most web sites, even YouTube web page now works. [https://www.bilibili.tv/en/search untested]
This improved compatibility comes at the expense of higher RAM usage (now 1GB RAM is the absolute minimum).
Also, keep in mind that the lack of a JIT (Just-In-Time) JS compiler on the 32 bit version, makes the web surfing a bit slow.
Only the 64 bit version of OWB 2.0 will have JIT enabled, thus benefitting of more speed. There are tooltypes that can be added to the icon to provide further features JIT, MSE etc
Certificates from [https://curl.se/docs/caextract.html ca certs],
DNS tracking blocking with [https://easylist.to/easylist/easylist.txt easylist.txt] in PROGDIR:Conf before starting browser with enabled AdBlock [https://github.com/easylist/easylist/tree/master easylist], [https://gitlab.com/eyeo anti abp], [https://firebog.net/ big blocklist], [https://github.com/StevenBlack/hosts Steves], [], [],
This can be enabled with OWB Odyssey with Windows -> Content Blocking and Windows -> Messages and enter
https://www.youtube.com/api/stats/ads*
https://www.youtube.com/pagead/adview*
https://www.youtube.com#@##player-ads*
into your custom filters
Element blocker browser extension might be needed for [https://github.com/easylist/easylist/wiki/Youtube-Issues youtube], [ mid roll], [ pre roll], [ ],
OWB speed is much better when running from RAM Disk, the best way is to add the below into your S:User-Startup which copies OWB drawer from Extras:Internet/OWB to RAM Disk:
So add this :
<pre>
copy Extras:Internet/OWB Ram:OWB/ ALL CLONE >NIL:
copy Extras:Internet/OWB.info Ram: >NIL:
</pre>
Open RAM Disk and open OWB drawer and double click on OWB icon so that the above icon tooltypes are activated
Problems are that the copy time is long (around 20 seconds added in the background), but we can make it faster if we delete useless files from the OWB drawer (docs, …)
If you don’t copy the drawer back onto the HD, you won’t save your cache, cookies, passwords… So you need a script for it.
copy Extras:Internet/Amelinium/#? Ram:Amelinium/ ALL CLONE >NIL:
Error messages
SSL error "cant verify with ca-certificates", check bios clock time date is correct
Error 6, try checking networking prefs settings and Save / Use preferences again or a '''few times''' otherwise the network chipset may not be compatible with Aros
[https://www.google.com/search?q=%s&udm=14 Google search without AI overview]
[ DuckDuckGo]
[ Ecosia]
[ Qwant]
[ Swisscows]
[ Mojeek]
[ Brave Search]
[ PreSearch]
[ Startpage]
===E-mail===
Emailinium is now available for IMAP and POP3 based accounts
YAM does not support SSL and most mail providers now switched to encrypted SMTP/POP3 connections
====SimpleMail====
SimpleMail supports IMAP and appears to work with GMail, but it's never been reliable enough, it can crash with large mailboxes.
Please read more on this [http://www.freelists.org/list/simplemail-usr User list]
GMail
Be sure to activate the pop3 usage in your gmail account setup / configuration first.
pop3:
pop.gmail.com
Use SSL: Yes
Port: 995
smtp:
smtp.gmail.com (with authentication)
Use Authentication: Yes
Use SSL: Yes
Port: 465 or 587
Hotmail/MSN/outlook/Microsoft Mail mid-2017, all outlook.com accounts will be migrated to Office 365 / Exchange
Most users are currently on POP which does not allow showing folders and many other features (technical limitations of POP3). With Microsoft IMAP you will get folders, sync read/unread, and show flags. You still won't get push though, as Microsoft has not turned on the IMAP Idle command as at Sept 2013.
If you want to try it, you need to first remove (you can't edit) your pop account (long-press the account on the accounts screen, delete account). Then set it up this way:
1. Email/Password
2. Manual
3. IMAP
4.
* Incoming: imap-mail.outlook.com, port 993, SSL/TLS should be checked
* Outgoing: smtp-mail.outlook.com, port 587, SSL/TLS should be checked
* POP server name pop-mail.outlook.com, port 995, POP encryption method SSL
Yahoo Mail
On April 24, 2002 Yahoo ceased to offer POP access to its free mail service. Introducing instead a yearly payment feature, allowing users POP3 and IMAP server support, along with such benefits as larger file attachment sizes and no adverts.
Sorry to see Yahoo leaving its users to cough up for the privilege of accessing their mail. Understandable, when competing against rivals such as Gmail and Hotmail who hold a large majority of users and were hacked in 2014 as well.
Incoming Mail (IMAP) Server
* Server - imap.mail.yahoo.com
* Port - 993
* Requires SSL - Yes
Outgoing Mail (SMTP) Server
* Server - smtp.mail.yahoo.com
* Port - 465 or 587
* Requires SSL - Yes
* Requires authentication - Yes
Your login info
* Email address - Your full email address (name@domain.com)
* Password - Your account's password
* Requires authentication - Yes
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a subscription subs fee to have access to SMTP and POP3
* Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
* “Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
* “Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
* “Password” – Your Yahoo Mail password.
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
* Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
====YAM Yet Another Mailer====
YAM does not support SSL and most mail providers have now switched to encrypted SMTP/POP3 connections
This email client is POP3 only if the SSL library is available [http://www.freelists.org/list/yam YAM Freelists]
One of the downsides of using a POP3 mailer unfortunately - you have to set an option not to delete the mail if you want it left on the server. IMAP keeps all the emails on the server.
Possible issues
Sending mail issues is probably a matter of using your ISP's SMTP server, though it could also be an SSL issue.
getting a "Couldn't initialise TLSv1 / SSL error
Use of on-line e-mail accounts with this email client is not possible as it lacks the OpenSSL AmiSSl v3 compatible library
GMail
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including '@gmail.com')
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
Anyway, the SMTP is pop.gmail.com port 465 and it uses SSLLv3 Authentication. The POP3 settings are for the same server (pop.gmail.com), only on port 995 instead.
Outlook.com access
<pre >
Outlook.com SMTP server address: smtp.live.com
Outlook.com SMTP user name: Your full Outlook.com email address (not an alias)
Outlook.com SMTP password: Your Outlook.com password
Outlook.com SMTP port: 587
Outlook.com SMTP TLS/SSL encryption required: yes
</pre >
Yahoo Mail
<pre >
“POP3 Server” – Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
“SMTP Server” – Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
“Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
“Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
“Password” – Your Yahoo Mail password.
</pre >
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a monthly fee to have access to SMTP and POP3
Microsoft Outlook Express Mail
1. Get the files to your PC.
By whatever method get the files off your Amiga onto your PC. In the YAM folder you have a number of different folders, one for each of your folders in YAM. Inside that is a file usually some numbers such as 332423.283. YAM created a new file for every single email you received.
2. Open up a brand new Outlook Express. Just configure the account to use 127.0.0.1 as mail servers. It doesn't really matter. You will need to manually create any subfolders you used in YAM.
3. You will need to do a mass rename on all your email files from YAM. Just add a .eml to the end of it. Amazing how PCs still rely mostly on the file name so it knows what sort of file it is rather than just looking at it! There are a number of multiple renamers online to download and free too.
4. Go into each of your folders, inbox, sent items etc. And do a select all then drag the files into Outlook Express (to the relevant folder obviously) Amazingly the file format that YAM used is very compatible with .eml standard and viola your emails appear. With correct dates and working attachments.
5. If you want your email into Microsoft Outlook. Open that up and create a new profile and a new blank PST file. Then go into File Import and choose to import from Outlook Express. And the mail will go into there. And viola.. you have your old email from your Amiga in a more modern day format.
===FTP===
Magellan has a great FTP module. It allows transferring files from/to a FTP server over the Internet or the local network and, even if FTP is perceived as a "thing of the past", its usability is all inside the client. The FTP thing has a nice side effect too, since every Icaros machine can be a FTP server as well, and our files can be easily transferred from an Icaros machine to another with a little configuration effort.
First of all, we need to know the 'server' IP address. Server is the Icaros machine with the file we are about to download on another Icaros machine, that we're going to call 'client'. To do that, move on the server machine and 1) run Prefs/Services to be sure "FTP file transfer" is enabled (if not, enable it and restart Icaros); 2) run a shell and enter this command:
ifconfig -a
Make a note of the IP address for the network interface used by the local area network. For cabled devices, it usually is net0:. Now go on the client machine and run Magellan:
Perform these actions: 1) click on FTP; 2) click on ADDRESS BOOK; 3) click on "New".
You can now add a new entry for your Icaros server machine:
1) Choose a name for your server, in order to spot it immediately in the address book. Enter the IP address you got before.
2) click on Custom Options:
1) go to Miscellaneous in the left menu;
2) Ensure "Passive Transfers" is NOT selected;
3) click on Use. We need to deactivate Passive Transfers because YAFS, the FTP server included in Icaros, only allows active transfers at the current stage. Now, we can finally connect to our new file source:
1) Look into the address book for the newly introduced server, be sure that name and IP address are right, and
2) click on Connect. A new lister with server's "MyWorkspace" contents will appear. You can now transfer files over the network choosing a destination among your local (client's) volumes.
Can be adapted to any FTP client on any platform of your choice, just be sure your client allows Active Transfers as well.
===IRC Internet Relay Chat===
Jabberwocky is ideal for one-to-one social media communication, use IRC if you require one to many.
Just type a message in ''lowercase''' letters and it will be posted to all in the [ AROS irc channel]. Please do not use UPPER CASE as it is a sign of SHOUTING which is annoying.
Other things to type in - replace <message> with a line of text and <nick> with a person's name
<pre>
/help
/list
/who
/whois <nick>
/msg <nick> <message>
/query <nick>
<message>s
/query
/away <message>
/away
/quit <going away message>
</pre>
[http://irchelp.org/irchelp/new2irc.html#smiley Intro guide here]. IRC Primer can be found here in [http://www.irchelp.org/irchelp/ircprimer.html html], [http://www.irchelp.org/irchelp/text/ircprimer.txt TXT], [http://www.kei.com/irc/IRCprimer1.1.ps PostScript].
Issue the command /me <text> where <text> is the text that should follow your nickname.
Example: /me slaps ajk around a bit with a large trout
/nick <newNick>
/nickserv register <password> <email address>
/ns instead of /nickserv, while others might need /msg nickserv
/nickserv identify <password>
Alternatives:
/ns identify <password>
/msg nickserv identify <password>
==== IRC WookieChat ====
WookieChat is the most complete internet client for communication across the IRC Network. WookieChat allows you to swap ideas and communicate in real-time, you can also exchange Files, Documents, Images and everything else using the application's DCC capabilities.
add smilies drawer/directory
run wookiechat from the shell and set stack to 1000000 e.g. wookiechat stack 1000000
select a server / server window
* nickname
* user name
* real name - optional
Once you configure the client with your preferred screen name, you'll want to find a channel to talk in.
servers
* New Server - click on this to add / add extra - change details in section below this click box
* New Group
* Delete Entry
* Connect to server
* connect in new tab
* perform on connect
Change details
* Servername - change text in this box to one of the below Server:
* Port number - no need to change
* Server password
* Channel - add #channel from below
* auto join - can click this
* nick registration password,
Click Connect to server button above
<pre>
Server: irc.freenode.net
Channel: #aros
</pre>
irc://irc.freenode.net/aros
<pre>
Server: chat.amigaworld.net
Channel: #amigaworld or #amigans
</pre>
<pre>
On Sunday evenings USA time usually starting around 3PM EDT (1900 UTC)
Server:irc.superhosts.net
Channel #team*amiga
</pre>
<pre>
BitlBee and Minbif are IRCd-like gateways to multiple IM networks
Server: im.bitlbee.org
Port 6667
Seems to be most useful on WookieChat as you can be connected to several servers at once. One for Bitlbee and any messages that might come through that. One for your normal IRC chat server.
</pre>
[http://www.bitlbee.org/main.php/servers.html Other servers],
<pre>
#Amiga.org - irc.synirc.net eu.synirc.net dissonance.nl.eu.synirc.net (IPv6: 2002:5511:1356:0:216:17ff:fe84:68a)
twilight.de.eu.synirc.net zero.dk.eu.synirc.net us.synirc.net avarice.az.us.synirc.net envy.il.us.synirc.net harpy.mi.us.synirc.net
liberty.nj.us.synirc.net snowball.mo.us.synirc.net - Ports 6660-6669 7001 (SSL)
</pre>
<pre>
Multiple server support
"Perform on connect" scripts and channel auto-joins
Automatic Nickserv login
Tabs for channels and private conversations
CTCP PING, TIME, VERSION, SOUND
Incoming and Outgoing DCC SEND file transfers
Colours for different events
Logging and automatic reloading of logs
mIRC colour code filters
Configurable timestamps
GUI for changing channel modes easily
Configurable highlight keywords
URL Grabber window
Optional outgoing swear word filter
Event sounds for tabs opening, highlighted words, and private messages
DCC CHAT support
Doubleclickable URL's
Support for multiple languages using LOCALE
Clone detection
Auto reconnection to Servers upon disconnection
Command aliases
Chat display can be toggled between AmIRC and mIRC style
Counter for Unread messages
Graphical nicklist and graphical smileys with a popup chooser
</pre>
====IRC Aircos ====
Double click on Aircos icon in Extras:Networking/Apps/Aircos. It has been set up with a guest account for trial purposes. Though ideally, choose a nickname and password for frequent use of irc.
====IRC and XMPP Jabberwocky====
Servers are setup and close down at random
You sign up to a server that someone else has setup and access chat services through them.
The two ways to access chat from jabberwocky
<pre >
Jabberwocky -> Server -> XMPP -> open and ad-free
Jabberwocky -> Server -> Transports (Gateways) -> Proprietary closed systems
</pre >
The Jabber.org service connects with all IM services that use XMPP, the open standard for instant messaging and presence over the Internet. The services we connect with include Google Talk (closed), Live Journal Talk, Nimbuzz, Ovi, and thousands more. However, you can not connect from Jabber.org to proprietary services like AIM, ICQ, MSN, Skype, or Yahoo because they don’t yet use XMPP components (XEP-0114) '''but''' you can use Jabber.com's servers and IM gateways (MSN, ICQ, Yahoo etc.) instead.
The best way to use jabberwocky is in conjunction with a public jabber server with '''transports''' to your favorite services, like gtalk, Facebook, yahoo, ICQ, AIM, etc.
You have to register with one of the servers, [https://list.jabber.at/ this list] or [http://www.jabberes.org/servers/ another list], [http://xmpp.net/ this security XMPP list],
Unfortunately jabberwocky can only connect to one server at a time so it is best to check what services each server offers. If you set it up with separate Facebook and google talk accounts, for example, sometimes you'll only get one or the other.
Jabberwocky open a window where the Jabber server part is typed in as well as your Nickname and Password.
Jabber ID (JID) identifies you to the server and other users.
Once registered the next step is to goto Jabberwocky's "Windows" menu and select the "Agents" option. The "Agents List" window will open.
Roster (contacts list)
[http://search.wensley.org.uk/ Chatrooms] (MUC) are available
File Transfer - can send and receive files through the Jabber service but not with other services like IRC, ICQ, AIM or Yahoo. All you need is an installed webbrowser and OpenURL.
Clickable URLs - The message window uses Mailtext.mcc and you can set a URL action in the MUI mailtext prefs like SYS:Utils/OpenURL %s NEWWIN.
There is no consistent Skype like (H.323 VoIP) video conferencing available over Jabber. The move from xmpp to Jingle should help but no support on any amiga-like systems at the moment. [http://aminet.net/package/dev/src/AmiPhoneSrc192 AmiPhone] and [http://www.lysator.liu.se/%28frame,faq,nobg,useframes%29/ahi/v4-site/ Speak Freely] was an early attempt voice only contact. SIP and Asterisk are other PBX options.
Facebook
If you're using the XMPP transport provided by Facebook themselves, chat.facebook.com, it looks like they're now requiring SSL transport. This means jabberwocky method below will no longer work. The best thing to do is to create an ID on a public jabber server which has a Facebook gateway.
<pre >
1. launch jabberwocky
2. if the login window doesn't appear on launch, select 'account' from the jabberwocky menu
3. your jabber ID will be user@chat.facebook.com where user is your user ID
4. your password is your normal facebook password
5. to save this for next time, click the popup gadget next to the ID field
6. click the 'add' button
7. click the 'close' button
8. click the 'connect' button
</pre >
you're done. you can also click the 'save as default account' button if you want. jabberwocky configured to auto-connect when launching the program, but you can configure as you like. there is amigaguide documentation included with jabberwocky.
[http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=37085&forum=32 Read more here]
for Facebook users, you can log-in directly to Facebook with jabberwocky. just sign in as @chat.facebook.com with your Facebook password as the password
Twitter
For a few years, there has been added a twitter transport. Servers include [http://jabber.hot-chilli.net/ jabber.hot-chili.net], and .
An [http://jabber.hot-chilli.net/tag/how-tos/ How-to]
:Read [http://jabber.hot-chilli.net/2010/05/09/twitter-transport-working/ more]
Instagram
no support at the moment best to use a web browser based client
ICQ
The new version (beta) of StriCQ uses a newer ICQ protocol. Most of the ICQ Jabber Transports still use an older ICQ protocol. You can only talk one-way to StriCQ using the older Transports. Only the newer ICQv7 Transport lets you talk both ways to StriCQ. Look at the server lists in the first section to check.
Register on a Jabber server, e.g. this one works: http://www.jabber.de/
Then login into Jabberwocky with the following login data e.g. xxx@jabber.de / Password: xxx Now add your ICQ account under the window->Agents->"Register". Now Jabberwocky connects via the Jabber.de server with your ICQ account.
Yahoo Messenger
although yahoo! does not use xmpp protocol, you should be able to use the transport methods to gain access and post your replies
MSN
early months of 2013 Microsoft will ditch MSN Messenger client and force everyone to use Skype...but MSN protocol and servers will keep working as usual for quite a long time....
Occasionally the Messenger servers have been experiencing problems signing in. You may need to sign in at www.outlook.com and then try again. It may also take multiple tries to sign in. (This also affects you if you’re using Skype.)
You have to check each servers' Agents List to see what transports (MSN protocol, ICQ protocol, etc.) are supported or use the list address' provided in the section above. Then register with each transport (IRC, MSN, ICQ, etc.) to which you need access. After registering you can Connect to start chatting.
msn.jabber.com/registered should appear in the window.
From this [http://tech.dir.groups.yahoo.com/group/amiga-jabberwocky/message/1378 JW group] guide which helps with this process in a clear, step by step procedure.
1. Sign up on MSN's site for a passport account. This typically involves getting a Hotmail address.
2. Log on to the Jabber server of your choice and do the following:
* Select the "Windows/Agents" menu option in Jabberwocky.
* Select the MSN Agent from the list presented by the server.
* Click the Register button to open a new window asking for:
**Username = passort account email address, typically your hotmail address.
**Nick = Screen name to be shown to anyone you add to your buddy list.
**Password = Password for your passport account/hotmail address.
* Click the Register button at the bottom of the new window.
3. If all goes well, you will see the MSN Gateway added to your buddy list. If not, repeat part 2 on another server. Some servers may show MSN in their list of available agents, but have not updated their software for the latest protocols used by MSN.
4. Once you are registered, you can now add people to your buddy list. Note that you need to include the '''msn.''' ahead of the servername so that it knows what gateway agent to use. Some servers may use a slight variation and require '''msg.gate.''' before the server name, so try both to see what works.
If my friend's msn was amiga@hotmail.co.uk and my jabber server was @jabber.meta.net.nz..
then amiga'''%'''hotmail.com@'''msn.'''jabber.meta.net.nz
or another the trick to import MSN contacts is that you don't type the hotmail URL but the passport URL... e.g. Instead of: goodvibe%hotmail.com@msn.jabber.com You type: goodvibe%passport.com@msn.jabber.com
And the thing about importing contacts I'm afraid you'll have to do it by hand, one at the time...
Google Talk
any XMPP server will work, but you have to add your contacts manually. a google talk user is typically either @gmail.com or @talk.google.com. a true gtalk transport is nice because it brings your contacts to you and (can) also support file transfers to/from google talk users.
implement Jingle a set of extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP)
support ended early 2014 as Google moved to Google+ Hangouts which uses it own proprietary format
===Video Player MPlayer===
Many of the menu features (such as doubling) do not work with the current version of mplayer but using
4:3
mplayer -vf scale=800:600 file.avi
16:9
mplayer -vf scale=854:480 file.avi
if you want gui use;
mplayer -gui 1 <other params> file.avi
<pre >
stack 1000000
; using AspireOS 1.xx
; copy FROM SYS:Extras/Multimedia/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 1.x
; copy FROM SYS:Tools/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 2.x
; copy FROM SYS:Utilities/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
cd RAM:MPlayer
run MPlayer -gui > Nil:
;run MPlayer -gui -ao ahi_dev -playlist http://www.radio-paralax.de/listen.pls > Nil:
</pre >
$ mplayer rtsp://127.0.0.1:554/sample_300kbit.mp4
MPlayer supports multicast streaming, and rtp/rtsp protocols (it might require [http://www.live555.com/openRTSP/ live555 library] to work with some streams). But you might have to build it where it's disabled. Also, multicast won't work with some AmiTCP-likes. MIAMI supported it, though.
AROS supports IPv4 (old but works) and this includes the needed address space for RTP.
If you mean multicast via RTP - mplayer handles it. You can even force UDP over TCP
-rtsp-stream-over-tcp
If the rtsp Real Time Streaming Protocol server needs authentification:
-user -passwd
MPlayer - Menu - Open Playlist and load already downloaded .pls or .m3u file - auto starts around 4 percent cache
MPlayer - Menu - Open Stream and copy one of the .pls lines below into space allowed, press OK and press play button on main gui interface
Old 8bit 16bit remixes chip tune game music
http://www.radio-paralax.de/listen.pls
http://scenesat.com/
http://www.shoutcast.com/radio/Amiga
http://www.theoldcomputer.com/retro_radio/RetroRadio_Main.htm
http://www.kohina.com/
http://www.remix64.com/
http://retrogamer.net/forum/
http://retroasylum.podomatic.com/rss2.xml
http://retrogamesquad.com/
http://www.retronauts.com/
http://monsterfeet.com/noquarter/
http://www.retrogamingradio.com/
http://www.radiofeeds.co.uk/mp3.asp
[[#top|...to the top]]
====ZunePaint====
simplified typical workflow
* importing and organizing and photo management
* making global and regional local correction(s) - recalculation is necessary after each adjustment as it is not in real-time
* exporting your images in the best format available with the preservation of metadata
Whilst achieving 80% of a great photo with just a filter, the remaining 20% comes from a manual fine-tuning of specific image attributes.
For photojournalism, documentary, and event coverage, minimal touching is recommended. Stick to Camera Raw for such shots, and limit changes to level adjustment, sharpness, noise reduction, and white balance correction.
For fashion or portrait shoots, a large amount of adjustment is allowed and usually ends up far from the original. Skin smoothing, blemish removal, eye touch-ups, etc. are common. Might alter the background a bit to emphasize the subject.
Product photography usually requires a lot of sharpening, spot removal, and focus stacking.
For landscape shots, best results are achieved by doing the maximum amount of preparation before/while taking the shot. No amount of processing can match timing, proper lighting, correct gear, optimal settings, etc. Excessive post-processing might give you a dramatic shot but best avoided in the long term.
* White Balance - Left Amiga or F12 and K and under "Misc color effects" tab with a pull down for White Balance - color temperature also known as AKA tint (movies) or tones (painting) - warm temp raise red reduce green blue - cool raise blue lower red green
* Exposure - exposure compensation, highlight/shadow recovery
* Noise Reduction - during RAW development or using external software
* Lens Corrections - distortion, vignetting, chromatic aberrations
* Detail - capture sharpening and local contrast enhancement
* Contrast - black point, levels (sliders) and curves tools (F12 and K)
* Framing - straighten () and crop (F12 and F)
* Refinements - color adjustments and selective enhancements - Left Amiga or F12 and K for RGB and YUV histogram tabs -
* Resizing - enlarge for a print or downsize for the web or email (F12 and D)
* Output Sharpening - customized for your subject matter and print/screen size
White Balance - F12 and K
scan your image for a shade which was meant to be white (neutral with each RGB value being equal) like paper or plastic which is in the same light as the subject of the picture. Use the dropper tool to select this color, similar colours will shift and you will have selected the perfect white balance for your part of the image - for the whole picture make sure RAZ or CLR button at the bottom is pressed before applying to the image above.
Exposure correction
F12 and K - YUV Y luminosity - RGB extra red tint - move red curve slightly down and move blue green curves slightly up
Workflows in practice
* Undo - Right AROS key or F12 and Z
* Redo - Right AROS key or F12 and R
First flatten your image (if necessary) and then do a rotation until the picture looks level.
* Crop the picture. Click the selection button and drag a box over the area of the picture you want to keep. Press the crop button and the rest of the photo will be gone.
* Adjust your saturation, exposure, hue levels, etc., (right AROS Key and K for color correction) until you are happy with the photo. Make sure you zoom in all of the way to 100% and look the photo over, zoom back out and move around. Look for obvious problems with the picture.
* After coloring and exposure do a sharpen (Right AROS key and E for Convolution and select drop down option needed), e.g. set the matrix to 5x5 (roughly equivalent Amount to 60%) and set the Radius to 1.0. Click OK.
And save your picture
Implemented or would like to see for simplification and ease of use
basic filters (presets) like black and white, monochrome, edge detection (sobel), motion/gaussian blur,
* negative, sepiatone, retro vintage, night vision, colour tint, color gradient, color temperature, glows, fire, lightning, lens flare, emboss, filmic, pixelate mezzotint, antialias, etc.
adjust / cosmetic tools such as crop,
* reshaping tools, straighten, smear, smooth, perspective, liquify, bloat, pucker, push pixels in any direction, dispersion, transform like warp, blending with soft light, page-curl, whirl, ripple, fisheye, neon, etc.
* red eye fixing, blemish remover, skin smoothing, teeth whitener, make eyes look brighter, desaturate,
effects like oil paint, cartoon, pencil sketch, charcoal, noise/matrix like sharpen/unsharpen, (right AROS key with A for Artistic effects)
* blend two image, gradient blend, masking blend, explode, implode, custom collage, surreal painting, comic book style, needlepoint, stained glass, watercolor, mosaic, stencil/outline, crayon, chalk, etc.
borders such as
* dropshadow, rounded, blurred, color tint, picture frame, film strip polaroid, bevelled edge, etc.
brushes e.g.
* frost, smoke, etc.
and manual control of
fix lens issues including vignetting (darkening), color fringing and barrel distortion, and chromatic and geometric aberration - lens and body profiles
perspective correction
levels - directly modify the levels of the tone-values of an image, by using sliders for highlights, midtones and shadows
curves - Color Adjustment and Brightness/Contrast
color balance
one single color transparent (alpha channel (color information/selections) for masking and/or blending ) for backgrounds, etc.
Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors
decompose layer into a set of layers with each holding a different type of pattern that is visible within the image
any selection using any selecting tools like lasso tool, marquee tool etc. the selection will temporarily be save to alpha
If you create your image without transparency then the Alpha channel is not present, but you can add later.
File formats like .psd (Photoshop file has layers, masks etc. contains edited sensor data. The original sensor data is no longer available) .xcf .raw .hdr
Image Picture Formats
* low dynamic range (JPEG, PNG, TIFF 8-bit), 16-bit (PPM, TIFF), typically as a 16-bit TIFF in either ProPhoto or AdobeRGB colorspace - TIFF files are also fairly universal – although, if they contain proprietary data, such as Photoshop Adjustment Layers or Smart Filters, then they can only be opened by Photoshop making them proprietary.
* linear high dynamic range (HDR) images (PFM, [http://www.openexr.com/ ILM .EXR], jpg, [http://aminet.net/util/dtype cr2] (canon tiff based), hdr, NEF, CRW, ARW, MRW, ORF, RAF (Fuji), PEF, DCR, SRF, ERF, DNG files are RAW converted to an Adobe proprietary format - a container that can embed the raw file as well as the information needed to open it)
An old version of [http://archives.aros-exec.org/index.php?function=browse&cat=graphics/convert dcraw]
There is no single RAW file format. Each camera manufacturer has one or more unique RAW formats. RAW files contain the brightness levels data captured by the camera sensor. This data cannot be modified. A second smaller file, separate XML file, or within a database with instructions for the RAW processor to change exposure, saturation etc. The extra data can be changed but the original sensor data is still there. RAW is technically least compatible.
A raw file is high-bit (usually 12 or 14 bits of information) but a camera-generated TIFF file will be usually converted by the camera (compressed, downsampled) to 8 bits. The raw file has no embedded color balance or color space, but the TIFF has both. These three things (smaller bit depth, embedded color balance, and embedded color space) make it so that the TIFF will lose quality more quickly with image adjustments than the raw file. The camera-generated TIFF image is much more like a camera processed JPEG than a raw file. A strong advantage goes to the raw file. The power of RAW files, such as the ability to set any color temperature non-destructively and will contain more tonal values.
The principle of preserving the maximum amount of information to as late as possible in the process. The final conversion - which will always effectively represent a "downsampling" - should prevent as much loss as possible.
Once you save it as TIFF, you throw away some of that data irretrievably. When saving in the lossy JPEG format, you get tremendous file size savings, but you've irreversibly thrown away a lot of image data. As long as you have the RAW file, original or otherwise, you have access to all of the image data as captured.
Keyboard equivalence with Photoshop(tm) would help
File
PHOTOSHOP SHORTCUT GIMP
New Ctrl+n New
Open Ctrl+o Open
Close Ctrl+w Close
Save Ctrl+s Save
Save as Shift+Ctrl+s Save as
Revert F12 Revert
Print Ctrl+p Print
Exit Ctrl+q Quit
Edit
PHOTOSHOP SHORTCUT GIMP
Undo/Redo (1 level) Ctrl+z Undo (Redo is Shift+Ctrl+z)
Cut Ctrl+x Cut
Copy Ctrl+c Copy
Paste Ctrl+v Paste
Paste Into Shift+Ctrl+v Paste Into
Fill with FG color Alt+Backspace Fill with FG color
Fill with BG color Control+Backspace Fill with BG color
Image/Colors
PHOTOSHOP SHORTCUT GIMP
Levels Ctrl+l Levels
Auto Contrast Shift+Ctrl+Alt+l Stretch Contrast (same?)
Curves Ctrl+m Curves
Color Balance Ctrl+b Color Balance
Hue/Saturation Ctrl+u Hue-Saturation
Desaturate Shift+Ctrl+u Desaturate
Invert Ctrl+i Invert
Default Colors d Default Colors
Switch Colors x Switch Colors
Layer
PHOTOSHOP SHORTCUT GIMP
New Layer Shift+Ctrl+n New Layer
Layer via Copy Ctrl+j Duplicate Layer
Bring (layer) to Front Shift+Ctrl+] Layer to Top
Send (layer) to Back Shift+Ctrl+[ Layer to Bottom
Bring (layer) Forward Ctrl+] Raise Layer
Send (layer) Backward Ctrl+[ Lower Layer
Select Top Layer Shift+Alt+] Select Top Layer
Select Bottom Layer Shift+Alt+[ Select Bottom Layer
Select One Layer Forward Alt+] Select Previous Layer
Select One Layer Backward Alt+[ Select Next Layer
Merge Down Ctrl+e Merge Down
Merge Visible Shift+Ctrl+e Merge Visible
Preserve Transparency / Keep Transparency
Cycle Modes Forwards Shift+= Next Layer Mode
Cycle Modes Backwards Shift+- Previous Layer Mode
Select
PHOTOSHOP SHORTCUT GIMP
Select All Ctrl+a Select All
Deselect Ctrl+d Select None
Inverse Shift+Ctrl+i Invert
Feather Ctrl+Alt+d Feather
View
PHOTOSHOP SHORTCUT GIMP
Zoom In Ctrl+= Zoom In
Zoom Out Ctrl+- Zoom Out
Fit on Screen Ctrl+0 Zoom to Fit Window
Actual Pixels Ctrl+Alt+0 Zoom 1:1
Show/Hide Extras Ctrl+h Toggle Show Selection (close enough?)
Show/Hide Guides Ctrl+' Toggle Show Guides
Show/Hide Grid Ctrl+Alt+' Toggle Show Grid
Show/Hide Rulers Ctrl+r Toggle Show Rulers
Snap Ctrl+; Snap to Guides
Scroll View Up Page Up Scroll Page Up
Scroll View Down Page Down Scroll Page Down
Scroll View Left Ctrl+Page Up Scroll Page Left
Scroll View Right Ctrl+Page Down Scroll Page Right
Window/Dialogs
PHOTOSHOP SHORTCUT GIMP
? F5 Tools Dialog
Color Tab F6 Colors Dialog
Layers Tab F7 Layers Dialog
Info Tab F8 Image Information
Tools
PHOTOSHOP SHORTCUT GIMP
Rectangular Marquee Tool m Rect Select Tool
Elliptical Marquee Tool Shift+m Ellipse Select Tool
*This is a toggle between 'Elliptical Marquee Tool' and 'Rectangular Marquee Tool' in Photoshop
Move Tool v Move Tool
Lasso Tool l Free Select Tool
Magic Wand Tool w Fuzzy Select Tool
Crop Tool c Crop & Resize Tool
Airbrush Tool j Airbrush Tool
Paintbrush Tool b Paintbrush Tool
Clone Stamp Tool s Clone Stamp Tool
Eraser Tool e Eraser Tool
Gradient Tool g Blend Tool
Paint Bucket Tool Shift+g Bucket Fill Tool
*This is a toggle between 'Paint Bucket Tool' and 'Gradient Tool' in Photoshop
Blur Tool r Convolve Tool
Dodge Tool o DodgeBurn Tool
Type Tool t Text Tool
Pen Tool p Bezier Select Tool
Eye Dropper Tool i Color Picker Tool
Zoom Tool z Magnify Tool
Previous Brush , Previous Brush
Next Brush . Next Brush
First Brush Shift+< First Brush
Last Brush Shift+> Last Brush
Decrease Brush Size [ Decrease Brush Size
Increase Brush Size ] Increase Brush Size
Decrease Brush Hardness { Decrease Brush Hardness
Increase Brush Hardness } Increase Brush Hardness
Help
PHOTOSHOP SHORTCUT GIMP
Help F1 Help
Context Help Shift+F1 Context Help
Misc.
PHOTOSHOP SHORTCUT GIMP
Last Filter Ctrl+f Repeat Last Filter
? Shift+Ctrl+f Reshow Last Filter
Preferences Ctrl+k Preferences
Liquify Shift+Ctrl+x IWarp (close enough?)
Toggle Quick Mask q Toggle Quick Mask
Spotlights - triangle of white opaque shape
Cutting out and/or replacing unwanted background or features - select large areas with the selection option like the Magic Wand tool (aka Color Range) or the Lasso (quick and fast) with feather 2 to soften edge or the pen tool which adds points/lines/Bézier curves (better control but slower), hold down the shift button as you click to add extra points/areas of the subject matter to remove. Increase the tolerance to cover more areas. To subtract from your selection hold down alt as you're clicking.
* Layer masks are a better way of working than Erase they clip (black hides/hidden white visible/reveal). Clone Stamp can be simulated by and brushes for other areas.
* Leave the fine details like hair, fur, etc. to later with lasso and the shift key to draw a line all the way around your subject. Gradient Mapping - Inverse - Mask. i.e. Refine your selected image with edge detection and using the radius and edge options / adjuster (increase/decrease contrast) so that you will capture more fine detail from the background allowing easier removal.
Remove fringe/halo
saving image as png rather than jpg/jpeg to keep transparency background intact.
Implemented [http://colorizer.org/ colour model representations] [http://paulbourke.net/texture_colour/colourspace/ Mathematical approach] - Photo stills are spatially 2d (h and w), but are colorimetrically 3d (r g and b, or H L S, or Y U V etc.) as well.
* RGB - split cubed mapped color model for photos and computer graphics hardware using the light spectrum (adding and subtracting)
* YUV - Y-Lightness U-blue/yellow V-red/cyan (similar to YPbPr and YCbCr) used in the PAL, NTSC, and SECAM composite digital TV color [http://crewofone.com/2012/chroma-subsampling-and-transcoding/#comment-7299 video]
Histograms
White balanced (neutral) if the spike happens in the same place in each channel of the RGB graphs. If not, you're not balanced.
If you have sky you'll see the blue channel further off to the right.
RGB is best one to change colours. These elements RGB is a 3-channel format containing data for Red, Green, and Blue in your photo scale between 0 and 255. The area in a picture that appears to be brighter/whiter contains more red color as compared to the area which is relatively darker. Similarly in the green channel the area that appears to be darker contains less amount of green color as compared to the area that appears to be brighter. Similarly in the blue channel the area appears to be darker contains less amount of blue color as compared to the area that appears to be brighter. Brightness luminance histogram also matches the green histogram more than any other color - human eye interprets green better e.g. RGB rough ratio 15/55/30%
RGBA (RGB+A, A means alpha channel) . The alpha channel is used for "alpha compositing", which can mostly be associated as "opacity". AROS deals in RGB with two digits for every color (red, green, blue), in ARGB you have two additional hex digits for the alpha channel.
The shadows are represented by the left third of the graph. The highlights are represented by the right third. And the midtones are, of course, in the middle. The higher the black peaks in the graph, the more pixels are concentrated in that tonal range (total black area).
By moving the black endpoint, which identifies the shadows (darkness) and a white light endpoint (brightness) up and down either sides of the graph, colors are adjusted based on these points.
By dragging the central one, can increased the midtones and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
RGB Curves
* Move left endpoint (black point) up or right endpoint (white point) up brightens
* Move left endpoint down or right endpoint down darkens
Color Curves
* Dragging up on the Red Curve increases the intensity of the reds in the image but
* Dragging down on the Red Curve decreases the intensity of the reds and thus increases the apparent intensity of its complimentary color, cyan. Green’s complimentary color is magenta, and blue’s is yellow.
<pre>
Red <-> Cyan
Green <->Magenta
Blue <->Yellow
</pre>
YUV Best option to analyse and pull out statistical elements of any picture (i.e. separate luminance data from color data). The line in Y luma tone box represents the brightness of the image with the point in the bottom left been black, and the point in the top right as white. A low-contrast image has a concentrated clump of values nearer to the center of the graph. By comparison, a high-contrast image has a wider distribution of values across the entire width of the Histogram. A histogram that is skewed to the right would indicate a picture that is a bit overexposed because most of the color data is on the lighter side (increase exposure with higher value F), while a histogram with the curve on the left shows a picture that is underexposed. This is good information to have when using post-processing software because it shows you not only where the color data exists for a given picture, but also where any data has been clipped (extremes on edges of either side): that is, it does not exist and, therefore, cannot be edited. By dragging the endpoints of the line and as well as the central one, can increased the dark/shadows, midtones and light/bright parts and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
The U and V chroma parts show color difference components of the image. It’s useful for checking whether or not the overall chroma is too high, and also whether it’s being limited too much
Can be used to create a negative image but also
With U (Cb), the higher value you are, the more you're on the blue primary color. If you go to the low values then you're on blue complementary color, i.e. yellow.
With V (Cr), this is the same principle but with Red and Cyan.
e.g. If you push U full blue and V full red, you get magenta. If you push U full yellow and V full Cyan then you get green.
YUV simultaneously adds to one side of the color equation while subtracting from the other.
using YUV to do color correction can be very problematic because each curve alters the result of each other: the mutual influence between U and V often makes things tricky. You may also be careful in what you do to avoid the raise of noise (which happens very easily). Best results are obtained with little adjustments
sunset that looks uninspiring and needs some color pop especially for the rays over the hill, a subtle contrast raise while setting luma values back to the legal range without hard clipping.
====Lunapaint====
Pixel based drawing app with onion-skin animation function
Blocking, Shading, Coloring, adding detail
<pre>
b BRUSH
e ERASER
alt eyedropper
v layer tool
z ZOOM / MAGNIFY < > n
spc panning
m marque
q lasso
w same color selection / region
</pre>
<pre>
, LM RM
v
V
f filter
F
. size
p
, pick color
[] last / next color
</pre>
There is not much missing in Lunapaint to be as good as FlipBook and then you have to take into account that Flipbook is considered to be amongst the best and easiest to use animation software out there. Ok to be honest Flipbook has some nice features that require more heavy work but those aren't so much needed right away, things like camera effects, sound, smart fill, export to different movie file formats etc.
Tried Flipbook with my tablet and compared it to Luna. The feeling is the same when sketching. LunaPaint is very responsive/fluent to draw with. Just as Flipbook is, and that responsiveness is something its users have mentioned as one of the positive sides of said software.
author was learning MUI. Some parts just have to be rewritten with proper MUI classes before new features can be added.
* add [Frame Add] / [Frame Del]
* whole animation feature is impossible to use. If you draw 2 color maybe but if you start coloring your cells then you get in trouble
* pickup the entire image as a brush, not just a selection ? And consequently remove the brush from memory when one doesn't need it anymore. can pick up a brush and put it onto a new image but cropping isn't possible, nor to load/save brushes.
* Undo is something I longed for ages in Lunapaint.
* to import into the current layer, other types of images (e.g. JPEG) besides RAW64.
* implement graphic tablet features support
**GENERAL DRAWING**
Miss it very much:
UNDO
ERASER
COLORPICKER - has to show on palette too which color got picked.
BACKGROUND COLOR -Possibility to select from "New project screen"
Miss it somewhat:
ICON for UNDO
ICON for ERASER
ICON for CLEAR SCREEN ( What can I say? I start over from scratch very often )
BRUSH - possibility to cut out as brush not just copy off image to brush
**ANIMATING**
Miss it very much:
NUMBER OF CELLS - Possibity to change total no. of cells during project
ANIM BRUSH - Possibility to pick up a selected part of cells into an animbrush
Miss it somewhat:
ADD/REMOVE FRAMES: Add/remove single frame
In general LunaPaint is really well done and it feels like a new DeluxePaint version. It works with my tablet. Sure there's much missing of course but things can always be added over time. So there is great potential in LunaPaint that's for sure. Animations could be made in it and maybe put together in QuickVideo, saving in .gif or .mng etc some day.
LAYERS
-Layers names don't get saved globally in animation frames
-Layers order don't change globally in an animation (perhaps as default?).
EXPORTING IMAGES
-Exporting frames to JPG/PNG gives problems with colors. (wrong colors. See my animatiopn --> My robot was blue now it's "gold" ) I think this only happens if you have layers.
-Trying to flatten the layers before export doesn't work if you have animation frames only the one you have visible will flatten properly all other frames are destroyed. (Only one of the layers are visible on them)
-Exporting images filenames should be for example e.g. file0001, file0002...file0010 instead as of now file1, file2...file10
LOAD/SAVE (Preferences)
-Make a setting for the default "Work" folder.
* Destroyed colors if exported image/frame has layers
* mystic color cycling of the selected color while stepping frames back/forth (annoying)
<pre>
Deluxe Paint II enhanced key shortcuts
NOTE: @ denotes the ALT key
[Technique]
F1 - Paint
F2 - Single Colour
F3 - Replace
F4 - Smear
F5 - Shade
F6 - Cycle
F7 - Smooth
M - Colour Cycle
[Brush]
B - Restore
O - Outline
h - Halve brush size
H - Double brush size
x - Flip brush on X axis
X - Double brush size on X axis only
y - Flip on Y
Y - Double on Y
z - Rotate brush 90 degrees
Z - Stretch
[Stencil]
` - Stencil On
[Miscellaneous]
F9 - Info Bar
F10 - Selection Bar
@o - Co-Ordinates
@a - Anti-alias
@r - Colourise
@t - Translucent
TAB - Colour Cycle
[Picture]
L - Load
S - Save
j - Page to Spare(Flip)
J - Page to Spare(Copy)
V - View Page
Q - Quit
[General Keys]
m - Magnify
< - Zoom In
> - Zoom Out
[ - Palette Colour Up
] - Palette Colour Down
( - Palette Colour Left
) - Palette Colour Right
, - Eye Dropper
. - Pixel / Brush Toggle
/ - Symmetry
| - Co-Ordinates
INS - Perspective Control
+/- - Brush Size (Fine Control)
w - Unfilled Polygon
W - Filled Polygon
e - Unfilled Ellipse
E - Filled Ellipse
r - Unfilled Rectangle
R - Filled Rectangle
t - Type/text tool
a - Select Font
u/U - Undo
d - Brush
D - Filled Non-Uniform Polygon
f/F - Fill Options
g/G - Grid
h/H - Brush Size (Coarse Control)
K - Clear
c - Unfilled Circle
C - Filled Circle
v - Line
b - Scissor Select and Toggle
B - Brush
{,} - Toggle between two background colours
</pre>
====Lodepaint====
Pixel based painting artwork app
====Grafx2====
Pixel based painting artwork app aesprite like
[https://www.youtube.com/watch?v=59Y6OTzNrhk aesprite workflow keys and tablet use], [],
====Vector Graphics ZuneFIG====
Vector Image Editing of files .svg .ps .eps
*Objects - raise lower rotate flip aligning snapping
*Path - unify subtract intersect exclude divide
*Colour - fill stroke
*Stroke - size
*Brushes -
*Layers -
*Effects - gaussian bevels glows shadows
*Text -
*Transform -
AmiFIG ([http://epb.lbl.gov/xfig/frm_introduction.html xfig manual])
[[File:MyScreen.png|thumb|left|alt=Showing all Windows open in AmiFIG.|All windows available to AmiFIG.]]
for drawing simple to intermediate vector graphic images for scientific and technical uses and for illustration purposes for those with talent
;Menu options
* Load - fig format but import(s) SVG
* Save - fig format but export(s) eps, ps, pdf, svg and png
* PAN = Ctrl + Arrow keys
* Deselect all points
There is no selected object until you apply the tool, and the selected object is not highlighted.
;Metrics - to set up page and styles - first window to open on new drawings
;Tools - Drawing Primitives - set Attributes window first before clicking any Tools button(s)
* Shapes - circles, ellipses, arcs, splines, boxes, polygon
* Lines - polylines
* Text "T" button
* Photos - bitmaps
* Compound - Glue, Break, Scale
* POINTs - Move, Add, Remove
* Objects - Move, Copy, Delete, Mirror, Rotate, Paste
use right mouse button to stop extra lines, shapes being formed and the left mouse to select/deselect tools button(s)
* Rotate - moves in 90 degree turns centered on clicked POINT of a polygon or square
;Attributes which provide change(s) to the above primitives
* Color
* Line Width
* Line Style
* arrowheads
;Modes
Choose from freehand, charts, figures, magnet, etc.
;Library - allows .fig clip-art to be stored
* compound tools to add .fig(s) together
;FIG 3.2 [http://epb.lbl.gov/xfig/fig-format.html Format] as produced by xfig version 3.2.5
<pre>
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
4 0 0 50 -1 0 12 0.0000 4 135 1050 1050 2475 This is a test.01
</pre>
# change the text alignment within the textbox. I can choose left, center, or right aligned by either changing the integer in the second column from 0 (left) to 1 or 2 (center, or right).
# The third integer in the row specifies fontcolor. For instance, 0 is black, but blue is 1 and Green3 is 13.
# The sixth integer in the bottom row specifies fontface. 0 is Times-Roman, but 16 is Helvetica (a MATLAB default).
# The seventh number is fontsize. 12 represents a 12pt fontsize. Changing the fontsize of an item really is as easy as changing that number to 20.
# The next number is the counter-clockwise angle of the text. Notice that I have changed the angle to .7854 (pi/4 rounded to four digits=45 degrees).
# twelfth number is the position according to the standard “x-axis” in Xfig units from the left. Note that 1200 Xfig units is equivalent to once inch.
# thirteenth number is the “y-position” from the top using the same unit convention as before.
* The nested text string is what you entered into the textbox.
* The “01″ present at the end of that line in the .fig file is the closing tag. For instance, a change to \100 appends a @ symbol at the end of the period of that sentence.
; Just to note there are no layers, no 3d functions, no shading, no transparency, no animation
[[#top|...to the top]]
===Audio===
# AHI uses linear panning/balance, which means that in the center, you will get -6dB. If an app uses panning, this is what you will get. Note that apps like Audio Evolution need panning, so they will have this problem.
# When using AHI Hifi modes, mixing is done in 32-bit and sent as 32-bit data to the driver. The Envy24HT driver uses that to output at 24-bit (always).
# For the Envy24/Envy24HT, I've made 16-bit and 24-bit inputs (called Line-in 16-bit, Line-in 24-bit etc.). There is unfortunately no app that can handle 24-bit recording.
====Music Mods====
Digital module (mods) trackers are music creation software using samples and sometimes soundfonts, audio plugins (VST, AU or RTAS), MIDI.
Generally, MODs are similar to MIDI in that they contain note on/off and other sequence messages that control the mod player. Unlike (most) midi files, however, they also contain sound samples that the sequence information actually plays. MOD files can have many channels (classic amiga mods have 4, corresponding to the inbuilt sound channels), but unlike MIDI, each channel can typically play only one note at once. However, since that note might be a sample of a chord, a drumloop or other complex sound, this is not as limiting as it sounds.
Like MIDI, notes will play indefinitely if they're not instructed to end. Most trackers record this information automatically if you play your music in live. If you're using manual note entry, you can enter a note-off command with a keyboard shortcut - usually Caps Lock.
In fact when considering file size MOD is not always the best option. Even a dummy song wastes few kilobytes for nothing when a simple SID tune could be few hundreds bytes and not bigger than 64kB. AHX is another small format, AHX tunes are never larger than 64kB excluding comments.
[https://www.youtube.com/watch?v=rXXsZfwgil Protrekkr] (previously aka [w:Juan_Antonio_Arguelles_Rius|NoiseTrekkr])
If Protrekkr does not start, please check if the Unit 0 has been setup in the AHI prefs and still not, go to the directory utilities/protrekkr and double click on the Protrekkr icon
*Sample
*Note - Effect
*Track (column) - Pattern - Order
It all starts with the Sample which is used to create Note(s) in a Track (column of a tracker)
The Note can be changed with an Effect. A Track of Note(s) can be collected into a Pattern (section of a song) and these can be given Order to create the whole song.
Patience (notes have to be entered one at a time) or playing the bassline on a midi controller (faster - see midi section above). Best approach is to wait until a melody popped into your head.
*Up-tempo means the track should be reasonably fast, but not super-fast.
*Groovy and funky imply the track should have some sort of "swing" feel, with plenty of syncopation or off beat emphasis and a recognizable, melodic bass line.
*Sweet and happy mean upbeat melodies, a major key and avoiding harsh sounds.
*Moody - minor key
First, create a quick bass sound, which is basically a sine wave, but can be hand drawn for a little more variance. It could also work for the melody part, too.
This is usually a bass guitar or some kind of synthesizer bass. The bass line is often forgotten by inexperienced composers, but it plays an important role in a musical piece. Together with the rhythm section the bass line forms the groove of a song. It's the glue between the rhythm section and the melodic layer of a song.
The drums are just pink noise samples, played at different frequencies to get a slightly different sound for the kick, snare, and hihats.
Instruments that fall into the rhythm category are bass drums, snares, hi-hats, toms, cymbals, congas, tambourines, shakers, etc. Any percussive instrument can be used to form part of the rhythm section.
The lead is the instrument that plays the main melody, on top of the chords. There are many instruments that can play a lead section, like a guitar, a piano, a saxophone or a flute. The list is almost endless. There is a lot of overlap with instruments that play chords. Often in one piece an instrument serves both roles. The lead melody is often played at a higher pitch than the chords.
Listened back to what was produced so far, and a counter-melody can be imagined, which can be added with a triangle wave.
To give the ends of phrases some life, you can add a solo part with a crunchy synth. By hitting random notes in the key of G, then edited a few of them.
For the climax of the song, filled out the texture with a gentle high-pitch pad… …and a grungy bass synth.
The arrow at A points at the pattern order list. As you see, the patterns don't have to be in numerical order. This song starts with pattern "00", then pattern "02", then "03", then "01", etcetera. Patterns may be repeated throughout a song.
The B arrow points at the song title. Below it are the global BPM and speed parameters. These determine the tempo of the song, unless the tempo is altered through effect commands during the song.
The C arrow points at the list of instruments. An instrument may consist of multiple samples. Which sample will be played depends on the note. This can be set in the Instrument Editing screen. Most instruments will consist of just one sample, though. The sample list for the selected instrument can be found under arrow D.
Here's a part of the main editing screen. This is where you put in actual notes. Up to 32 channels can be used, meaning 32 sounds can play simultaneously. The first six channels of pattern "03" at order "02" are shown here. The arrow at A points at the row number. The B arrow points at the note to play, in this case a C4. The column pointed at by the C arrow tells us which instrument is associated with that note, in this case instrument #1 "Kick".
The column at D is used (mainly) for volume commands. In this case it is left empty which means the instrument should play at its default volume. You can see the volume column being used in channel #6.
The E column tells us which effect to use and any parameters for that effect. In this case it holds the "F" effect, which is a tempo command. The "04" means it should play at tempo 4 (a smaller number means faster).
Base pattern
When I create a new track I start with what I call the base pattern. It is worthwhile to spend some time polishing it as a lot of the ideas in the base pattern will be copied and used in other patterns. At least, that's how I work. Every musician will have his own way of working. In "Wild Bunnies" the base pattern is pattern "03" at order "02".
In the section about selecting samples I talked about the four different categories of instruments: drums, bass, chords and leads. That's also how I usually go about making the base pattern. I start by making a drum pattern, then add a bass line, place some chords and top it off with a lead. This forms the base pattern from which the rest of the song will grow.
Drums
Here's a screenshot of the first four rows of the base pattern. I usually reserve the first four channels or so for the drum instruments. Right away there are a couple of tricks shown here. In the first channel the kick, or bass drum, plays some notes. Note the alternating F04 and F02 commands. The "F" command alters the tempo of the song and by quickly alternating the tempo; the song will get some kind of "swing" feel.
In the second channel the closed hi-hat plays a fairly simple pattern. Further down in the channel, not shown here, some open hi-hat notes are added for a bit of variation.
In the third and fourth channel the snare sample plays. The "8" command is for panning. One note is panned hard to the left and the other hard to the right. One sample is played a semitone lower than the other. This results in a cool flanging effect. It makes the snare stand out a little more in the mix.
Bass line
There are two different instruments used for the bass line. Instrument #6 is a pretty standard synthesized bass sound. Instrument #A sounds a bit like a slap bass when used with a quick fade out. By using two different instruments the bass line sounds a bit more ”human”. The volume command is used to cut off the notes. However, it is never set to zero. Setting the volume to a very small value will result in a reverb-like effect. This makes the song sound more "live".
The bass line hints at the chords that will be played and the key the song will be in. In this case the key of the song is D-major, a positive and happy key.
Chords
The D major chords that are being played here are chords stabs; short sounds with a quick decay (fade out). Two different instruments (#8 and #9) are used to form the chords. These instruments are quite similar, but have a slightly different sound, panning and volume decay. Again, the reason for this is to make the sound more human. The volume command is used on some chords to simulate a delay, to achieve more of a live feel. The chords are placed off-beat making for a funky rhythm.
Lead
Finally the lead melody is added. The other instruments are invaluable in holding the track together, but the lead melody is usually what catches people's attention.
A lot of notes and commands are used here, but it looks more complex than it is. A stepwise ascending melody plays in channel 13. Channel 14 and 15 copy this melody, but play it a few rows later at a lower volume. This creates an echo effect. A bit of panning is used on the notes to create some stereo depth. Like with the bass line, instead of cutting off notes the volume is set to low values for a reverb effect. The "461" effect adds a little vibrato to the note, which sounds nice on sustained notes.
Those paying close attention may notice the instrument used here for the lead melody is the same as the one used for the bass line (#6 "Square"), except played two or three octaves higher. This instrument is a looped square wave sample. Each type of wave has its own quirks, but the square wave (shown below) is a really versatile wave form.
Song structure
Good, catchy songs are often carefully structured into sections, some of which are repeated throughout the song with small variations.
A typical pop-song structure is: Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus.
Other single sectional song structures are
<pre>
Strophic or AAA Song Form - oldest story telling with refrain (often title of the song) repeated in every verse section melody
AABA Song Form - early popular, jazz and gospel fading during the 1960s
AB or Verse/Chorus Song Form - songwriting format of choice for modern popular music since the 1960s
Verse/Chorus/Bridge Song Form
ABAB Song Form
ABAC Song Form
ABCD Song Form
AAB 12-Bar Song Form - three four-bar lines or sub-sections
8-Bar Song Form
16-Bar Song Form
Hybrid / Compound Song Forms
</pre>
The most common building blocks are:
#INTRODUCTION(INTRO)
#VERSE
#REFRAIN
#PRE-CHORUS / RISE / CLIMB
#CHORUS
#BRIDGE
#MIDDLE EIGHT
#SOLO / INSTRUMENTAL BREAK
#COLLISION
#CODA / OUTRO
#AD LIB (OFTEN IN CODA / OUTRO)
The chorus usually has more energy than the verse and often has a memorable melody line. As the chorus is repeated the most often during the song, it will be the part that people will remember.
The bridge often marks a change of direction in the song. It is not uncommon to change keys in the bridge, or at least to use a different chord sequence. The bridge is used to build up tension towards the big finale, the last repetition of chorus.
Playing
RCTRL: Play song from row 0.
LSHIFT + RCTRL: Play song from current row.
RALT: Play pattern from row 0.
LSHIFT + RALT: Play pattern from current row.
Left mouse on '>': Play song from row 0.
Right mouse on '>': Play song from current row.
Left mouse on '|>': Play pattern from row 0.
Right mouse on '|>': Play pattern from current row.
Left mouse on 'Edit/Record': Edit mode on/off.
Right mouse on 'Edit/Record': Record mode on/off.
Editing
LSHIFT + ESCAPE: Switch large patterns view on/off
TAB: Go to next track
LSHIFT + TAB: Go to prev. track
LCTRL + TAB: Go to next note in track
LCTRL + LSHIFT + TAB: Go to prev. note in track
SPACE: Toggle Edit mode On & Off
(Also stop if the song is being played)
SHIFT SPACE: Toggle Record mode On & Off
(Wait for a key note to be pressed
or a midi in message to be received)
DOWN ARROW: 1 Line down
UP ARROW: 1 Line up
LEFT ARROW: 1 Row left
RIGHT ARROW: 1 Row right
PREV. PAGE: 16 Arrows Up
NEXT PAGE: 16 Arrows Down
HOME / END: Top left / Bottom right of pattern
LCTRL + HOME / END: First / last track
F5, F6, F7, F8, F9: Jump to 0, 1/4, 2/4, 3/4, 4/4 lines of the patterns
+ - (Numeric keypad): Next / Previous pattern
LCTRL + LEFT / RIGHT: Next / Previous pattern
LCTRL + LALT + LEFT / RIGHT: Next / Previous position
LALT + LEFT / RIGHT: Next / Previous instrument
LSHIFT + M: Toggle mute state of the current channel
LCTRL + LSHIFT + M: Solo the current track / Unmute all
LSHIFT + F1 to F11: Select a tab/panel
LCTRL + 1 to 4: Select a copy buffer
Tracking
1st and 2nd keys rows: Upper octave row
3rd and 4th keys rows: Lower octave row
RSHIFT: Insert a note off
/ and * (Numeric keypad)
or F1 F2: -1 or +1 octave
INSERT / BACKSPACE: Insert or Delete a line in current track
or current selected block.
LSHIFT + INSERT / BACKSPACE: Insert or Delete a line in current pattern
DELETE (NOT BACKSPACE): Empty a column or a selected block.
Blocks
(Blocks can also be selected with the mouse by holding the right button and scrolling the pattern with the mouse wheel).
LCTRL + A: Select entire current track
LCTRL + LSHIFT + A: Select entire current pattern
LALT + A: Select entire column note in a track
LALT + LSHIFT + A: Select all notes of a track
LCTRL + X: Cut the selected block and copy it into the block-buffer
LCTRL + C: Copy the selected block into the block-buffer
LCTRL + V: Paste the data from the block buffer into the pattern
LCTRL + I: Interpolate selected data from the first to the last row of a selection
LSHIFT + ARROWS
PREV. PAGE
NEXT PAGE: Select a block
LCTRL + R: Randomize the select columns of a selection, works similar to CTRL + I (interpolating them)
LCTRL + U: Transpose the note of a selection to 1 seminote higher
LCTRL + D: Transpose the note of a selection to 1 seminote lower
LCTRL + LSHIFT + U: Transpose the note of a selection to 1 seminote higher (only for the current instrument)
LCTRL + LSHIFT + D: Transpose the note of a selection to 1 seminote lower (only for the current instrument)
LCTRL + H: Transpose the note of a selection to 1 octave higher
LCTRL + L: Transpose the note of a selection to 1 octave lower
LCTRL + LSHIFT + H: Transpose the note of a selection to 1 octave higher (only for the current instrument)
LCTRL + LSHIFT + L: Transpose the note of a selection to 1 octave lower (only for the current instrument)
LCTRL + W: Save the current selection into a file
Misc
LALT + ENTER: Switch between full screen / windowed mode
LALT + F4: Exit program (Windows only)
LCTRL + S: Save current module
LSHIFT + S: Switch top right panel to synths list
LSHIFT + I: Switch top right panel to instruments list
<pre>
C-x xh xx xx hhhh Volume
B-x xh xx xx hhhh Jump to
A#x xh xx xx hhhh hhhh Slide
F-x xh xx xx hhhh Tempo
D-x xh xx xx hhhh Pattern Break
G#x xh xx xx hhhh
</pre>
h Hex 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
d Dec 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
The Set Volume command: C. Input a note, then move the cursor to the effects command column and type a C. Play the pattern, and you shouldn't be able to hear the note you placed the C by. This is because the effect parameters are 00. Change the two zeros to a 40(Hex)/64(Dec), depending on what your tracker uses. Play back the pattern again, and the note should come in at full volume.
The Position Jump command next. This is just a B followed by the position in the playing list that you want to jump to. One thing to remember is that the playing list always starts at 0, not 1. This command is usually in Hex.
Onto the volume slide command: A. This is slightly more complex (much more if you're using a newer tracker, if you want to achieve the results here, then set slides to Amiga, not linear), due to the fact it depends on the secondary tempo. For now set a secondary tempo of 06 (you can play around later), load a long or looped sample and input a note or two. A few rows after a note type in the effect command A. For the parameters use 0F. Play back the pattern, and you should notice that when the effect kicks in, the sample drops to a very low volume very quickly. Change the effect parameters to F0, and use a low volume command on the note. Play back the pattern, and when the slide kicks in the volume of the note should increase very quickly.
This because each part of the effect parameters for command A does a different thing. The first number slides the volume up, and the second slides it down. It's not recommended that you use both a volume up and volume down at the same time, due to the fact the tracker only looks for the first number that isn't set to 0. If you specify parameters of 8F, the tracker will see the 8, ignore the F, and slide the volume up. Using a slide up and down at same time just makes you look stupid. Don't do it...
The Set Tempo command: F, is pretty easy to understand. You simply specify the BPM (in Hex) that you want to change to. One important thing to note is that values of lower than 20 (Hex) sets the secondary tempo rather than the primary.
Another useful command is the Pattern Break: D. This will stop the playing of the current pattern and skip to the next one in the playing list. By using parameters of more than 00 you can also specify which line to begin playing from.
Command 3 is Portamento to Note. This slides the currently playing note to another note, at a specified speed. The slide then stops when it reaches the desired note.
<pre>
C-2 1 000 - Starts the note playing
--- 000
C-3 330 - Starts the slide to C-3 at a speed of 30.
--- 300 - Continues the slide
--- 300 - Continues the slide
</pre>
Once the parameters have been set, the command can be input again without any parameters, and it'll still perform the same function unless you change the parameters. This memory function allows certain commands to function correctly, such as command 5, which is the Portamento to Note and Volume Slide command. Once command 3 has been set up command 5 will simply take the parameters from that and perform a Portamento to Note. Any parameters set up for command 5 itself simply perform a Volume Slide identical to command A at the same time as the Portamento to Note.
This memory function will only operate in the same channel where the original parameters were set up.
There are various other commands which perform two functions at once. They will be described as we come across them.
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 00
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 02
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 05
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 08
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0A
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0D
C-3 04 .. .. 09 10 ---> C-3 04 .. .. 09 10
(You can also switch on the Slider Rec to On, and perform parameter-live-recording, such as cutoff transitions, resonance or panning tweaking, etc..) Note: this command only works for volume/panning and fx datas columns.
The next command we'll look at is the Portamento up/down: 1 and 2. Command 1 slides the pitch up at a specified speed, and 2 slides it down. This command works in a similar way to the volume slide, in that it is dependent on the secondary tempo. Both these commands have a memory dependent on each other, if you set the slide to a speed of 3 with the 1 command, a 2 command with no parameters will use the speed of 3 from the 1 command, and vice versa.
Command 4 is Vibrato. Vibrato is basically rapid changes in pitch, just try it, and you'll see what I mean. Parameters are in the format of xy, where x is the speed of the slide, and y is the depth of the slide. One important point to remember is to keep your vibratos subtle and natural so a depth of 3 or less and a reasonably fast speed, around 8, is usually used. Setting the depth too high can make the part sound out of tune from the rest.
Following on from command 4 is command 6. This is the Vibrato and Volume Slide command, and it has a memory like command 5, which you already know how to use.
Command 7 is Tremolo. This is similar to vibrato. Rather than changing the pitch it slides the volume. The effect parameters are in exactly the same format. vibrato effect (0x1dxy) x = speed y = depth (can't be used if arpeggio (0x1b) is turned on)
<pre>
C-7 00 .. .. 1B37 <- Turn Arpeggio effect on
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B38 <- Change datas
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B00 <- Turn it off
</pre>
Command 9 is Sample Offset. This starts the playback of the sample from a different place than the start. The effect parameters specify the sample offset, but only very roughly. Say you have a sample which is 8765(Hex) bytes long, and you wanted it to play from position 4321(Hex). The effect parameter could only be as accurate as the 43 part, and it would ignore the 21.
Command B is the Playing List/Order Jump command. The parameters specify the position in the Playing List/Order to jump to. When used in conjunction with command D you can specify the position and the line to play from.
Command E is pretty complex, as it is used for a lot of different things, depending on what the first parameter is. Let's take a trip through each effect in order.
Command E0 controls the hardware filter on an Amiga, which, as a low pass filter, cuts off the highest frequencies being played back. There are very few players and trackers on other system that simulate this function, not that you should need to use it. The second parameter, if set to 1, turns on the filter. If set to 0, the filter gets turned off.
Commands E1/E2 are Fine Portamento Up/Down. Exactly the same functions as commands 1/2, except that they only slide the pitch by a very small amount. These commands have a memory the same as 1/2 as well.
Command E3 sets the Glissando control. If parameters are set to 1 then when using command 3, any sliding will only use the notes in between the original note and the note being slid to. This produces a somewhat jumpier slide than usual. The best way to understand is to try it out for yourself. Produce a slow slide with command 3, listen to it, and then try using E31.
Command E4 is the Set Vibrato Waveform control. This command controls how the vibrato command slides the pitch. Parameters are 0 - Sine, 1 - Ramp Down (Saw), 2 - Square. By adding 4 to the parameters, the waveform will not be restarted when a new note is played e.g. 5 - Sine without restart.
Command E5 sets the Fine Tune of the instrument being played, but only for the particular note being played. It will override the default Fine Tune for the instrument. The parameters range from 0 to F, with 0 being -8 and F being +8 Fine Tune. A parameter of 8 gives no Fine Tune. If you're using a newer tracker that supports more than -8 to +8 e.g. -128 to +128, these parameters will give a rough Fine Tune, accurate to the nearest 16.
Command E6 is the Jump Loop command. You mark the beginning of the part of a pattern that you want to loop with E60, and then specify with E6x the end of the loop, where x is the number of times you want it to loop.
Command E7 is the Set Tremolo Waveform control. This has exactly the same parameters as command E4, except that it works for Tremolo rather than Vibrato.
Command E9 is for Retriggering the note quickly. The parameter specifies the interval between the retrigs. Use a value of less than the current secondary tempo, or else the note will not get retrigged.
Command EA/B are for Fine Volume Slide Up/Down. Much the same as the normal Volume Slides, except that these are easier to control since they don't depend on the secondary tempo. The parameters specify the amount to slide by e.g. if you have a sample playing at a volume of 08 (Hex) then the effect EA1 will slide this volume to 09 (Hex). A subsequent effect of EB4 would slide this volume down to 05 (Hex).
Command EC is the Note Cut. This sets the volume of the currently playing note to 0 at a specified tick. The parameters should be lower than the secondary tempo or else the effect won't work.
Command ED is the Note Delay. This should be used at the same time as a note is to be played, and the parameters will specify the number of ticks to delay playing the note. Again, keep the parameters lower than the secondary tempo, or the note won't get played!
Command EE is the Pattern Delay. This delays the pattern for the amount of time it would take to play a certain number of rows. The parameters specify how many rows to delay for.
Command EF is the Funk Repeat command. Set the sample loop to 0-1000. When EFx is used, the loop will be moved to 1000- 2000, then to 2000-3000 etc. After 9000-10000 the loop is set back to 0- 1000. The speed of the loop "movement" is defined by x. E is two times as slow as F, D is three times as slow as F etc. EF0 will turn the Funk Repeat off and reset the loop (to 0-1000).
effects 0x41 and 0x42 to control the volumes of the 2 303 units
There is a dedicated panel for synth parameter editing with coherent sections (osc, filter modulation, routing, so on) the interface is much nicer, much better to navigate with customizable colors, the reverb is now customizable (10 delay lines), It accepts newer types of Waves (higher bit rates, at least 24). Has a replay routine.
It's pretty much your basic VA synth. The problem isn't with the sampler being to high it's the synth is tuned two octaves too low, but if you want your samples tuned down just set the base note down 2 octaves (in the instrument panel).
so the synth is basically divided into 3 sections from left to right: oscillators/envelopes, then filter and LFO's, and in the right column you have mod routings and global settings.
for the oscillator section you have two normal oscillators (sine, saw, square, noise), the second of which is tunable, the first one tunes with the key pressed. Attached to OSC 1 is a sub-oscillator, which is a sawtooth wave tuned one octave down. The phase modulation controls the point in the duty cycle at which the oscillator starts. The ADSR envelope sliders (grouped with oscs) are for modulation envelope 1 and 2 respectively. you can use the synth as a sampler by choosing the instrument at the top.
In the filter column, the filter settings are: 1 = lowpass, 2 = highpass, 3 = off. cutoff and resonance. For the LFOs they are LFO 1 and LFO 2, the ADSR sliders in those are for the LFO itself.
For the modulation routings you have ENV 1, LFO 1 for the first slider and ENV 2, LFO 2 for the second, you can cycle through the individual routings there, and you can route each modulation source to multiple destinations of course, which is another big plus for this synth. Finally the glide time is for portamento and master volume, well, the master volume... it can go quite loud.
The sequencer is changed too, It's more like the one in AXS if you've used that, where you can mute tracks to re-use patterns with variation.
<pre>
Support for the following modules formats:
669 (Composer 669, Unis 669),
AMF (DSMI Advanced Module Format),
AMF (ASYLUM Music Format V1.0),
APUN (APlayer), DSM (DSIK internal format),
FAR (Farandole Composer),
GDM (General DigiMusic),
IT (Impulse Tracker),
IMF (Imago Orpheus),
MOD (15 and 31 instruments),
MED (OctaMED),
MTM (MultiTracker Module editor),
OKT (Amiga Oktalyzer),
S3M (Scream Tracker 3),
STM (Scream Tracker),
STX (Scream Tracker Music Interface Kit),
ULT (UltraTracker),
UNI (MikMod),
XM (FastTracker 2),
Mid (midi format via timidity)
</pre>
Possible plugin options include [http://lv2plug.in/ LV2],
====Midi - Musical Instrument Digital Interface====
A midi file typically contains music that plays on up to 16 channels (as per the midi standard), but many notes can simultaneously play on each channel (depending on the limit of the midi hardware playing it).
'''Timidity'''
Although usually already installed, you can uncompress the [http://www.libsdl.org/projects/SDL_mixer/ timidity.tar.gz (14MB)] into a suitable drawer like below's SYS:Extras/Audio/
assign timidity: SYS:Extras/Audio/timidity
added to SYSːs/User-Startup
'''WildMidi playback'''
'''Audio Evolution 4 (2003) 4.0.23 (from 2012)'''
*Sync Menu - CAMD Receive, Send checked
*Options Menu - MIDI Machine Control - Midi Bar Display - Select CAMD MIDI in / out - Midi Remote Setup
MCB Master Control Bus
*Sending a MIDI start-command and a Song Position Pointer, you can synchronize audio with an external MIDI sequencer (like B&P).
*B&P Receive, start AE, add AudioEvolution.ptool in Bars&Pipes track, press play / record in AE then press play in Pipes
*CAMD Receive, receive MIDI start or continue commands via camd.library sync to AE
*MIDI Machine Control
*Midi Bar Display
*Select CAMD MIDI in / out
*Midi Remote Setup - open requester for external MIDI controllers to control app mixer and transport controls cc remotely
Channel - mixer(vol, pan, mute, solo), eq, aux, fx,
Subgroup - Volume, Mute, Solo
Transport - Start, End, Play, Stop, Record, Rewind, Forward
Misc - Master vol., Bank Down, Bank up
<pre>
q - quit
First 3 already opened when AE started
F1 - timeline window
F2 - mixer
F3 - control
F4 - subgroups
F5 - aux returns
F6 - sample list
i - Load sample to use
space - start/stop play
b - reset time 0:00
s - split mode
r - open recording window
a - automation edit mode with p panning, m mute and v volume
[ / ] - zoom in / out
: - previous track
* - next track
x c v f - cut copy paste cross-fade
g - snap grid
</pre>
'''[http://bnp.hansfaust.de/ Bars n Pipes sequencer]'''
BarsnPipes debug ... in shell
Menu (right mouse)
*Song - Songs load and save in .song format but option here to load/save Midi_Files .mid in FORMAT0 or FORMAT1
*Track -
*Edit -
*Tool -
*Timing - SMTPE Synchronizing
*Windows -
*Preferences - Multiple MIDI-in option
Windows (some of these are usually already opened when Bars n Pipes starts up for the first time)
*Workflow -> Tracks, .... Song Construction, Time-line Scoring, Media Madness, Mix Maestro,
*Control -> Transport (or mini one), Windows (which collects all the Windows icons together-shortcut), .... Toolbox, Accessories, Metronome,
Once you have your windows placed on the screen that suits your workflow, Song -> Save as Default will save the positions, colors, icons, etc as you'd like them
If you need a particular setup of Tracks, Tools, Tempos etc, you save them all as a new song you can load each time
Right mouse menu -> Preferences -> Environment... -> ScreenMode - Linkages for Synch (to Slave) usbmidi.out.0 and Send (Master) usbmidi.in.0 - Clock MTC
'''Tracks'''
#Double-click on B&P's icon. B&P will then open with an empty Song. You can also double-click on a song icon to open a song in B&P.
#Choose a track. The B&P screen will contain a Tracks Window with a number of tracks shown as pipelines (Track 1, Track 2, etc...). To choose a track, simply click on the gray box to show an arrow-icon to highlight it. This icon show whether a track is chosen or not. To the right of the arrow-icon, you can see the icon for the midi-input. If you double-click on this icon you can change the MIDI-in setup.
#Choose Record for the track. To the right of the MIDI-input channel icon you can see a pipe. This leads to another clickable icon with that shows either P, R or M. This stands for Play, Record or Merge. To change the icon, simply click on it. If you choose P, this track can only play the track (you can't record anything). If you choose R, you can record what you play and it overwrites old stuff in the track. If you choose M, you merge new records with old stuff in the track. Choose R now to be able to make a record.
#Chose MIDI-channel. On the most right part of the track you can see an icon with a number in it. This is the MIDI-channel selector. Here you must choose a MIDI-channel that is available on your synthesizer/keyboard. If you choose General MIDI channel 10, most synthesizer will play drum sounds. To the left of this icon is the MIDI-output icon. Double-click on this icon to change the MIDI-output configuration.
#Start recording. The next step is to start recording. You must then find the control buttons (they look like buttons on a CD-player). To be able to make a record. you must click on the R icon. You can simply now press the play button (after you have pressed the R button) and play something on you keyboard. To playback your composition, press the Play button on the control panel.
#Edit track. To edit a track, you simply double click in the middle part of a track. You will then get a new window containing the track, where you can change what you have recorded using tools provided. Take also a look in the drop-down menus for more features.
Videos to help understand [https://www.youtube.com/watch?v=A6gVTX-9900 small intro], [https://www.youtube.com/watch?v=abq_rUTiSA4&t=3s Overview], [https://www.youtube.com/watch?v=ixOVutKsYQo Workplace Setup CC PC Sysex], [https://www.youtube.com/watch?v=dDnJLYPaZTs Import Song], [https://www.youtube.com/watch?v=BC3kkzPLkv4 Tempo Mapping], [https://www.youtube.com/watch?v=sd23kqMYPDs ptool Arpeggi-8], [https://www.youtube.com/watch?v=LDJq-YxgwQg PlayMidi Song], [https://www.youtube.com/watch?v=DY9Pu5P9TaU Amiga Midi], [https://www.youtube.com/watch?v=abq_rUTiSA4 Learning Amiga bars and Pipes],
Groups like [https://groups.io/g/barsnpipes/topics this] could help
'''Tracks window'''
* blue "1 2 3 4 5 6 7 8 Group" and transport tape deck VCR-type controls
* Flags
* [http://theproblem.alco-rhythm.com/org/bp.html Track 1, Track2, to Track 16, on each Track there are many options that can be activated]
Each Track has a
*Left LHS - Click in grey box to select what Track to work on, Midi-In ptool icon should be here (5pin plug icon), and many more from the Toolbox on the Input Pipeline
*Middle - (P, R, M) Play, Record, Merge/Multi before the sequencer line and a blue/red/yellow (Thru Mute Play) Tap
*Right RHS - Output pipeline, can have icons placed uopn it with the final ptool icon(s) being the 5pin icon symbol for Midi-OUT
Clogged pipelines may need Esc pressed several times
'''Toolbox (tools affect the chosen pipeline)'''
After opening the Toolbox window you can add extra Tools (.ptool) for the pipelines like keyboard(virtual), midimonitor, quick patch, transpose, triad, (un)quantize, feedback in/out, velocity etc
right mouse -> Toolbox menu option -> Install Tool... and navigate to Tool drawer (folder) and select requried .ptool
Accompany B tool to get some sort of rythmic accompaniment, Rythm Section and Groove Quantize are examples of other tools that make use of rythms
[https://aminet.net/search?query=bars Bars & Pipes pattern format .ptrn] for drawer (folder). Load from the Menu as Track or Group
'''Accessories (affect the whole app)'''
Accessories -> Install... and goto the Accessories drawer for .paccess like adding ARexx scripting support
'''Song Construction'''
<pre>
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Duplicator
F5 Eraser
F6 Toolpad
F7 Bounding box
F8 Lock to A-B-A
A-B-A strip, section, edit flags, white boxes,
</pre>
Bars&Pipes Professional offers three track formats; basic song tracks, linear tracks — which don't loop — and finally real‑time tracks. The difference between them is that both song and linear tracks respond to tempo changes, while real‑time tracks use absolute timing, always trigger at the same instant regardless of tempo alterations
'''Tempo Map'''
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Eraser
F5 Curve
F6 Toolpad
Compositions
Lyrics, Key, Rhythm, Time Signature
'''Master Parameters'''
Key, Scale/Mode
'''Track Parameters'''
Dynamics
'''Time-line Scoring'''
'''Media Madness'''
'''Mix Maestro'''
*ACCESSORIES Allows the importation of other packages and additional modules
*CLIPBOARD Full cut, copy and paste operations, enabling user‑definable clips to be shared between tracks.
*INFORMATION A complete rundown on the state of the current production and your machine.
*MASTER PARAMETERS Enables global definition of time signatures, lyrics, scales, chords, dynamics and rhythm changes.
*MEDIA MADNESS A complete multimedia sequencer which allows samples, stills, animation, etc
*METRONOME Tempo feedback via MIDI, internal Amiga audio and colour cycling — all three can be mixed and matched as required.
*MIX MAESTRO Completely automated mixdown with control for both volume and pan. All fader alterations are memorised by the software
*RECORD ACTIVATION Complete specification of the data to be recorded/merged. Allows overdubbing of pitch‑bend, program changes, modulation etc
*SET FLAGS Numeric positioning of location and edit flags in either SMPTE or musical time
*SONG CONSTRUCTION Large‑scale cut and paste of individual measures, verses or chorus, by means of bounding box and drag‑n‑drop mouse selections
*TEMPO MAP Tempo change using a variety of linear and non‑linear transition curves
*TEMPO PALETTE Instant tempo changes courtesy of four user‑definable settings.
*TIMELINE SCORING Sequencing of a selection of songs over a defined period — ideal for planning an entire set for a live performance.
*TOOLBOX Selection screen for the hundreds of signal‑processing tools available
*TRACKS Opens the main track window to enable recording, editing and the use of tools.
*TRANSPORT Main playback control window, which also provides access to user‑ defined flags, loop and punch‑in record modes.
Bars and Pipes Pro 2.5 is using internal 4-Byte IDs, to check which kind of data are currently processed.
Especially in all its files the IDs play an important role. The IDs are stored into the file in the same order they are laid out in the memory.
In a Bars 'N' Pipes file (no matter which kind) the ID "NAME" (saved as its ANSI-values) is stored on a big endian system (68k-computer) as "NAME". On a little endian system (x86 PC computer) as "EMAN". The target is to make the AROS-BnP compatible to songs, which were stored on a 68k computer (AMIGA).
If possible, setting MIDI channels for Local Control for your keyboard
http://www.fromwithin.com/liquidmidi/archive.shtml
MIDI files are essentially a stream of event data. An event can be many things, but typically "note on", "note off", "program change", "controller change", or messages that instruct a MIDI compatible synth how to play a given bit of music.
* Channel - 1 to 16 -
* Messages - PC presets, CC effects like delays, reverbs, etc
* Sequencing - MIDI instruments, Drums, Sound design,
* Recording -
* GUI - Piano roll or Tracker, Staves and Notes
MIDI events/messages like step entry e.g. Note On, Note Off
MIDI events/messages like PB, PC, CC, Mono and Poly After-Touch, Sysex, etc
MIDI sync - Midi Clocks (SPS Measures), Midi Time Code (h, m, s and frames) SMPTE
Individual track editing with audition edits so easier to test any changes. Possible to stop track playback, mix clips from the right edit flag and scroll the display using arrow keys.
Step entry, to extend a selected note hit the space bar and the note grows accordingly. Ability to cancel mouse‑driven edits by simply clicking the right mouse button — at which point everything snaps back into its original form. Lyrics can now be put in with syllable dividers, even across an entire measure or section. Autoranging when you open a edit window, the notes are automatically displayed — working from the lowest upwards.
Flag editing, shift‑click on a flag immediately open the bounds window, ready for numeric input. Ability to cancel edits using the right‑hand mouse button, plus much improved Bounding Box operations.
Icons other than the BarsnPipes icon -> PUBSCREEN=BarsnPipes (cannot choose modes higher than 8bit 256 colors)
Preferences -> Menu in Tracks window - Send MIDI defaults OFF
Prefs -> Environment -> screenmode (saved to BarsnPipes.prefs binary file)
Customization -> pics in gui drawer (folder) -
Can save as .song files and .mid General Midi
SMF is a “Standard Midi File” ([http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html SMF0, SMF1 and SMF2]), [https://github.com/stump/libsmf libsmf], [https://github.com/markc/midicomp MIDIcomp], [https://github.com/MajicDesigns/MD_MIDIFile C++ src], [], [https://github.com/newdigate/midi-smf-reader Midi player],
* SMF0 All MIDI data is stored in one track only, separated exclusively by the MIDI channel.
* SMF1 The MIDI data is stored in separate tracks/channels.
* SMF2 (rarely used) The MIDI data is stored in separate tracks, which are additionally wrapped in containers, so it's possible to have e.g. several tracks using the same MIDI channels.
Would it be possible to enrich Bars N’Pipes with software synth and sample support along with audio recording and mastering tools like in the named MAC or PC music sequencers?
On the classic AMIGA-OS this is not possible because of missing CPU-power. The hardware of the classic AMIGA is not further developed. So we must say (unfortunately) that those dreams can’t become reality
BarsnPipes is best used with external MIDI-equipment. This can be a keyboard or synthesizer with MIDI-connectors.
<pre>
MIDI can control 16 channels
There are USB-MIDI-Interfaces on the market with 16 independent MIDI-lines (multi-port), which can handle 16 MIDI devices independently – 16×16 = 256 independent MIDI-channels or instruments
handle up to 16 different USB-MIDI-Interfaces (multi-device). That is: 16X16X16 = 4096 independent MIDI-channels – theoretically
</pre>
<pre>
Librarian MIDI SYStem EXplorer (sysex) - PatchEditor and used to be supplied as a separate program like PatchMeister but currently not at present
It should support MIDI.library (PD), BlueRibbon.library (B&P), TriplePlayPlus, and CAMD.library (DeluxeMusic) and
MIDI information from a device's user manual and configure a custom interface to access parameters for all MIDI products connected to the system
Supports ALL MIDI events and the Patch/Librarian data is stored in MIDI standard format
Annette M.Crowling, Missing Link Software, Inc.
</pre>
Composers
<pre>
[https://x.com/hirasawa/status/1403686519899054086 Susumu Hirasawa]
</pre>
<pre>
1988 Todor Fay and his wife Melissa Jordan Gray, who founded the Blue Ribbon Inc
1992 Bars&Pipes Pro published
November 2000, Todor Fay announcement to release the sourcecode of Bars&Pipes Pro 2.5c beta
end of May 2001, the source of the main program and the sources of some tools and accessories were in a complete and compileable state
end of October 2009 stop further development of BarsnPipes New for now on all supported systems and made freeware
2013 Alfred Faust diagnosed with incureable illness, called „Myastenia gravis“ (weak muscles)
</pre>
Protrekkr
How to use Midi In/Out in Protrekkr ?
First of all, midi in & out capabilities of this program are rather limited.
# Go to Misc. Setup section and select a midi in or out device to use (ptk only supports one device at a time).
# Go to instrument section, and select a MIDI PRG (the default is N/A, which means no midi program selected).
# Go to track section and here you can assign a midi channel to each track of ptk.
# Play notes :]. Note off works. F'x' note cut command also works too, and note-volume command (speed) is supported.
Also, you can change midicontrollers in the tracker, using '90' in the panning row:
<pre>
C-3 02 .. .. 0000....
--- .. .. 90 xxyy.... << This will set the value
--- .. .. .. 0000.... of the controller n.'xx' to 'yy' (both in hex)
--- .. .. .. 0000....
</pre>
So "--- .. .. 90 2040...." will set the controller number $20(32) to $40(64).
You will need the midi implementation table of your gear to know what you can change with midi controller messages.
N.B. Not all MIDI devices are created equal!
Although the MIDI specification defines a large range of MIDI messages of various kinds, not every MIDI device is required to work in exactly the same way and respond to all the available messages and ways of working. For example, we don't expect a wind synthesiser to work in the same way as a home keyboard.
Some devices, the older ones perhaps, are only able to respond to a single channel. With some of those devices that channel can be altered from the default of 1 (probably) to another channel of the 16 possible.
Other devices, for instance monophonic synthesisers, are capable of producing just one note at a time, on one MIDI channel. Others can produce many notes spread across many channels.
Further devices can respond to, and transmit, "breath controller" data (MIDI controller number 2 (CC#2)) others may respond to the reception of CC#2 but not be able to create and to send it.
A controller keyboard may be capable of sending "expression pedal" data, but another device may not be capable of responding to that message.
Some devices just have the basic GM sound set. The "voice" or "instrument" is selected using a "Program Change" message on its own.
Other devices have a greater selection of voices, usually arranged in "banks", and the choice of instrument is made by responding to "Bank Select MSB" (MIDI controller 0 (CC#0)), others use "Bank Select LSB" (MIDI controller number 32 (CC#32)), yet others use both MSB and LSB sent one after the other, all followed by the Program Change message. The detailed information about all the different voices will usually be available in a published MIDI Data List.
MIDI Implementation Chart
But in the User Manual there is sometimes a summary of how the device works, in terms of MIDI, in the chart at the back of the manual, the MIDI Implementation Chart.
If you require two devices to work together you can compare the two implementation charts to see if they are "compatible". In order to do this we will need to interpret that chart.
The chart is divided into four columns headed "Function", "Transmitted" (or "Tx"), "Received" (or "Rx"), or more correctly "Recognised", and finally, "Remarks".
<pre>
The left hand column defines which MIDI functions are being described.
The 2nd column defines what the device in question is capable of transmitting to another device.
The 3rd column defines what the device is capable of responding to.
The 4th column is for explanations of the values contained within these previous two columns.
</pre>
There should then be twelve sections, with possibly a thirteenth containing extra "Notes". Finally there should be an explanation of the four MIDI "modes" and what the "X" and the "O" mean.
<pre>
Mode 1: Omni On, Poly;
Mode 2: Omni On, Mono;
Mode 3: Omni Off, Poly;
Mode 4: Omni Off, Mono.
</pre>
O means "yes" (implemented), X means "no" (not implemented).
Sometimes you will find a row of asterisks "**************", these seem to indicate that the data is not applicable in this case. Seen in the transmitted field only (unless you've seen otherwise).
Lastly you may find against some entries an asterisk followed by a number e.g. *1, these will refer you to further information, often on a following page, giving more detail.
Basic Channel
But the very first set of boxes will tell us the "Basic Channel(s)" that the device sends or receives on.
"Default" is what happens when the device is first turned on, "changed" is what a switch of some kind may allow the device to be set to.
For many devices e.g. a GM sound module or a home keyboard, this would be 1-16 for both. That is it can handle sending and receiving on all MIDI channels.
On other devices, for example a synthesiser, it may by default only work on channel 1. But the keyboard could be "split" with the lower notes e.g. on channel 2. If the synth has an arppegiator, this may be able to be set to transmit and or receive on yet another channel.
So we might see the default as "1" but the changed as "1-16".
Modes.
We need to understand Omni On and Off, and Mono and Poly, then we can decipher the four modes.
But first we need to understand that any of these four Mode messages can be sent to any MIDI channel. They don't necessarily apply to the whole device.
If we send an "Omni On" message (CC#125) to a MIDI channel of a device, we are, in effect, asking it to respond to e.g. a Note On / Off message pair, received on any of the sixteen channels. Sound strange? Read it again. Still strange? It certainly is. We normally want a MIDI channel to respond only to Note On / Off messages sent on that channel, not any other. In other words, "Omni Off".
So "Omni Off" (CC#124) tells a channel of our MIDI device to respond only to messages sent on that MIDI channel.
"Poly" (CC#127) is for e.g. a channel of a polyphonic sound module, or a home keyboard, to be able to respond to many simultaneous Note On / Off message pairs at once and produce musical chords.
"Mono" (CC#126) allows us to set a channel to respond as if it were e.g. a flute or a trumpet, playing just one note at a time. If the device is capable of it, then the overlapping of notes will produce legato playing, that is the attack portion of the second note of two overlapping notes will be removed resulting in a "smoother" transition.
So a channel with a piano voice assigned to it will have Omni Off, Poly On (Mode 3), a channel with a saxophone voice assigned could be Omni Off, Mono On (Mode 4).
We call these combinations the four modes, 1 to 4, as defined above.
Most modern devices will have their channels set to Mode 3 (Omni Off, Poly) but be switchable, on a per channel basis, to Mode 4 (Omni Off, Mono).
This second section of data will include first its default value i.e. upon device switch on. Then what Mode messages are acceptable, or X if none.
Finally, in the "Altered" field, how a Mode message that can't be implemented will be interpreted. Usually there will just be a row of asterisks effectively meaning nothing will be done if you try to switch to an unimplemented mode.
Note Number
<pre>
The next row will tell us which MIDI notes the device can send or receive, normally 0-127.
The second line, "True Voice" has the following in the MIDI specification:
"Range of received note numbers falling within the range of true notes produced by the instrument."
My interpretation is that, for instance, a MIDI piano may be capable of sending all MIDI notes (0 to 127) by transposition, but only responding to the 88 notes (21 to 108) of a real piano.
</pre>
Velocity
This will tell us whether the device we're looking at will handle note velocity, and what range from 1-127, or maybe just 64, it transmits or will recognise. So usually "O" plus a range or "X" for not implemented.
After touch
This may have one or two lines two it.
If a one liner the either "O" or "X", yes or no.
If a two liner then it may include "Keys" or "Poly" and "Channel".
This will show whether the device will respond to Polyphonic after touch or channel after touch or neither.
Pitch Bend
Again "O" for implemented, "X" for not implemented.
(Many stage pianos will have no pitch bend capability.)
It may also, in the notes section, state whether it will respond to the full 14 bits, or not, as usually encoded by the pitch bend wheel.
Control Change
This is likely to be the largest section of the chart.
It will list all those controllers, starting from CC#0, Bank Select MSB, which the device is capable of sending, and those that it will respond to using "O" or "X" respectively.
You will, almost certainly, get some further explanation of functionality in the remarks column, or in more detail elsewhere in the documentation.
Of course you will need to know what all the various controller numbers do. Lots of the official technical specifications can be found at the [www.midi.org/techspecs/ MMA], with the table of messages and control change [www.midi.org/techspecs/midimessages.php message numbers]
Program Change
Again "O" or "X" in the Transmitted or Recognised column to indicate whether or not the feature is implemented. In addition a range of numbers is shown, typically 0-127, to show what is available.
True # (number): "The range of the program change numbers which correspond to the actual number of patches selected."
System Exclusive
Used to indicate whether or not the device can send or recognise System Exclusive messages. A short description is often given in the Remarks field followed by a detailed explanation elsewhere in the documentation.
System Common - These include the following:
<pre>
MIDI Time Code Quarter Frame messages (device synchronisation).
Song Position Pointer
Song Select
Tune Request
</pre>
The section will indicate whether or not the device can send or respond to any of these messages.
System Real Time
These include the following:
<pre>
Timing Clock - often just written as "Clock"
Start
Stop
Continue
</pre>
These three are usually just referred to as "Commands" and listed.
Again the section will indicate which, if any, of these messages the device can send or respond to.
<pre>
Aux. Messages
Again "O" or "X" for implemented or not.
Aux. = Auxiliary.
Active Sense = Active Sensing.
</pre>
Often with an explanation of the action of the device.
Notes
The "Notes" section can contain any additional comments to clarify the particular implementation.
Some of the explanations have been drawn directly from the MMA MIDI 1.0 Detailed Specification.
And the detailed explanation of some of the functions will be found there, or in the General MIDI System Level 1 or General MIDI System Level 2 documents also published by the MMA.
OFFICIAL MIDI SPECIFICATIONS
SUMMARY OF MIDI MESSAGES
Table 1 - Summary of MIDI Messages
The following table lists the major MIDI messages in numerical (binary) order (adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88, and updated by the MIDI Manufacturers Association.). This table is intended as an overview of MIDI, and is by no means complete.
WARNING! Details about implementing these messages can dramatically impact compatibility with other products. We strongly recommend consulting the official MIDI Specifications for additional information.
MIDI 1.0 Specification
Message Summary Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1000nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1001nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1010nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127).
|-
|<!--Status-->1100nnnn || <!--Data-->0ppppppp || <!--Description-->Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.
|-
|<!--Status-->1101nnnn || <!--Data-->0vvvvvvv || <!--Description-->Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
|-
|<!--Status-->1110nnnn || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Pitch Bend Change. This message is sent to indicate a change in the pitch bender (wheel or lever, typically). The pitch bender is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the receiver, but may be set using RPN 0. (lllllll) are the least significant 7 bits. (mmmmmmm) are the most significant 7 bits.
|}
Channel Mode Messages (See also Control Change, above)
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are:
*All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible c = 120, v = 0: All Sound Off
*Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults) c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice.
*Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
* All Notes Off. When an All Notes Off is received, all oscillators will turn off.
c = 123, v = 0: All Notes Off (See text for description of actual mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off)
|}
System Common Messages
System Messages (0xF0)
The final status nybble is a “catch all” for data that doesn’t fit the other statuses. They all use the most significant nybble (4bits) of 0xF, with the least significant nybble indicating the specific category.
The messages are denoted when the MSB of the second nybble is 1. When that bit is a 0, the messages fall into two other subcategories.
System Common
If the MSB of the second second nybble (4 bits) is not set, this indicates a System Common message. Most of these are messages that include some additional data bytes.
System Common Messages
Type Status Byte Number of Data Bytes Usage
<pre>
Time Code Quarter Frame 0xF1 1 Indicates timing using absolute time code, primarily for synthronization with video playback systems. A single location requires eight messages to send the location in an encoded hours:minutes:seconds:frames format*.
Song Position 0xF2 2 Instructs a sequencer to jump to a new position in the song. The data bytes form a 14-bit value that expresses the location as the number of sixteenth notes from the start of the song.
Song Select 0xF3 1 Instructs a sequencer to select a new song. The data byte indicates the song.
Undefined 0xF4 0
Undefined 0xF5 0
Tune Request 0xF6 0 Requests that the receiver retunes itself**.
</pre>
*MIDI Time Code (MTC) is significantly complex. Please see the MIDI Specification
**While modern digital instruments are good at staying in tune, older analog synthesizers were prone to tuning drift. Some analog synthesizers had an automatic tuning operation that could be initiated with this command.
System Exclusive
If you’ve been keeping track, you’ll notice there are two status bytes not yet defined: 0xf0 and 0xf7. These are used by the System Exclusive message, often abbreviated at SysEx. SysEx provides a path to send arbitrary data over a MIDI connection. There is a group of predefined messages for complex data, like fine grained control of MIDI Time code machinery. SysEx is also used to send manufacturer defined data, such as patches, or even firmware updates.
System Exclusive messages are longer than other MIDI messages, and can be any length. The messages are of the following format:
0xF0, 0xID, 0xdd, ...... 0xF7
The message is bookended with distinct bytes.
It opens with the Start Of Exclusive (SOX) data byte, 0xF0.
The next one to three bytes after the start are an identifier.
Values from 0x01 to 0x7C are one-byte vendor IDs, assigned to manufacturers who were involved with MIDI at the beginning.
If the ID is 0x00, it’s a three-byte vendor ID - the next two bytes of the message are the value.
<pre>
ID 0x7D is a placeholder for non-commercial entities.
ID 0x7E indicates a predefined Non-realtime SysEx message.
ID 0x7F indicates a predefined Realtime SysEx message.
</pre>
After the ID is the data payload, sent as a stream of bytes.
The transfer concludes with the End of Exclusive (EOX) byte, 0xF7.
The payload data must follow the guidelines for MIDI data bytes – the MSB must not be set, so only 7 bits per byte are actually usable. If the MSB is set, it falls into three possible scenarios.
An End of Exclusive byte marks the ordinary termination of the SysEx transfer.
System Real Time messages may occur within the transfer without interrupting it. The recipient should handle them independently of the SysEx transfer.
Other status bytes implicitly terminate the SysEx transfer and signal the start of new messages.
Some inexpensive USB-to-MIDI interfaces aren’t capable of handling messages longer than four bytes.
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11110000 || <!--Data-->0iiiiiii [0iiiiiii 0iiiiiii] 0ddddddd --- --- 0ddddddd 11110111 || <!--Description-->System Exclusive.
This message type allows manufacturers to create their own messages (such as bulk dumps, patch parameters, and other non-spec data) and provides a mechanism for creating additional MIDI Specification messages. The Manufacturer's ID code (assigned by MMA or AMEI) is either 1 byte (0iiiiiii) or 3 bytes (0iiiiiii 0iiiiiii 0iiiiiii). Two of the 1 Byte IDs are reserved for extensions called Universal Exclusive Messages, which are not manufacturer-specific. If a device recognizes the ID code as its own (or as a supported Universal message) it will listen to the rest of the message (0ddddddd). Otherwise, the message will be ignored. (Note: Only Real-Time messages may be interleaved with a System Exclusive.)
|-
|<!--Status-->11110001 || <!--Data-->0nnndddd || <!--Description-->MIDI Time Code Quarter Frame.
nnn = Message Type
dddd = Values
|-
|<!--Status-->11110010 || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Song Position Pointer.
This is an internal 14 bit register that holds the number of MIDI beats (1 beat= six MIDI clocks) since the start of the song. l is the LSB, m the MSB.
|-
|<!--Status-->11110011 || <!--Data-->0sssssss || <!--Description-->Song Select.
The Song Select specifies which sequence or song is to be played.
|-
|<!--Status-->11110100 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110110 || <!--Data--> || <!--Description-->Tune Request. Upon receiving a Tune Request, all analog synthesizers should tune their oscillators.
|-
|<!--Status-->11110111 || <!--Data--> || <!--Description-->End of Exclusive. Used to terminate a System Exclusive dump.
|}
System Real-Time Messages
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11111000 || <!--Data--> || <!--Description-->Timing Clock. Sent 24 times per quarter note when synchronization is required.
|-
|<!--Status-->11111001 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111010 || <!--Data--> || <!--Description-->Start. Start the current sequence playing. (This message will be followed with Timing Clocks).
|-
|<!--Status-->11111011 || <!--Data--> || <!--Description-->Continue. Continue at the point the sequence was Stopped.
|-
|<!--Status-->11111100 || <!--Data--> || <!--Description-->Stop. Stop the current sequence.
|-
|<!--Status-->11111101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111110 || <!--Data--> || <!--Description-->Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
|-
|<!--Status-->11111111 || <!--Data--> || <!--Description-->Reset. Reset all receivers in the system to power-up status. This should be used sparingly, preferably under manual control. In particular, it should not be sent on power-up.
|}
Advanced Messages
Polyphonic Pressure (0xA0) and Channel Pressure (0xD0)
Some MIDI controllers include a feature known as Aftertouch. While a key is being held down, the player can press harder on the key. The controller measures this, and converts it into MIDI messages.
Aftertouch comes in two flavors, with two different status messages.
The first flavor is polyphonic aftertouch, where every key on the controller is capable of sending its own independent pressure information. The messages are of the following format:
<pre>
0xnc, 0xkk, 0xpp
n is the status (0xA)
c is the channel nybble
kk is the key number (0 to 127)
pp is the pressure value (0 to 127)
</pre>
Polyphonic aftertouch is an uncommon feature, usually found on premium quality instruments, because every key requires a separate pressure sensor, plus the circuitry to read them all.
Much more commonly found is channel aftertouch. Instead of needing a discrete sensor per key, it uses a single, larger sensor to measure pressure on all of the keys as a group. The messages omit the key number, leaving a two-byte format
<pre>
0xnc, 0xpp
n is the status (0xD)
c is the channel number
pp is the pressure value (0 to 127)
</pre>
Pitch Bend (0xE0)
Many keyboards have a wheel or lever towards the left of the keys for pitch bend control. This control is usually spring-loaded, so it snaps back to the center of its range when released. This allows for both upward and downward bends.
Pitch Bend Wheel
The wheel sends pitch bend messages, of the format
<pre>
0xnc, 0xLL, 0xMM
n is the status (0xE)
c is the channel number
LL is the 7 least-significant bits of the value
MM is the 7 most-significant bits of the value
</pre>
You’ll notice that the bender data is actually 14 bits long, transmitted as two 7-bit data bytes. This means that the recipient needs to reassemble those bytes using binary manipulation. 14 bits results in an overall range of 214, or 0 to 16,383. Because it defaults to the center of the range, the default value for the bender is halfway through that range, at 8192 (0x2000).
Control Change (0xB0)
In addition to pitch bend, MIDI has provisions for a wider range of expressive controls, sometimes known as continuous controllers, often abbreviated CC. These are transmitted by the remaining knobs and sliders on the keyboard controller shown below.
Continuous Controllers
These controls send the following message format:
<pre>
0xnc, 0xcc, 0xvv
n is the status (0xB)
c is the MIDI channel
cc is the controller number (0-127)
vv is the controller value (0-127)
</pre>
Typically, the wheel next to the bender sends controller number one, assigned to modulation (or vibrato) depth. It is implemented by most instruments.
The remaining controller number assignments are another point of confusion. The MIDI specification was revised in version 2.0 to assign uses for many of the controllers. However, this implementation is not universal, and there are ranges of unassigned controllers.
On many modern MIDI devices, the controllers are assignable. On the controller keyboard shown in the photos, the various controls can be configured to transmit different controller numbers. Controller numbers can be mapped to particular parameters. Virtual synthesizers frequently allow the user to assign CCs to the on-screen controls. This is very flexible, but it might require configuration on both ends of the link and completely bypasses the assignments in the standard.
Program Change (0xC0)
Most synthesizers have patch storage memory, and can be told to change patches using the following command:
<pre>
0xnc, 0xpp
n is the status (0xc)
c is the channel
pp is the patch number (0-127)
</pre>
This allows for 128 sounds to be selected, but modern instruments contain many more than 128 patches. Controller #0 is used as an additional layer of addressing, interpreted as a “bank select” command. Selecting a sound on such an instrument might involve two messages: a bank select controller message, then a program change.
Audio & Midi are not synchronized, what I can do ?
Buy a commercial software package but there is a nasty trick to synchronize both. It's a bit hardcore but works for me:
Simply put one line down to all midi notes on your pattern (use Insert key)
and go to 'Misc. Setup', adjust the latency and just search a value
that will make sound sync both audio/midi.
The stock Sin/Saw/Pulse and Rnd waveforms are too simple/common, is there a way to use something more complex/rich ?
You have to ability to redirect the waveforms of the instruments through the synth pipe by selecting the "wav" option for the oscillator you're using for this synth instrument, samples can be used as wavetables to replace the stock signals.
Sound banks like soundfont (sf2) or Kontakt2 are not supported at the moment
====DAW Audio Evolution 4====
Audio Evolution 4 gives you unsurpassed power for digital audio recording and editing on the Amiga. The latest release focusses on time-saving non-linear and non-destructive editing, as seen on other platforms. Besides editing, Audio Evolution 4 offers a wide range of realtime effects, including compression, noise gate, delays, reverb, chorus and 3-band EQ.
Whether you put them as inserts on a channel or use them as auxillaries, the effect parameters are realtime adjustable and can be fully automated. Together with all other mixing parameters, they can even be controlled remotely, using more ergonomic MIDI hardware.
Non-linear editing on the time line, including cut, copy, paste, move, split, trim and crossfade actions
The number of tracks per project(s) is unlimited .... AHI limits you to recording only two at a time. i.e. not on 8 track sound cards like the Juli@ or Phase 88.
sample file import is limited to 16bit AIFF (not AIFC, important distinction as some files from other sources can be AIFC with aiff file extension). and 16bit WAV (pcm only)
Most apps use the Music Unit only but a few apps also use Unit (0-3) instead or as well.
* Set up AHI prefs so that microphone is available. (Input option near the bottom)
stereo++ allows the audio piece to be placed anywhere and the left-right adjusted to sound positionally right
hifi best for music playback if driver supports this option
Load 16bit .aif .aiff only sample(s) to use not AIFC which can have the same ending. AIFF stands for Audio Interchange File Format
sox recital.wav recital.aiff
sox recital.wav −b 16 recital.aiff channels 1 rate 16k fade 3 norm
sox input.wav output.aiff bass −b 16 rate 48k
performs the same format translation, but also applies four effects (down-mix to one channel, sample rate change, fade-in, nomalize), and stores the result at a bit-depth of 16.
rec −c 2 radio.aiff trim 0 30:00
records half an hour of stereo audio
play existing-file.wav
24bit PCM WAV or AIFF do not work
*No stream format handling. So no way to pass on an AC3 encoded stream unmodified to the digital outputs through AHI.
*No master volume handling. Each application has to set its own volume. So each driver implements its own custom driver-mixer interface for handling master volumes, mute and preamps.
*Only one output stream. So all input gets mixed into one output.
*No automatic handling of output direction based on connected cables.
*No monitor input selection. Only monitor volume control.
select the correct input (Don't mistake enabled sound for the correct input.)
The monitor will feedback audio to the lineout and hp out no matter if you have selected the correct input to the ADC. The monitor will provide sound for any valid input. This will result in free mixing when recording from the monitor input instead of mic/line because the monitor itself will provide the hardware mixing for you. Be aware that MIC inputs will give two channel mono. Only Linein will give real stereo.
Now for the not working part. Attempt to record from linein in the AE4 record window, the right channel is noise and the left channel is distorted. Even with the recommended HIFI 16bit Stereo++ mode at 48kHz.
Channels
Monitor
Gain
Inout
Output
Advanced settings - Debugging via serial port
* Options -> Soundcard In/Out
* Options -> SampleRate
* Options -> Preferences
F6 for Sample File List
Setting a grid is easy as is measuring the BPM by marking a section of the sample. Is your kick drum track "not in time" ? If so, you're stumped in AE4 as it has no fancy variable time signatures and definitely no 'track this dodgy rhythm' function like software of the nature of Logic has. So if your drum beat is freeform you will need to work in freeform mode. (Real music is free form anyway).
If the drum *is* accurate and you are just having trouble measuring the time, I usually measure over a range of bars and set the number of beats in range to say 16 as this is more accurate, Then you will need to shift the drum track to match your grid *before* applying the grid. (probably an iterative process as when the grid is active samples snap to it, and when inactive you cannot see it).
AE4 does have ARexx but the functions are more for adding samples at set offsets and starting playback / recording.
These are the usual features found in DAWs...
* Recording digital audio, midi sequencer and mixer
* virtual VST instruments and plug-ins
* automation, group channels, MIDI channels, FX sends and returns, audio and MIDI editors and music notation editor
* different track views
* mixer and track layout (but not the same as below)
* traditional two windows (track and mixer)
Mixing - mixdown
Could not figure out how to select what part I wanted to send to the aux, set it to echo and return. Pretty much the whole echo effect. Or any effect.
Take look at page17 of the manual.
When you open the EQ / Aux send popup window you will see 4 sends. Now from the menu choose the windows menu.
Menus->Windows-> Aux Returns Window
or press F5
You will see a small window with 4 volume controls and an effects button for each. Click a button and add an effects to that aux channel, then set it up as desired (note the reverb effect has a special AUX setting that improves its use with the aux channel, not compulsory but highly useful). You set the amount of 'return' on the main mix in the Aux Return window, and the amount sent from each main mixer channel in the popup for that channel. Again the aux sends are "prefade" so the volume faders on each channel do not affect them.
Tracking
Effects - fade in
To add some echoes to some vocals, tried to add an effect on a track but did not come out. This is made more complicated as I wanted to mute a vocal but then make it echo at the muting point. Want to have one word of a vocal heard and then echoed off. But when the track is mute the echo is cancelled out.
To correctly understand what is happening here you need to study the figure at the bottom of page 15 on the manual. You will see from that that the effects are applied 'prefade' So the automation you applied will naturally mute the entire signal.
There would be a number of ways to achieve the goal,
You have three real time effects slots, one for smoothing like so
Sample -> Amplify -> Delay
Then automate the gain of the amplify block so that it effectively mutes the sample just before the delay at the appropriate moment, the echo effect should then be heard.
Getting the effects in the right order will require experimentation as they can only be added top down and it's not obvious which order they are applied to the signal, but there only two possibilities, so it wont take long to find out.
Using MUTE can cause clicks to the Amplify can be used to mute more smoothly so that's a secondary advantage.
Signal Processing -
Overdub
[[#top|...to the top]]
===Office===
====Spreadsheet Leu====
Support for some xlsx, and ods functions
====Spreadsheet Ignition====
; Needs ABIv1 to be completed before more can be done
File formats supported
* ascii #?.txt and #?.csv (single sheets with data only).
* igs and TurboCalc(WIP) #?.tc for all sheets with data, formats and formulas.
There is '''no''' support for xls, xlsx, ods or uos ([http://en.wikipedia.org/wiki/Uniform_Office_Format Uniform Unified Office Format]) at the moment.
* Always use Esc key after editing Spreadsheet cells.
* copy/paste seems to copy the first instance only so go to Edit -> Clipboard to manage the list of remembered actions.
* Right mouse click on row (1 or 2 or 3) or column header (a or b or c) to access optimal height or width of the row or column respectively
* Edit -> Insert -> Row seems to clear the spreadsheet or clears the rows after the inserted row until undo restores as it should be...
Change Sheet name by Object -> Sheet -> Properties
Click in the cell which will contain the result, and click '''down arrow button''' to the right of the formula box at the bottom of the spreadsheet and choose the function required from the list provided. Then click on the start cell and click on the bottom right corner, a '''very''' small blob, which allows stretching a bounding box (thick grey outlines) across many cells This grey bounding box can be used to '''copy a formula''' to other cells.
Object -> Cell -> Properties to change cell format - Currency only covers DM and not $, Euro, Renminbi, Yen or Pound etc.
Shift key and arrow keys selects a range of cells, so that '''formatting can be done to all highlighted cells'''.
View -> Overview then select ALL with one click (in empty cell in the top left hand corner of the sheet).
Default mode is relative cell referencing e.g. a1+a2 but absolute e.g. $a$1+$a$2 can be entered.
* #sheet-name to '''absolute''' reference another sheet-name cell unless reference() function used.
;Graphs
use shift key and arrow keys to select a bunch of cells to be graph'ed making sure that x axes represents and y axes represents
* value() - 0 value, 1 percent, 2 date, 3 time, 4 unit ...
;Dates
* Excel starts a running count from the 1st Jan 1900 and Ignition starts from 1st Jan 1AD '''(maybe this needs to change)'''
Set formatting Object -> Cell -> Properties and put date in days
;Time
Set formatting Object -> Cell -> Properties and put time in seconds taken
;Database (to be done by someone else)
type - standard, reference (bezug), search criterion (suchkriterium),
* select a bunch of cells and Object -> Database -> Define to set Datenbank (database) and Felder (fields not sure how?)
* Neu (new) or loschen (delete) to add/remove database headings e.g. Personal, Start Date, Finish Date (one per row?)
* Object -> Database -> Index to add fields (felder) like Surname, First Name, Employee ID, etc. to ?
Filtering done with dbfilter(), dbproduct() and dbposition().
Activities with dbsum(), dbaverage(), dbmin() and dbmax().
Table sorting -
;Scripts (Arexx)
;Excel(TM) to Ignition - commas ''',''' replaced by semi-colons ''';''' to separate values within functions
*SUM(),
*AVERAGE(), MAX(), MIN(), INT(), PRODUCT(), MEDIAN(), VAR() becomes Variance(), Percentile(),
*IF(), AND, OR, NOT
*LEFT(), RIGHT(), MID() becomes MIDDLE(), LEN() becomes LENGTH(),
*LOWER() becomes LOWERCASE(), UPPER() becomes UPPERCASE(),
* DATE(yyyy,mm,dd) becomes COMPUTEDATE(dd;mm;yyyy),
*TODAY(), DAY(),WEEK(), MONTH(),=YEAR(TODAY()),
*EOMONTH() becomes MONTHLENGTH(),
*NOW() should be date and time becomes time only, SECOND(), MINUTE(), HOUR(),
*DBSUM() becomes DSUM(),
;Missing and possibly useful features/functions needed for ignition to have better support of Excel files
There is no Merge and Join Text over many cells, no protect and/or freeze row or columns or books but can LOCK sheets, no define bunch of cells as a name, Macros (Arexx?), conditional formatting, no Solver, no Goal Seek, no Format Painter, no AutoFill, no AutoSum function button, no pivot tables, (30 argument limit applies to Excel)
*HLOOKUP(), VLOOKUP(), [http://production-scheduling.com/excel-index-function-most-useful/ INDEX(), MATCH()], CHOOSE(), TEXT(),
*TRIM(), FIND(), SUBSTITUTE(), CONCATENATE() or &, PROPER(), REPT(),
*[https://acingexcel.com/excel-sumproduct-function/ SUMPRODUCT()], ROUND(), ROUNDUP(), *ROUNDDOWN(), COUNT(), COUNTA(), SUMIF(), COUNTIF(), COUNTBLANK(), TRUNC(),
*PMT(), PV(), FV(), POWER(), SQRT(), MODE(), TRUE, FALSE,
*MODE(), LARGE(), SMALL(), RANK(), STDEV(),
*DCOUNT(), DCOUNTA(), WEEKDAY(),
;Excel Keyboard [http://dmcritchie.mvps.org/excel/shortx2k.htm shortcuts needed to aid usability in Ignition]
<pre>
Ctrl Z - Undo
Ctrl D - Fill Down
Ctrl R - Fill right
Ctrl F - Find
Ctrl H - Replace
Ctrl 1 - Formatting of Cells
CTRL SHIFT ~ Apply General Formatting ie a number
Ctrl ; - Todays Date
F2 - Edit cell
F4 - toggle cell absolute / relative cell references
</pre>
====Document Scanning - Scandal====
Scanner usually needs to be connected via a USB port and not via a hub or extension lead.
Check in Trident Prefs -> Devices that the USB Scanner is not bound to anything (e.g. Bindings None)
If not found then reboot the computer and recheck.
Start Scandal, choose Settings from Menu strip at top of screen and in Scanner Driver choose the ?#.device of the scanner (e.g. epson2.device).
The next two boxes - leave empty as they are for morphos SCSI use only
or put ata.device (use the selection option in bigger box below) and Unit as 0 this is needed for gt68xx
* gt68xx - no editing needed in s/gt68xx.conf but needs a firmware file that corresponds to the scanner [http://www.meier-geinitz.de/sane/gt68xx-backend/ gt68xx firmwares] in sys:s/gt68xx.
* epson2 - Need to edit the file epson2.conf in sys/s that corresponds to the scanner being used
'''Save''' the settings but do not press the Use button (aros freezes)
Back to the Picture Scan window and the right-hand sections.
Click on the '''Information''' tab and press Connect button and the scanner should now be detected.
Go next to the '''Scanner''' tab next to Information Tab should have Color, Black and White, etc. and dpi settings now. Selecting an option Color, B/W etc. can cause dpi settings corruption (especially if the settings are in one line) so set '''dpi first'''. Make sure if Preview is set or not.
In the '''Scan''' Tab, press Scan and the scanner will do its duty.
Be aware that nothing is saved to disk yet.
In the Save tab, change format JPEG, PNG or IFF DEEP. Tick incremental and base filename if necessary and then click the Save button. The image will now be saved to permanent storage.
The driver ignores a device if it is already bond to another USB class, rejects it from being usable. However, open Trident prefs, select your device and use the right mouse button to open. Select "NONE" to prevent poseidon from touching the device. Now save settings. It should always work now.
[[#top|...to the top]]
===Emulators===
==== Amiberry ====
==== Amiga Emu - Janus UAE ====
With Amibridge, AROS attempts to make the UAE emulator seem embedded within but it still is acting as an app
There is no dynarec m68k for each hardware that Aros supports or direct patching of motorola calls to AROS hardware accelerated ones unless the emulator has that included
Try starting Janus with a priority of -1 like this little script:
<pre>
cd sys:system/AmiBridge/emulator
changetaskpri -1
run janus-uae -f my_uaerc.config >nil:
cd sys:prefs
endcli
</pre>
This stops Janus hogging all the CPU time.
===Miscellaneous===
====Screensaver Blanker====
Most blankers on the amiga (i.e. aros) run as commodities (they are in the tools/commodities drawer). Double click on blanker.
Control is with an app called Exchange, which you need to run first (double click on app) or run QUIET sys:tools/commodities/Exchange >NIL: but subsequently can use (Cntrl Alt h).
Icon tool types (may be broken) or command line options
<pre>
seconds=number
</pre>
Once the timing is right then add the following to s:icaros-sequence or s:user-startup
e.g. for 5 minutes
run QUIET sys:tools/commodities/Blanker seconds=300 >NIL:
*[http://archives.aros-exec.org/index.php?function=showfile&file=graphics/screenblanker/gblanker.i386-aros.zip Garshneblanker] can make Aros unstable or slow. Certain blankers crashes in Icaros 2.0.x like Dragon, Executor.
*[ Acuario AROS version], the aquarium screen saver.
Startup: extras:acuariofv-aros/acuario
Kill: c:break name=extras:acuariofv-aros/acuario
Managed to start Acuario by the Executor blanker.
<pre>
cx_priority=
cx_popkey= ie CX_POPKEY="Shift F1"
cx_popup=Yes or No
</pre>
<pre>
Qualifier String Input Event Class
---------------- -----------------
"lshift" IEQUALIFIER_LSHIFT
"rshift" IEQUALIFIER_RSHIFT
"capslock" IEQUALIFIER_CAPSLOCK
"control" IEQUALIFIER_CONTROL
"lalt" IEQUALIFIER_LALT
"ralt" IEQUALIFIER_RALT
"lcommand" IEQUALIFIER_LCOMMAND
"rcommand" IEQUALIFIER_RCOMMAND
"numericpad" IEQUALIFIER_NUMERICPAD
"repeat" IEQUALIFIER_REPEAT
"midbutton" IEQUALIFIER_MIDBUTTON
"rbutton" IEQUALIFIER_RBUTTON
"leftbutton" IEQUALIFIER_LEFTBUTTON
"relativemouse" IEQUALIFIER_RELATIVEMOUSE
</pre>
<pre>
Synonym Synonym
String Identifier
------- ----------
"shift" IXSYM_SHIFT /* look for either shift key */
"caps" IXSYM_CAPS /* look for either shift key or capslock */
"alt" IXSYM_ALT /* look for either alt key */
Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del",
"up", "down", "right", "left", "f1", "f2", "f3", "f4", "f5",
"f6", "f7", "f8", "f9", "f10", "help".
</pre>
[[#top|...to the top]]
==== World Construction Set WCS (Version 2.031) ====
WCS is a fractal landscape software such as Scenery Animator, Vista Pro and Panorama. Open sourced February 2022, World Construction Set [https://3dnature.com/downloads/legacy-software/ legally and for free] and [https://github.com/AlphaPixel/3DNature c source].
Announced August 1994 this version dates from April 1996 developed by Gary R. Huber and Chris "Xenon" Hanson" from Questar
<pre>
Assign "WCSProjects:" "Volume:Dir/Dir/WCSProjects"
Assign "WCSFrames:" "Volume:Dir/Dir/WCSFrames"
</pre>
<pre>
Load projects .proj by accessing pull down menu Project -> Open then click on CanyonSunset.proj
OK to changing .par file and enlarge Status Log window to show what is happening
Render by pull down menu Modules -> Render with End equal 1 not 300 then click bottom middle button Render
</pre>
[https://www.youtube.com/watch?v=CxQDmf1ZWG0 Youtube walkthrough of above], [], [],
Also try working with the already built file ColoDemo - Then open with the drop-down menu: Project/Open, then WCSProject:ColoDemo.proj
Which allows you to use altimetric DEM files already included and Loading scene parameters from ColoDemo.par
Once this is done, save everything with a new name to start working exclusively on your project.
Then drop-down menu and select Save As ("NewName".proj name), then drop-down menu to open parameter and select Save All ( .par name)
After launching the software, there is a the Module Control Panel composed of five icons.
It is a dock type shortcut of the first few functions of the drop-down menu
*Database - Load (#?.proj), Append, Create, Edit, Save, Dir List (of WCSProject drawer),
*Data Ops - Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
*Map View - Database file Loader leading to Map View Control with option to the Database Editor
*Parameters - Editor for Motion, Color, Ecosystem, Clouds, Waves, management of altimeter files DEM, sclock settings etc
*Render - rendering terrain
These are more in the pull down menu but not in the dock
*Motion Editor
*Color Editor
*Ecosys Editor
Simple minimal workflow
*Load database (1st icon - 1st)
*Set parameters and save .par file (4th icon)
*Render scene (5th icon)
[https://www.youtube.com/watch?v=ZbTwwR2qcc4 Youtube], [],
<pre>
.proj new project name which creates a drawer of additional files
.binary array, ascii array .xyz , z buffer, DTED .dt0, vista 1990s dem, iff conversion
.Obj with .elev, .frd with .hdr maps, - digital elevation model (DEM) is a 3D representation of elevation data in various formats
USGS 7.5MinDEM,
.par
</pre>
Since for the time being no project is loaded, a query window indicates a procedural error when clicking on the rendering icon (right end of the bar). The menu is quite traditional; it varies according to the activity of the windows. To display any altimetric file in the "Mapview" (third icon of the panel), There are three possibilities:
* Loading of a demonstration project.
* The import of a DEM file, followed by texturing and packaging from the "Database-Editor" and the "Color-Editor".
* The creation of an altimetric file in WCS format, then texturing.
The altimeter file editing (display in the menu) is only made possible if the "Mapview" window is active.
The software is made up of many windows and won't be able to describe them all. Know that "Color-Editor" and the "Data-Editor" comprise sufficient functions for obtaining an almost real rendering quality. You have the possibility of inserting vector objects in the "Data-Editor" (creation of roads, railways, etc.)
The Map View (MapView) window
*Database - Objects and Topos
*View - Align, Center, Zoom, Pan, Move
*Draw - Maps and distance
*Object - Find, highlight, add points, conform topo, duplicate
*Motion - Camera, Focus, path, elevation
*Windows - DEM designer, Cloud (.cld) and wave (.wve) editor,
You will notice that by selecting this window and simply moving the pointer to various points on the map you will see latitude and longitude values change, along with the height.
Drop-down menu and Modules, then select MapView and change the width of the window with the map to arrange it in the best way on the screen. With the Auto button the center. Window that then displays the contents of my DEM file, in this case the Grand Canyon. MapView allows you to observe the shape of the landscape from above
ZOOM button
Press the Zoom button and then with the pointer position on a point on the map, press the left mouse button and then move to the opposite corner to circumscribe the chosen area and press the left mouse button again, then we will see the enlarged area selected on the map.
Would add that there is a box next to the Zoom button that allows the direct insertion of a value which, the larger it is, the smaller the magnification and the smaller the value, the stronger the magnification. At each numerical change you will need to press the DRAW button to update the view.
PAN button
Under Zoom you will find the PAN button which allows you to move the map at will in all directions by the amount you want. This is done by drawing a line in one direction, then press PAN and point to an area on the map with the pointer and press the left mouse button. At this point, leave it and move the pointer in one direction by drawing a line and press the left mouse button again to trigger the movement of the map on the screen (origin and end points). Do some experiments and then use the Auto button immediately below to recenter everything.
There are parameters such as TOPO, VEC to be left checked and immediately below one that allows different views of the map with the Style command (Single, Multi, Surface, Emboss, Slope, Contour), each with its own particularities to highlight different details.
Now you have the first basics to manage your project visually on the map. Close the MapView window and go further...
Let's start working on ECOSYSTEMS
If we select Emboss from the MapView Style command we will have a clear idea of how the landscape appears, realizing that it is a predominantly desert region of our planet. Therefore we will begin to act on any vegetation present and the appearance of the landscape.
With WCS we will begin to break down the elements of the landscape by assigning defined characteristics. It will be necessary to determine the classes of the ecosystem (Class) with parameters of Elevation Line (maximum altitude), Relative Elevation (arrangement on basins or convexities with respectively positive or negative parameters), Min Slope and Max Slope (slope). WCS offers the possibility of making ecosystems coexist on the same terrain with the UnderEco function, by setting a Density value.
Ecosys Ecosystem Editor
Let's open it from Modules, then Ecosys Editor. In the left pane you will find the list of ecosystems referring to the files present in our project. It will be necessary to clean up that box to leave only the Water and Snow landscapes and a few other predefined ones. We can do this by selecting the items and pressing the Remove button (be careful not for all elements the button is activated, therefore they cannot all be eliminated).
Once this is done we can start adding new ecosystems. Scroll through the various Unused and as soon as the Name item at the top is activated allowing you to write, type the name of your ecosystem, adding the necessary parameters.
<pre>
Ecosystem1: Name: RockBase Class: Rock Density: 80 MinSlope: 15 UnderEco: Terrain
Ecosystem2: Name: RockIncl Clss: Rock Density: 80 MinSlope: 30 UnderEco: Terrain
Ecosystem3: Name: Grass Class Low Veg Density: 50 Height: 1 Elev Line : 1500 Rel El Eff: 5
Max Slope: 10 – Min Slope: 0 UnderEco: Terrain
Ecosistema4: Name: Shrubs Class: Low Veg Density: 40 Height: 8 Elev Line: 3000
Rel El Eff: -2 Max Slope: 20 Min Slope : 5 UnderEco: Terrain
Ecosistema5: Name: Terrain Class: Ground Density: 100 UnderEco: Terrain
</pre>
Now we need to identify an intermediate ecosystem that guarantees a smooth transition between all, therefore we select as Understory Ecosystem the one called Terrain in all ecosystems, except Snow and Water .
Now we need to 'emerge' the Colorado River in the Canyon and we can do this by raising the sea level to 900 (Sea Level) in the Ecosystem called Water.
Please note that the order of the ecosystem list gives priority to those that come after. So our list must have the following order: Water, Snow, Shrubs, RockIncl, RockBase, Terrain. It is possible to carry out all movements with the Swap button at the bottom. To put order you can also press Short List. Press Keep to confirm all the work done so far with Ecosystem Editor.
Remember every now and then to save both the Project 'Modules/Save' and 'Parameter/Save All'
EcoModels are made up of .etp .fgp .iff8 for each model
Color Editor
Now it's time to define the colors of our scene and we can do this by going to Modules and then Color Editor. In the list we focus on our ecosystems, created first.
Let's go to the bottom of the list and select the first white space, assigning the name 'empty1', with a color we like and then we will find this element again in other environments... It could serve as an example for other situations!
So we move to 'grass' which already exists and assign the following colors: R 60 G 70 B50
<pre>
'shrubs': R 60 G 80 B 30
'RockIncl' R 110 G 65 B 60
'RockBase' R 110 G 80 B 80
' Terrain' R 150 G 30 B 30
<pre>
Now we can work on pre-existing colors
<pre>
'SunLight' R 150 G 130 B 130
'Haze and Fog' R 190 G 170 B 170
'Horizon' R 209 G 185 B 190
'Zenith' R 140 G 150 B 200
'Water' R 90 G 125 B 170
</pre>
Ambient R 0 G 0 B 0
So don't forget to close Color Editor by pressing Keep.
Go once again to Ecosystem Editor and assign the corresponding color to each environment by selecting it using the Ecosystem Color button. Press it several times until the correct one appears. Then save the project and parameters again, as done previously.
Motion Editor
Now it's time to take care of the framing, so let's go to Modules and then to Motion Editor. An extremely feature-rich window will open. Following is the list of parameters regarding the Camera, position and other characteristics:
<pre>
-Camera Altitude: 7.0
-Camera Latitude: 36.075
-Camera Longitude: 112.133
-Focus Attitude: -2.0
-Focus Latitude: 36.275
-Focus Longitude: 112.386
-Camera : 512 → rendering window
-Camera Y: 384 → rendering window
-View Arc: 80 → View width in degrees
-Sun Longitude: 172
-Sun Latitude: -0.9
-Haze Start: 3.8
-Haze Range: 78, 5
</pre>
As soon as the values shown in the relevant sliders have been modified, we will be ready to open the CamView window to observe the wireframe preview. Let's not consider all the controls that will appear.
Well from the Motion Editor if you have selected Camera Altitude and open the CamView panel, you can change the height of the camera by holding down the right mouse button and moving the mouse up and down. To update the view, press the Terrain button in the adjacent window. As soon as you are convinced of the position, confirm again with Keep. You can carry out the same work with the other functions of the camera, such as Focus Altitude...
Let's now see the next positioning step on the Camera map, but let's leave the CamView preview window open while we go to Modules to open the window at the same time MapView. We will thus be able to take advantage of the view from the other together with a subjective one.
From the MapView window, select with the left mouse button and while it is pressed, move the Camera as desired. To update the subjective preview, always click on Terrain.
While with the same procedure you can intervene on the direction of the camera lens, by selecting the cross and with the left button pressed you can choose the desired view. So with the pressure of Terrain I update the Preview. Possibly can enlarge or reduce the Map View using the Zoom button, for greater precision.
Also write that the circle around the cameras indicates the beginning of the haze, there are two types (haze and fog) linked to the altitude. Would also add that the camera height is editable through the Motion Editor panel.
The sun
Let's see that changing the position of the sun from the Motion Editor. Press the SUN button at the bottom right and set the time and the date. Longitude and latitude are automatically obtained by the program. Always open the View Arc command from the Motion Editor panel, an item present in the Parameter List box.
Once again confirm everything with Keep and then save again.
Animation
The animation part is not left-back and also occupies a window. The settings possibilities are enormous. A time line with dragging functions ("slide", "drag"...) comparable to that of LightWave completes this window.
A small window is available for positioning the stars as a function of a date, in order to vary the seasons and their various events (and yes...).
At the bottom of the "Motion-Editor", a "cam-view" function will give you access to a control panel. Different preview modes are possible. The rendering is also accessible through a window. No less than nine pages compose it. At this level, you will be able to determine the backup name of your images ("path"), the type of texture to be calculated, the resolution of the images, activate or deactivate functions such as the depth buffer ("zbuffer"), the blur, the background image, etc.
Once all these parameters have been set, all you have to do is click on the "Render" button.
For rendering go to Modules and then Render. Select the resolution, then under IMA select the name of the image. Move to FRA and indicate the level of fractal detail which of 4 is quite good. Then Keep to confirm and then reopen the window, pressing Render you will see the result. The image will be opened with any viewing program.
Strengths:
* Multi-window.
* Quality of rendering.
* Accuracy.
* Opening, preview and rendering on CyberGraphX screen.
* Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
* The "zbuffer" function.
Weaknesses:
* No OpenGL management
* Calculation time.
* No network computing tool.
====Writing CD / DVD - Frying Pan====
Can be backup DVDs (4GB ISO size limit due to use of FileInfoBlock), create audio cds from mp3's, and put .iso files on discs
If using for the first time - click Drive button and Device set to ata.device and unit to 0 (zero)
Click Tracks Button - Drive 1 - Create New Disc or Import Existing Disc Image (iso bin/cue etc.) - Session File open cue file
If you're making a data cd, with files and drawers from your hard drive, you should be using the ISO Builder.. which is the MUI page on the left. ("Data/Audio Tracks" is on the right).
You should use the "Data/Audio tracks" page if you want to create music cds with AIFF/WAV/MP3 files, or if you download an .iso file, and you want to put it on a cd.
Click WRITE Button - set write speed - click on long Write button
Examples
Easiest way would be to burn a DATA CD, simply go to "Tracks" page "ISO Builder" and "ADD" everything you need to burn.
On the "Write" page i have "Masterize Disc (DAO)", "Close Disc" and "Eject after Write" set.
One must not "Blank disc before write" if one uses a CDR
AUDIO CD from MP3's are as easy but tricky to deal with. FP only understands one MP3 format, Layer II, everything else will just create empty tracks
Burning bootable CD's works only with .iso files. Go to "Tracks" page and "Data/Audio Tracks" and add the .iso
====odf====
Every ODF file is a collection of several subdocuments within a package (ZIP file), each of which stores part of the complete document.
* content.xml – Document content and automatic styles used in the content.
* styles.xml – Styles used in the document content and automatic styles used in the styles themselves.
* meta.xml – Document meta information, such as the author or the time of the last save action.
* settings.xml – Application-specific settings, such as the window size or printer information.
To read document follow these steps:
* Extracting .ods file.
* Getting content.xml file (which contains sheets data).
* Creating XmlDocument object from content.xml file.
* Creating DataSet (that represent Spreadsheet file).
* With XmlDocument select “table:table” elements, and then create adequate DataTables.
* Parse child’s of “table:table” element and fill DataTables with those data.
* At the end, return DataSet and show it in application’s interface.
To write document follow these steps:
* Extracting template.ods file (.ods file that we use as template).
* Getting content.xml file.
* Creating XmlDocument object from content.xml file.
* Erasing all “table:table” elements from the content.xml file.
* Reading data from our DataSet and composing adequate “table:table” elements.
* Adding “table:table” elements to content.xml file.
* Zipping that file as new .ods file.
XLS file format
The XLS file format contains streams, substreams, and records.
These sheet substreams include worksheets, macro sheets, chart sheets, dialog sheets, and VBA module sheets.
All the records in an XLS document start with a 2-byte unsigned integer to specify Record Type (rt), and another for Count of Bytes (cb). A record cannot exceed 8224 bytes. If larger than the rest is stored in one or more continue records.
* Workbook stream
**Globals substream
***BoundSheet8 record - info for Worksheet substream i.e. name, location, type, and visibility. (4bytes the lbPlyPos FilePointer, specifies the position in the Workbook stream where the sheet substream starts)
**Worksheet substream (sheet) - Cell Table - Row record - Cells (2byte=row 2byte=column 2byte=XF format)
***Blank cell record
***RK cell record 32-bit number.
***BoolErr cell record (2-byte Bes structure that may be either a Boolean value or an error code)
***Number cell record (64-bit floating-point number)
***LabelSst cell record (4-byte integer that specifies a string in the Shared Strings Table (SST). Specifically, the integer corresponds to the array index in the RGB field of the SST)
***Formula cell record (FormulaValue structure in the 8 bytes that follow the cell structure. The next 6 bytes can be ignored, and the rest of the record is a CellParsedFormula structure that contains the formula itself)
***MulBlank record (first 2 bytes give the row, and the next 2 bytes give the column that the series of blanks starts at. Next, a variable length array of cell structures follows to store formatting information, and the last 2 bytes show what column the series of blanks ends on)
***MulRK record
***Shared String Table (SST) contains all of the string values in the workbook.
ACCRINT(), ACCRINTM(), AMORDEGRC(), AMORLINC(),
COUPDAYBS(), COUPDAYS(), COUPDAYSNC(), COUPNCD(), COUPNUM(), COUPPCD(),
CUMIPMT(), CUMPRINC(),
DB(), DDB(), DISC(),
DOLLARDE(), DOLLARFR(),
DURATION(), EFFECT(), FV(), FVSCHEDULE(),
INTRATE(), IPMT(), IRR(), ISPMT(), MDURATION(), MIRR(), NOMINAL(), NPER(), NPV(),
ODDFPRICE(), ODDFYIELD(), ODDLPRICE(), ODDLYIELD(),
PMT(), PPMT(), PRICE(), PRICEDISC(), PRICEMAT(), PV(), RATE(),
RECEIVED(), SLN(), SYD(), TBILLEQ(), TBILLPRICE(), TBILLYIELD(),
VDB(), XIRR(), XNPV(), YIELD(), YIELDDISC(), YIELDMAT(),
<pre>
</pre>
<pre>
</pre>
<pre>
</pre>
{{BookCat}}
liojelugmfw2sivc7yvwwtqy5d0j8s8
4672146
4672145
2026-09-24T14:10:51Z
Jeff1138
301139
4672146
wikitext
text/x-wiki
==Introduction==
[[#Graphical Image Editing Art]]
[[#Office Application]]
[[#Audio]]
[[#Misc Application]]
[[#Games & Emulation]]
[[#Application Guides]]
[[#top|...to the top]]
[[#top|...to the top]]
Most apps can be opened on the Workbench (aka publicscreen pubscreen) which is the default display option but can offer a custom one set to your configurations (aka custom screen mode promotion). These custom ones tend to stack so the possible use of A-M/A-N method of switching between full screens and the ability to pull down screens as well
If you are interested in creating or porting new software, see [http://en.wikibooks.org/wiki/Aros/Developer/Docs here]
{| class="wikitable sortable"
|-
!width:30%;|Internet Applications
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Web Online Browser [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=network/browser Amelinium], Odyssey 2.0, [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0], [],
|<!--Amiga OS-->[https://juen.in/ Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, [https://github.com/zapek/Voyager Voyager], [https://github.com/amigazen/aweb3/ AWeb 3.6 src], [https://github.com/matjam/aweb AWeb Src], [http://aminet.net/package/comm/www/NetSurf-m68k-sources Netsurf], [],
|<!--AmigaOS4-->[ Odyssey OWB], [ Timberwolf (Firefox port 2011)], [http://amigaworld.net/modules/newbb/viewtopic.php?forum=32&topic_id=32847 OWB-mui], [http://strohmayer.org/owb/ OWB-Reaction], IBrowse*, [http://os4depot.net/index.php?function=showfile&file=network/browser/aweb.lha AWeb], Voyager, [http://www.os4depot.net/index.php?function=browse&cat=network/browser Netsurf],
|<!--MorphOS-->Wayfarer, [http://fabportnawak.free.fr/owb/ Odyssey OWB], [ Netsurf], IBrowse*, AWeb, [],
|-
|<!--Sub Menu-->YouTube, Dailymotion website downloading videos audio [https://github.com/yt-dlp/yt-dlp yt-dlp], [https://clipgrab.org/ clipgrab],
|<!--AROS-->[], [https://blog.alb42.de/amitube/ Amitube],
|<!--Amiga OS-->[https://blog.alb42.de/amitube/ Amitube], [ smtube],
|<!--AmigaOS4-->[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|<!--MorphOS-->[ ytsearch], [https://blog.alb42.de/amitube/ Amitube], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->Old style E-mailing SMTP POP3 IMAP based
|<!--AROS-->Emailinium, [http://archives.arosworld.org/index.php?function=browse&cat=network/email SimpleMail], [http://sourceforge.net/projects/simplemail/files/ src], [https://github.com/jens-maus/yam YAM]
|<!--Amiga OS-->Emailinium, [http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC, ICB,
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/chat WookieChat], [https://sourceforge.net/projects/wookiechat/ Wookiechat src], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat AiRcOS], Jabberwocky,
|<!--Amiga OS-->[https://github.com/charabaruk/WookieChat Wookiechat], AmIRC
|<!--AmigaOS4-->Wookiechat
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Wookiechat], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 AmIRC],
|-
|<!--Sub Menu-->Instant Messaging IM like [https://github.com/BlitterStudio/amidon Hollywood lang based Mastodon client], BlueSky AT protocol, Facebook(TM), Twitter X (TM), Bitlbee IRC Gateway and others
|<!--AROS-->[https://github.com/kaffeine1/telegram-amiga telegram-amiga], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat jabberwocky],
|<!--Amiga OS-->[http://amitwitter.sourceforge.net/ AmiTwitter], CLIMM, SabreMSN, [https://sourceforge.net/projects/ajabberwocky/ jabberwocky],
|<!--AmigaOS4-->[http://amitwitter.sourceforge.net/ AmiTwitter], SabreMSN,
|<!--MorphOS-->[http://amitwitter.sourceforge.net/ AmiTwitter], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 PolyglotNG], SabreMSN,
|-
|<!--Sub Menu-->Torrents
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/p2p ArTorr],
|<!--Amiga OS-->
|<!--AmigaOS4-->CTorrent, Transmission
|<!--MorphOS-->MLDonkey, Beehive, [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Transmission], CTorrent,
|-
|<!--Sub Menu-->FTP
|<!--AROS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], MarranoFTP, [https://aminet.net/package/comm/tcp/wput-0.3.4c.i386-aros wput i386 c src]
|<!--Amiga OS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP, [https://aminet.net/package/comm/tcp/sana2-tftpclient sana2 tftpclient c src]
|<!--AmigaOS4-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|<!--MorphOS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Pftp], [http://aminet.net/package/comm/tcp/AmiFTP-1.935-OS4 AmiFTP],
|-
|<!--Sub Menu-->WYSIWYG Web Site Editor
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Internet Radio Streaming Audio [http://www.gnu.org/software/gnump3d/ gnump3d], [http://www.icecast.org/ Icecast2] Server (Broadcast) and Client (Listen), [ mpd], [http://darkice.sourceforge.net/ DarkIce], [http://www.dyne.org/software/muse/ Muse],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc], Mplayer (Icecast Client only),
|<!--Amiga OS-->[https://github.com/sandlbn/TuneFinder TuneFinder C Src], [https://github.com/sandlbn/TuneFinderMUI TuneFinderMUI], [http://amigazeux.net/anr/ AmiNetRadio], [https://github.com/boingball/MintAMP MintAMP], [],
|<!--AmigaOS4-->[http://www.tunenet.co.uk/ Tunenet],
|<!--MorphOS-->Mplayer, AmiNetRadio,
|-
|<!--Sub Menu-->VoIP (Voice over IP) with SIP Client (Session Initiation Protocol) or Asterisk IAX2 Clients Softphone (skype like)
|<!--AROS-->
|<!--Amiga OS-->AmiPhone with Speak Freely,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Weather Forecast
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ WeatherBar], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench AWeather], []
|<!--Amiga OS-->[http://amigazeux.net/wetter/ Wetter], [https://github.com/emartisoft/AmiWeatherForecasts AmiWeatherForecasts src],
|<!--AmigaOS4-->[http://os4depot.net/?function=showfile&file=utility/workbench/flipclock.lha FlipClock],
|<!--MorphOS-->[http://amigazeux.net/wetter/ Wetter],
|-
|<!--Sub Menu-->Street Road Maps Route Planning GPS Tracking
|<!--AROS-->[https://blog.alb42.de/programs/muimapparium/ MuiMapparium] [https://build.alb42.de/ Build of MuiMapp versions],
|<!--Amiga OS-->AmiAtlas*, UKRoutePlus*, [http://blog.alb42.de/ AmOSM],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://blog.alb42.de/programs/mapparium/ Mapparium],
|-
|<!--Sub Menu-->Clock and Date setting from the internet by network time protocol (NTP) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ old standard NIST Internet Time Servers],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync], [https://archives.arosworld.org/?function=showfile&file=utility/workbench/amitimekeeper.i386-aros.lha amitimekeeper with c src], [PiNTP], [],
|<!--Amiga OS-->ntpsync, [http://aminet.net/package/util/cdity/AmiTimeKeeper amitimekeeper], [http://aminet.net/comm/misc/netclock netclock], [https://aminet.net/package/comm/net/sntp sntp], [http://aminet.net/package/util/time/ScreenTime ScreenTime],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->RSS
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/Team-Boingo/AmiRSS AmiRSS src]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->AI
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/murinsel/AmigaAI Claude], [https://github.com/geekychris/amiga_mcp AI on host machine], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->BBS
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Graphical Image Editing Art==
{| class="wikitable sortable"
|-
!width:30%;|Image Editing
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Pixel Raster Artwork [https://github.com/LibreSprite/LibreSprite LibreSprite based on GPL aseprite], [https://github.com/abetusk/hsvhero hsvhero], [],
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/ZunePaint/ ZunePaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit LunaPaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit GrafX2], [ LodePaint needs OpenGL],
|<!--Amiga OS-->[http://www.amigaforever.com/classic/download.html PPaint], GrafX2, [https://github.com/grovdata/Amiga_Sources/blob/master/software.md DeluxePaint], [http://www.amiforce.de/perfectpaint/perfectpaint.php PerfectPaint], Zoetrope, Brilliance2*,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/edit LodePaint], GrafX2,
|<!--MorphOS-->Sketch, Pixel*, GrafX2, [http://morphos.lukysoft.cz/en/vypis.php?kat=3 LunaPaint]
|-
|<!--Sub Menu-->Image viewing
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LookHere], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LoView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer PicShow] , [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--Amiga OS-->PicShow, PicView, Photoalbum,
|<!--AmigaOS4-->WarpView, PicShow, flPhoto, Thumbs, [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album]
|-
|<!--Sub Menu-->Photography retouching / Image Manipulation like Photoshop(tm)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOEffects],
|<!--Amiga OS-->[ Tecsoft Video Paint aka TVPaint], Photogenics*, ArtEffect*, ImageFX*, XiPaint, fxPaint, ImageMasterRT, Opalpaint,
|<!--AmigaOS4-->WarpView, flPhoto, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit Photocrop]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], ImageFX*,
|-
|<!--Sub Menu-->Manage RAW picture folder galleries like Darktable, RAWtherapy, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Graphic Format Converter - ICC profile support sRGB, Adobe RGB, XYZ and linear RGB
|<!--AROS-->
|<!--Amiga OS-->GraphicsConverter, ImageStudio, [http://www.coplabs.org/artpro.html ArtPro]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Thumbnail Generator [],
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=utility/shell Thumbnail Generator]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Icon Editor
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/iconedit Archives], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench Icon Toolbox],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/iconedit IconEditor]
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Pixel Art Animation
|<!--AROS-->Lunapaint
|<!--Amiga OS-->PPaint, AnimatED, Scala*, GoldDisk MovieSetter*, Walt Disney's Animation Studio*, ProDAD*, [https://github.com/historicalsource/DeluxePaint DeluxePaint src], Brilliance
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 Titler]
|-
|<!--Sub Menu-->2D SVG based MovieSetter type
|<!--AROS-->
|<!--Amiga OS-->MovieSetter*, Fantavision*
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Morphing
|<!--AROS-->[ GLMorph]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Cad (qcad->LibreCAD, etc.)
|<!--AROS-->
|<!--Amiga OS-->Xcad, MaxonCAD
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Cad like FreeCad, BRL-CAD, OpenSCAD, AvoCADo, etc. using dxf, obj (vertices), blend,
|<!--AROS-->
|<!--Amiga OS-->XCad3d*, DynaCADD*, [https://aminet.net/package/gfx/3d/Cycas178_EN Cycas]*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Model Rendering of glft (json) gbl (png jpg), usdz (USD files with materials, textures, and animations), FBX Filmbox is a proprietary Autodesk format,
|<!--AROS-->POV-Ray
|<!--Amiga OS-->[http://www.discreetfx.com./amigaproducts.html CINEMA 4D]*, POV-Ray, Lightwave3D*, Real3D*, Caligari24*, Reflections/Monzoom*, [https://github.com/privatosan/RayStorm Raystorm src], Tornado 3D, [https://github.com/AlphaPixel/Eric-Graham-1987-Juggler-Raytracer-1.0 Eric-Graham-1987-Juggler-Raytracer-1.0]
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=graphics/convert/ 3doc.i386-aros], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen grabbing display
|<!--AROS-->[ Screengrabber], [http://archives.arosworld.org/index.php?function=browse&cat=utility/misc snapit], [http://archives.arosworld.org/index.php?function=browse&cat=video/record screen recorder], []
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Grab graphics music from apps [https://github.com/Malvineous/ripper6 ripper6], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Manage metadata of images [https://github.com/exiv2/exiv2 exiv2], [ EXIF/IPTC/XMP metadata manipulation], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Office Application==
{| class="wikitable sortable"
|-
!width:30%;|Office
!width:10%;|AROS (x86)
!width:10%;|[http://en.wikipedia.org/wiki/Amiga_software Commodore-Amiga OS 3.1] (68k)
!width:10%;|[http://en.wikipedia.org/wiki/AmigaOS_4 Hyperion OS4] (PPC)
!width:10%;|[http://en.wikipedia.org/wiki/MorphOS MorphOS] (PPC)
|-
|<!--Sub Menu-->Office Suite
|<!--AROS-->
|<!--Amiga OS-->[ Softwood Final Office], [ Wordworth Office], [ Digita Office], [ The Works!], [ Europress Mini Office], [], [ Papyrus Office Demo],
|<!--AmigaOS4-->
|<!--MorphOS-->[ Papyrus Office],
|-
|<!--Sub Menu-->Word-processing
|<!--AROS-->[https://finalwriter.godaddysites.com/ Final Writer 7*], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1995&rowstart=20&pid=12668#post_12668 Slovo], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [],
|<!--AmigaOS-->[ Softwood FinalCopy II*], Haage AmigaWriter*, Digita WordWorth*, Softwood FinalWriter*, Micro-Systems Excellence 3*, Arnor Protext, Rashumon, [ InterWord], [ KindWords], [WordPerfect], [ New Horizons Flow], [ CygnusEd Pro], [ Micro-systems Scribble],
|<!--AmigaOS4-->AbiWord, [ CinnamonWriter],
|<!--MorphOS-->[ Cinnamon Writer], [http://www.meta-morphos.org/viewtopic.php?topic=1246&forum=53 scriba], [http://morphos.lukysoft.cz/en/index.php Papyrus Office],
|-
|<!--Sub Menu-->Spreadsheets
|<!--AROS-->[https://blog.alb42.de/programs/leu/ Leu], [https://archives.arosworld.org/index.php?function=browse&cat=office/spreadsheet ],
|<!--AmigaOS-->[https://aminet.net/package/biz/spread/ignition-src Ignition Src 1.3], [MaxiPlan 500 Plus], [OXXI Plan/IT v2.0 Speadsheet], [ Superplan], [ Creative Developments TurboCalc], [ ProCalc], [ InterSpread], [Digita DGCalc], [ Gold Disk Advantage], [ Micro-systems Analyze!]
|<!--AmigaOS4-->Gnumeric, [https://ignition-amiga.sourceforge.net/ Ignition],
|<!--MorphOS-->[ ignition], [http://morphos.lukysoft.cz/en/vypis.php Papyrus Office],
|-
|<!--Sub Menu-->Presentations
|<!--AROS-->[http://www.hollywoood-mal.com/ Hollywood]*,
|<!--Amiga OS-->[http://www.hollywoood-mal.com/ Hollywood]*, [https://github.com/evaneykelen/mediapoint-amiga MediaPoint C and asm], PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, [https://sourceforge.net/projects/beebase/ BeeBase], Datastore, FinalData*, AmigaBase, Fiasco, Twist2*, [Digita DGBase], [],
|<!--AmigaOS4-->BeeBase, SQLite,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=6 BeeBase],
|-
|<!--Sub Menu-->PDF Viewing and editing digital signatures
|<!--AROS-->[https://github.com/tomaszstaniak/aros-foliopdf aros-foliopdf version of mupdf], [http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Note Taking markdown support like Obsidian like, joplin, OneNote, EverNotes, xournalpp, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Study and analyse, collect, organize, annotate, cite, and share
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PIM Personal Information Manager - Day Diary Planner Calendar App Filofax like
|<!--AROS-->[ ], [ ], [ ],
|<!--Amiga OS-->Digita Organiser*, On The Ball, Everyday Organiser, [ Contact Manager],
|<!--AmigaOS4-->AOrganiser,
|<!--MorphOS-->[http://polymere.free.fr/orga_en.html PolyOrga],
|-
|<!--Sub Menu-->Accounting
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/misc ETB], LoanCalc, [ ], [ ], [ ],
|[ Digita Home Accounts2], Accountant, Small Business Accounts, Account Master, [ Amigabok],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Project Management Research
|<!--AROS-->
|<!--Amiga OS-->SuperGantt, SuperPlan,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Desktop
|<!--AROS-->Wanderer, Scalos, Workbook, DOpus5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[https://github.com/zapek/Ambient Ambient Src]
|-
|<!--Sub Menu-->System Wide Search
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility/filetool Finder], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Wide Dictionary - multilingual [http://sourceforge.net/projects/babiloo/ Babiloo], [http://code.google.com/p/stardict-3/ StarDict],
|<!--AROS-->[ ],
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System wide Thesaurus - multi lingual
|<!--AROS-->[ ],
|Kuma K-Roget*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Sticky Desktop Notes (post it type)
|<!--AROS-->[http://aminet.net/package/util/wb/amimemos.i386-aros AmiMemos], [https://aminet.net/package/util/wb/amimemos.src-aros AmiMemos Src], [],
|<!--Amiga OS-->[http://aminet.net/package/util/wb/StickIt-2.00 StickIt v2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DTP Desktop Publishing
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOPublisher],
|<!--Amiga OS-->[http://pagestream.org/ Pagestream]*, Professional Pro Page*, Saxon Publisher, Pagesetter, PenPal,
|<!--AmigaOS4-->[http://pagestream.org/ Pagestream]*
|<!--MorphOS-->[http://pagestream.org/ Pagestream]*
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers, [https://github.com/bohunamiga/MintPRINT MintPRINT AirPrint IPP], [ Ghostscript], [],
|<!--Amiga OS-->[https://github.com/boingball/MintPRINT MintPRINT IPP], [https://github.com/Andiweli/AmiAirprint AmiAirprint], [http://www.irseesoft.de/tp_what.htm TurboPrint]*, [ GutenPrint], [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR], [], [],
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included, [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR],
|-
|<!--Sub Menu-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*, [https://github.com/boingball/MintSCAN MintSCAN],
|<!--AmigaOS4-->SCANdal (Sane)
|<!--MorphOS-->SCANdal
|-
|<!--Sub Menu-->OCR
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/convert gOCR]
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos-files.net/categories/office/text Tesseract]
|-
|<!--Sub Menu-->Text Editing
|<!--AROS-->Jano Editor (already installed as Editor), [http://archives.arosworld.org/index.php?function=browse&cat=development/edit EdiSyn], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate], [https://archives.arosworld.org/index.php?function=browse&cat=development/edit Vim], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd] [https://github.com/vidarh/FrexxEd src], [ NoWinEd],
|<!--Amiga OS-->[https://aminet.net/package/text/edit/TurboText20 TurboText20 ttx], Annotate, MicroGoldED/CubicIDE*, CygnusED*, Protext*, NoWinED,
|<!--AmigaOS4-->Notepad, Annotate, CygnusED*, NoWinED,
|<!--MorphOS-->MorphOS ED, NoWinED, GoldED/CubicIDE*, CygnusED*, Annotate,
|-
|<!--Sub Menu-->Office Fonts [http://sourceforge.net/projects/fontforge/files/fontforge-source/ Font Designer]
|<!--AROS-->[ ], [ ],
|<!--Amiga OS-->TypeSmith*, SaxonScript (GetFont Adobe Type 1),
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Drawing Vector
|<!--AROS-->[http://sourceforge.net/projects/amifig/ ZuneFIG previously AmiFIG], [https://github.com/serk118/designworks-aros designworks aros 64bit]
|<!--Amiga OS-->Drawstudio*, ProVector*, ArtExpression*, Professional Draw*, AmiFIG, MetaView, [https://gitlab.com/amigasourcecodepreservation/designworks Design Works Src], [],
|<!--AmigaOS4-->MindSpace, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit amifig],
|<!--MorphOS-->SteamDraw, [http://aminet.net/package/gfx/edit/amifig amiFIG],
|-
|<!--Sub Menu-->video conferencing (jitsi)
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->source code hosting
|<!--AROS-->Gitlab,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Remote Desktop (server)
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/VNC_Server ArosVNCServer],
|<!--Amiga OS-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC], [http://dspach.free.fr/amiga/avnc/index.html AVNC]
|<!--AmigaOS4-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC]
|MorphVNC, vncserver
|-
|<!--Sub Menu-->Remote Desktop (client) login and connect to another machine
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/VNC_Client/ ArosVNC], [http://archives.arosworld.org/index.php?function=browse&cat=network/misc rdesktop],
|<!--Amiga OS-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://dspach.free.fr/amiga/vva/index.html VVA], [http://www.hd-zone.com/ RDesktop]
|<!--AmigaOS4-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|-
|<!--Sub Menu-->notifications
|<!--AROS-->
|<!--Amiga OS-->Ranchero
|<!--AmigaOS4-->Ringhio
|<!--MorphOS-->MagicBeacon
|-
|<!--Sub Menu-->Biometric facial logins and fingerprint security features
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Audio==
{| class="wikitable sortable"
|-
!width:30%;|Audio
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing playback Audio like MP3, [https://github.com/chrg127/gmplayer NSF], [https://github.com/kode54/lazyusf miniusf .usflib] [https://gitlab.com/kode54/psflib with pfslib], [], [], etc
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ HarmonyPlayer hp], [http://www.a500.org/downloads/audio/index.xhtml playcdda] CDs, [ WildMidi Player], [https://bszili.morphos.me/ UADE mod player], [], [ RNOTunes], [ mp3Player], [],
|<!--Amiga OS-->AmiNetRadio, AmigaAmp, playOGG, [https://codeberg.org/tygre/amimodradio amimodradio]
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX], [ Samplitude],
|<!--AmigaOS4-->[https://sourceforge.net/projects/hd-rec/ HD-Rec], AmiSoundED, [http://os4depot.net/?function=showfile&file=audio/record/audioevolution4.lha Audio Evolution 4]
|[http://www.hd-rec.de/HD-Rec/index.php?site=home HD-Rec],
|-
|<!--Sub Menu-->Editing Tracker Music
|<!--AROS-->[https://github.com/hitchhikr/protrekkr Protrekkr], [ Schism Tracker], [http://archives.arosworld.org/index.php?function=browse&cat=audio/tracker MilkyTracker], [http://www.hivelytracker.com/ HivelyTracker], [ Radium in AROS already], [http://www.a500.org/downloads/development/index.xhtml libMikMod],
|<!--Amiga OS-->MilkyTracker, HivelyTracker, DigiBooster, Octamed SoundStudio, [https://github.com/elindstrom/soundtracker soundtracker],
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and musical notes on manuscript [https://github.com/ratchov/midish midish] midi sequencer
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes], [], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction Set DMCS2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src] [https://github.com/kas1e/midi-sequencer-amigaos/tree/master/HornyGCC HornyGCC OS4 src] [https://github.com/capehill/midi-sequencer-amigaos Horny OS4 fork src] [https://www.amigans.net/modules/newbb/viewtopic.php?start=0&topic_id=8143&order=ASC&status=&mode=0 OS4 thread], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator], [https://github.com/royaltm/Amiga-midiIn Amiga-midiIn], [ Aegis Sonix 2.0]
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [https://github.com/gooofy/freeaction Horny OS4 src fork], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[ Advanced AHI Recorder all], [https://archives.arosworld.org/index.php?function=browse&cat=audio/record Audio Evolution 4], [http://www.imica.net/SitePortalPage.aspx?siteid=1&did=162 Quick Record], [https://archives.arosworld.org/index.php?function=browse&cat=audio/misc SOX to get AIFF 16bit files], [https://github.com/aros-development-team/AROS/tree/master/workbench/tools/AHIRecord AHIRecord],
|<!--Amiga OS-->[https://aminet.net/package/mus/edit/AudioEvolution3_src Audio Evolution 3 c src], [ Samplitude]*, Audiomaster IV*,
|<!--AmigaOS4-->[https://github.com/timoinutilis/phonolith-amigaos phonolith c src], HD-Rec, Audio Evolution 4,
|<!--MorphOS-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Audio Evolution 4,
|-
|<!--Sub Menu-->Audio Processing like easyeffects so having limiter, compressor, convolver, equalizer and auto volume and many other plugins
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility IsoTools], [https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [ MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|<!--MorphOS-->[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|<!--AROS-->Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|<!--MorphOS-->Lame,
|-
|<!--Sub Menu-->MP3 v1 and v2 Tagger
|<!--AROS-->id3ren (v1), [http://archives.arosworld.org/index.php?function=browse&cat=audio/edit mp3info],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|
|-
|<!--Sub Menu-->Audio Convert
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc Sox], [],
|<!--Amiga OS-->[http://aminet.net/package/mus/misc/SoundBox SoundBox], [http://aminet.net/package/mus/misc/SoundBoxKey SoundBox Key], [http://aminet.net/package/mus/edit/SampleE SampleE], sox
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DJ mixing jamming
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/djh0ffman/PT1210 Hoffman PT1210 DJ tracker], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Radio Automation Software [http://www.rivendellaudio.org/ Rivendell], [http://code.campware.org/projects/livesupport/report/3 Campware LiveSupport], [http://www.sourcefabric.org/en/airtime/ SourceFabric AirTime], [http://www.ohloh.net/p/mediabox404 MediaBox404],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speakers Audio Sonos Mains AC networked wired controlled
*2005 ZP100 with ZP80
*2008 Zoneplayer ZP120 (multi-room wireless amp) ZP90 receiver only with CR100 controller,
*2009 ZonePlayer S5,
*2010 BR100 wireless Bridge (no support),
*2011 Play:3
*2013 Bridge (no support), Play:1,
*2016 Arc, Play:1,
*Beam (Gen 2), Playbar, Ray, Era 100, Era 300, Roam, Move 2,
*Sub (Gen 3), Sub Mini, Five, Amp S2
|<!--AROS-->SonosController
|<!--Amiga OS-->SonosController
|<!--AmigaOS4-->SonosController
|<!--MorphOS-->SonosController
|-
|<!--Sub Menu-->Smart Speakers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Video Creativity and Production==
{| class="wikitable sortable"
|-
!width:30%;|Video
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing Video
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ VAMP], [http://www.a500.org/downloads/video/index.xhtml CDXL player], [http://www.a500.org/downloads/video/index.xhtml IffAnimPlay], [],
|<!--Amiga OS-->Frogger*, AMP2, MPlayer, RiVA*, MooViD*,
|<!--AmigaOS4-->DvPlayer, MPlayer
|<!--MorphOS-->MPlayer, Frogger, AMP2, VLC
|-
|<!--Sub Menu-->Streaming Video and game streaming like OBS studio, Parsec, [https://github.com/lizardbyte/sunshine sunshine], [https://github.com/moonlight-stream/moonlight-qt moonlight], etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Playing DVD
|<!--AROS-->[http://a-mc.biz/ AMC]*, Mplayer
|<!--Amiga OS-->AMP2, Frogger
|<!--AmigaOS4-->[http://a-mc.biz/ AMC]*, DvPlayer*, AMP2,
|<!--MorphOS-->Mplayer
|-
|<!--Sub Menu-->Screen Recording
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/record Screenrecorder], [ ], [ ], [ ], [ ],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Screenrecorder,
|-
|<!--Sub Menu-->Create Edit Individual Video - Amiga like OSs have no pro NLE
|<!--AROS-->[ Mencoder], [ Quick Videos], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit AVIbuild], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/misc FrameBuild], FFMPEG,
|<!--Amiga OS-->[ MainConcept Mainactor Broadcast*], [http://en.wikipedia.org/wiki/Video_Toaster Video Toaster*] with [https://discreetfx.com/openvideotoaster.html some c src], MacroSystem MovieShop 4.3*, proDAD Adorage*, [ IOSpirit VHI studio]*, [Gold Disk ShowMaker], [],
|<!--AmigaOS4-->FFMpeg/GUI
|<!--MorphOS-->Blender, Mencoder, FFmpeg
|-
|<!--Sub Menu-->Subtitle editor
|<!--AROS-->[https://aminet.net/package/text/edit/Slarti_Arosx86ABIv0 Slarti_Arosx86ABIv0], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->IP-based video production workflows with High Dynamic Range (HDR), 10-bit color collaborative NDI,
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Blogging like Lemmy or kbin
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR face recognition for Vtubers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting Live2D models with Cubism type editor or [https://github.com/AyagamiDev/ayagami ayagami] like with zipped moc3 with model metadata (model3, cdi3)
<pre>
Model data (cmo3)
Basic motions (can3)
Background image (png)
Set of files for embedding (runtime folder)
• Model data (moc3)
• Motion data (motion3.json)
• Model settings file (model3.json)
• Physics settings file (physics3.json)
• Display auxiliary file (cdi3.json)
</pre>
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting chatters .VRML models - standardized 3D file format for VR avatars
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->V-tubers V-tubing like Vseeface with Openseeface tracker or Vpuppr (virtual puppet project) for online live 2d / 3d art models rigging rigged LIV
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Misc Application==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->File Management
|<!--AROS-->DOpus4, [https://github.com/BlitterStudio/dopus5 DOpus Magellan aka DOpus 5], [ Scalos], [ Diskmaster],
|<!--Amiga OS-->DOpus2, DOpus 4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], Filer, AmiDisk
|<!--MorphOS-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->[https://arosarchives.os4depot.net/index.php?function=browse&cat=utility md5sum], [https://arosarchives.os4depot.net/index.php?function=browse&cat=utility/filetool asum], [http://archives.arosworld.org/index.php?function=browse&cat=utility/filetool workpar2] (PAR2), [http://zakalwe.fi/~shd/foss/cksfv/files/ compile cksfv from website],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Par2,
|-
|Application Installer
|<!--AROS-->[], [ InstallerNG],
|<!--Amiga OS-->InstallerNG, Grunch,
|<!--AmigaOS4-->Jack
|<!--MorphOS-->Jack
|-
|<!--Sub Menu-->Compression archiver [https://github.com/FS-make-simple/paq9a paq9a], [],
|<!--AROS-->XAD system is a toolkit designed for handling various file and disk archiver
|<!--Amiga OS-->
|<!--AmigaOS4-->[https://aminet.net/package/util/pack/decrunchmania_os4 Crunchmania CrM2 depacker],
|<!--MorphOS-->
|-
|<!--Sub Menu-->Binary Hexadecimal Editor
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/edit Zaphod], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter Disk Management
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [ HDToolBox]
|<!--Amiga OS-->[https://github.com/stefanskotte/hdpart hdpart], [https://github.com/ChuckyGang/AmiPart AmiPart],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair and backups
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS-->[https://aminet.net/package/disk/bakup/quarterback_src Quarterback Tools C and asm src], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Disk check, integrity and history [https://github.com/smartmontools/smartmontools smart tools], [],
|<!--AROS-->
|<!--Amiga OS-->[],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Multiple File renaming
|<!--AROS-->DOpus 4 or 5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Anti Virus
|<!--AROS-->
|<!--Amiga OS-->VChecker,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Random Wallpaper Desktop changer [ DOpus5], [ Scalos],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Alarm Clock, Timer, Stopwatch, Countdown
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench DClock], [http://aminet.net/util/time/AlarmClockAROS.lha AlarmClock], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 2==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->C/C++ IDE Integrated Development
|<!--AROS-->[https://sourceforge.net/projects/aidea/ AIDEa], [ Murks], [],
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, [ StormC], [https://github.com/jens-maus/amide amide], [],
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*,
|-
|<!--Sub Menu-->C/C++ Text Editors
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate] with [https://www.onyxsoft.se/files/annotate_src.lha src],
|<!--Amiga OS-->[ Protext], [ CED], [],
|<!--AmigaOS4-->
|<!--MorphOS-->[https://www.onyxsoft.se/annotate.html Annotate],
|-
|<!--Sub Menu-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->BASIC Computer Language
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/language Basic4SDL], [ Ace Basic], [ X-AMOS], [SDLBasic], [ Alvyn],
|<!--Amiga OS-->[http://www.amiforce.de/main.php Amiblitz 3] with [https://github.com/AmiBlitz/AmiBlitz3 Asm src], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro] with [https://github.com/AmiDARK/AmosProfessionalUnity-Official-Releases Asm src], [http://aminet.net/package/dev/basic/ace24dist ACE Basic], [https://github.com/gooofy/aqb aqb], [],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/], [https://github.com/kermitfrog/Amiga-Re-Engineering Rust, Ghidra and FS-UAE],
|<!--AROS-->
|<!--Amiga OS-->[https://bitbucket.org/rhinoid/convert68000toc/src/main/ convert m68k seka asm-one to c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Gui Creators
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/guitool MuiBuilder],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[ MuiBuilder],
|-
|<!--Sub Menu-->Catalog .cd .ct Custom App Language Editors
|<!--AROS-->FlexCat, [https://archives.arosworld.org/index.php?function=browse&cat=utility Flexcat GUI], [],
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|<!--MorphOS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->Cross Development
|<!--AROS-->[], [],
|<!--Amiga OS-->[https://github.com/geekychris/amiga_mcp amiga_mcp], [https://github.com/mbergmann-sh/AmigaED4-IDE AmigaED4-IDE], [https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/ Turbo Rascal], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Misc Application 3==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Terminals Shells CLIs
|<!--AROS-->[https://tomaszstaniak.com/aros-term/ aros-term], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->OSK On Screen Keyboard
|<!--AROS-->[],
|<!--Amiga OS-->[https://aminet.net/util/wb/OSK.lha OSK]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Magnifier Magnifying Glass Magnification
|<!--AROS-->[http://www.onyxsoft.se/files/zoomit.lha ZoomIT],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Comic Book CBR CBZ format reader viewer
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comics], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comicon], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Reader
|<!--AROS-->[https://blog.alb42.de/programs/#legadon Legadon EPUB],[]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Converter
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Text to Speech tts [https://github.com/JonathanFly/bark-installer Bark], [],
|<!--AROS-->[ Echo " " >SPEAK:A1 inbuilt], [http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator], [https://github.com/sidick/narrator.wyoming narrator.wyoming], [],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=search&tool=simple FLite]
|<!--MorphOS-->[http://se.aminet.net/pub/aminet/mus/misc/ FLite]
|-
|<!--Sub Menu-->Speech Voice Recognition Dictation - [http://sourceforge.net/projects/cmusphinx/files/ CMU Sphinx], [http://julius.sourceforge.jp/en_index.php?q=en/index.html Julius], [http://www.isip.piconepress.com/projects/speech/index.html ISIP],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speech Voice Changer [], [], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Display Blanker screensaver
|<!--AROS-->Blanker Commodity (built in), [https://archives.arosworld.org/index.php?function=browse&cat=graphics/screenblanker GarshneBlanker], [http://sourceforge.net/projects/gblanker/ GBlanker Src], [],
|<!--Amiga OS-->MultiCX,
|<!--AmigaOS4-->
|<!--MorphOS-->ModernArt Blanker,
|-
|<!--Sub Menu-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 4==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Fractals mandelbrot, etc
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/misc],
|<!--Amiga OS-->ZoneXplorer,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Landscape Rendering
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/raytrace WCS World Construction Set],
|<!--Amiga OS-->[ Vista Pro], [http://en.wikipedia.org/wiki/World_Construction_Set World Construction Set]
|<!--AmigaOS4-->[ WCS World Construction Set],
|<!--MorphOS-->[ WCS World Construction Set],
|-
|<!--Sub Menu-->Astronomy [https://sourceforge.net/projects/skychart/ skychart freepascal], [], [],
|<!--AROS-->[ Digital Almanac (ABIv0 only)],
|<!--Amiga OS-->[http://aminet.net/search?query=planetarium Aminet search], [http://aminet.net/misc/sci/DA3V56ISO.zip Digital Almanac], [https://aminet.net/package/misc/sci/da3sourceV58 Src c V58], [ Galileo renamed to Distant Suns]*, [],
|<!--AmigaOS4-->[http://sourceforge.net/projects/digital-almanac/ Digital Almanac], Distant Suns*, [http://www.digitaluniverse.org.uk/ Digital Universe]*,
|<!--MorphOS-->[http://www.aminet.net/misc/sci/da3.lha Digital Almanac], [http://www.aminet.net/package/misc/sci/da3-mos-src Src c V56],
|-
|<!--Sub Menu-->Astrology [https://sourceforge.net/projects/skylendar/ skylendar], [https://github.com/CruiserOne/Astrolog Astrolog], [https://www.astrolog.org/astrolog/astfile.htm Astrology alt site], [https://saravali.github.io/download.html Maitreya], [https://github.com/alamahant/Asteria Asteria],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Genealogy History Family Tree Ancestry Records (FreeBMD, FreeREG, and FreeCEN file formats or GEDCOM GenTree)
|<!--AROS-->
|<!--Amiga OS--> [ Origins], [ Your Family Tree], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Languages
|<!--AROS-->
|<!--Amiga OS-->Fun School,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Mathematics ([http://www-fourier.ujf-grenoble.fr/~parisse/install_en.html Xcas], etc.),
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/scientific mathX]
|<!--Amiga OS-->Maple V, mathX, Fun School, GCSE Maths, [ ], [ ], [ ],
|<!--AmigaOS4-->Yacas
|<!--MorphOS-->Yacas
|-
|<!--Sub Menu-->Maths Graph Function Plotting
|<!--AROS-->[https://blog.alb42.de/programs/#MUIPlot MUIPlot],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->App Utility Launcher Dock toolbar
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/docky BoingBar], [],
|<!--Amiga OS-->[https://github.com/adkennan/DockBot Dockbot],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Printer [https://github.com/OrcaSlicer/OrcaSlicer OrcaSlicer]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->HAM radio, amateur radio, packet radio, [], [], [], [https://cemaxecuter.com/ Dragon OS], [https://github.com/km4ack/73Linux with 73 link update], [https://www.youtube.com/watch?v=YAL5KNePRSg video for],
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/punktniklas/NiKom NiKom], [https://www.amigarealm.com/amiga/amicomms/comm4.htm Comm4], [https://www.amigarealm.com/archives/comms/aarug/ TNC Terminal Node Controller with packets over serial connections on Yaesu or Woxum handheld], [https://aminet.net/comm/misc AmiCom], [ with 7Plus file encoder/decoder], [ mksstv], [ RTTYam],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->modern smart home network like Home Assistant Automation Yellow, Green, Mosquitto, EMQX,
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/evil4dmin/ami2ha HA], [https://github.com/sidick/midge mtqq.lib], [https://aminet.net/package/comm/tcp/AmiHomeassist-0.7 AmiHomeassist],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Teaching classroom learning training [https://github.com/moodle/moodle moodle], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Games & Emulation==
Some emulators/games require OpenGL to function and to adjust ahi prefs channels, frequency and unit0 and unit1 and
[http://aros.sourceforge.net/documentation/users/shell/changetaskpri.php changetaskpri -1]
Rom patching https://www.marcrobledo.com/RomPatcher.js/ https://www.romhacking.net/patch/ (ips, ups, bps, etc) and this other site supports the latter formats https://hack64.net/tools/patcher.php
Free public domain roms for use with emulators can be found [http://www.pdroms.de/ here] as most of the rest are covered by copyright rules. If you like to read about old games see [http://retrogamingtimes.com/ here] and [http://www.armchairarcade.com/neo/ here] and a [http://www.vintagecomputing.com/ blog] about old computers. Possibly some of the [http://www.answers.com/topic/list-of-best-selling-computer-and-video-games best selling] of all time. [http://en.wikipedia.org/wiki/List_of_computer_system_emulators Wiki] with emulated systems list.
[https://archive.gamehistory.org/ Archive of VGHF], [https://library.gamehistory.org/ Video Game History Foundation Library search]
{| class="wikitable sortable"
|-
!width:10%;|Games [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Emulation]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Games Emulation Amstrad CPC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [ Caprice32 (OpenGL & pure SDL)], [ Arnold], [https://retroshowcase.gr/cpcbox-master/],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2],
|-
|<!--Sub Menu-->Games Emulation Apple2 and 2GS
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Arcade
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Mame], [ SI Emu (ABIv0 only)],
|<!--Amiga OS-->Mame,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem xmame], amiarcadia,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 Mame],
|-
|<!--Sub Menu-->Games Emulation Atari 2600 [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Stella],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 5200 [https://github.com/wavemotion-dave/A5200DS A5200DS], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 7800
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 400 800 130XL [https://github.com/wavemotion-dave/A8DS A8DS], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Atari800],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Lynx
|<!--AROS-->[http://myfreefilehosting.com/f/6366e11bdf_1.93MB Handy (ABIv0 only)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Jaguar
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Bandai Wonderswan
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation BBC Micro and Acorn Electron [http://beehttps://bem-unix.bbcmicro.com/download.html BeebEm], [http://b-em.bbcmicro.com/ B-Em], [http://elkulator.acornelectron.co.uk/ Elkulator], [http://electrem.emuunlim.com/ ElectrEm],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Dragon 32 and Tandy CoCo [http://www.6809.org.uk/xroar/ xroar], [],
|<!--AROS-->[], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C16 Plus4
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C64
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Vice (ABIv0 only)], [],
|<!--Amiga OS-->Frodo,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem viceplus],
|<!--MorphOS-->Vice,
|-
|<!--Sub Menu-->Games Emulation Commodore Amiga
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Janus UAE], Emumiga,
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer UAE],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 UAE],
|-
|<!--Sub Menu-->Games Emulation Japanese MSX MSX2
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Intelivision
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Colecovision and Adam
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Milton Bradley (MB) Vectrex [ Vectrex OpenGL],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation PICO8 Pico-8 fantasy video game console [https://github.com/egordorichev/pemsa-sdl/ pemsa-sdl], [https://github.com/jtothebell/fake-08 fake-08], [https://github.com/Epicpkmn11/fake-08/tree/wip fake-08 fork],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo Gameboy
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem vba no sound], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem vba]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo NES
|<!--AROS-->[ EmiNES], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Fceu], [https://github.com/takahirox/nes-js?tab=readme-ov-file nes-js], [https://github.com/bfirsh/jsnes jsnes], [https://github.com/angelo-wf/NesJs NesJs],
|<!--Amiga OS-->AmiNES, [http://www.dridus.com/~nyef/darcnes/ darcNES],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem amines]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo SNES
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Zsnes],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem warpsnes]
|<!--MorphOS-->[http://fabportnawak.free.fr/snes/ Snes9x],
|-
|<!--Sub Menu-->Games Emulation Nintendo N64
*HLE and plugins [ mupen64], [https://github.com/ares-emulator/ares ares], [https://github.com/N64Recomp/N64Recomp N64Recomp], [https://github.com/rt64/rt64 rt64], [https://github.com/simple64/simple64 Simple64],
*LLE [],
|<!--AROS-->[http://code.google.com/p/mupen64plus/ Mupen64+],
|<!--Amiga OS-->[http://code.google.com/p/mupen64plus/ Mupen64+], [http://aminet.net/package/misc/emu/tr-981125_src TR64],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Gamecube Wii]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Wii U]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/yuzu-emu Nintendo Switch]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation NEC PC Engine
|<!--AROS-->[], [], [https://github.com/yhzmr442/jspce js-pce],
|[http://www.hugo.fr.fm/ Hugo], [http://mednafen.sourceforge.net/ Mednafen],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem tgemu]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Master System (SMS)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Dega], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem sms],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem osmose]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Genesis/Megadrive
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem gp no sound], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem DGen],
|<!--Amiga OS-->[http://code.google.com/p/genplus-gx/ Genplus],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem genesisplus]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Saturn
*HLE [https://mednafen.github.io/ mednafen], [http://yabause.org/ yabause], [],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->[http://yabause.org/ Yabause],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Dreamcast
*HLE [https://github.com/flyinghead/flycast flycast], [https://code.google.com/archive/p/nulldc/downloads NullDC],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair ZX80 and ZX81
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair Spectrum
|[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Fuse (crackly sound)], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer SimCoupe], [ FBZX slow], [https://jsspeccy.zxdemo.org/ jsspeccy], [http://torinak.com/qaop/games qaop],
|<!--Amiga OS-->[http://www.lasernet.plus.com/ Asp], [http://www.zophar.net/sinclair.html Speculator], [http://www.worldofspectrum.org/x128/index.html X128],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair QL
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/QDOS4amiga1 QDOS4amiga]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation SNK NeoGeo Pocket
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem gngeo], NeoPop,
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sony PlayStation
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem FPSE],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem FPSE]
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS2]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS3]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://vita3k.org/ Sony Vita]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/shadps4-emu/shadPS4 PS4]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation [http://en.wikipedia.org/wiki/Tangerine_Computer_Systems Tangerine] Oric and Atmos
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Oricutron]
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem Oricutron]
|<!--MorphOS-->[http://aminet.net/package/misc/emu/oricutron Oricutron]
|-
|<!--Sub Menu-->Games Emulation TI 99/4 99/4A [https://github.com/wavemotion-dave/DS994a DS994a], [], [https://js99er.net/#/ js99er], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation HP 38G 40GS 48 49G/50G Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation TI 58 83 84 85 86 - 89 92 Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
{| class="wikitable sortable"
|-
!width:10%;|Games [https://www.rockpapershotgun.com/ General]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|- style="background:lightgrey;{{text default color}}; text-align:center; font-weight:bold;"
| Games [https://www.trackawesomelist.com/michelpereira/awesome-open-source-games/ Open Source and others] || AROS || Amiga OS || Amiga OS4 || Morphos
|-
|<!--Sub Menu-->Games Action like [https://github.com/opentomb/OpenTomb opentomb], [https://github.com/LostArtefacts/TRX TRX formerly Tomb1Main], [https://github.com/TombEngine TombEngine], [http://archives.arosworld.org/index.php?function=browse&cat=game/action Thrust], [https://github.com/fragglet/sdl-sopwith sdl sopwith],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/action], [https://archives.arosworld.org/index.php?function=browse&cat=game/action BOH], [],
|<!--Amiga OS-->[https://github.com/BSzili/OpenLara/tree/amiga/src source of openlara SDL2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Adventure like [http://dotg.sourceforge.net/ DMJ], [https://github.com/kromenak/gengine Gabriel Knight 3], [http://www.sarien.net/ Sierra Sarien], [https://github.com/klembot/twinejs twine js], [https://github.com/QSPFoundation/qspgui Quest Soft Player QSP], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/adventure dmagnetic], [https://archives.arosworld.org/?function=browse&cat=emulation/misc ScummVM], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying frotz infocom], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Board like [https://github.com/aperture-software/colditz-escape escape from colditz], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/board], [http://amigan.1emu.net/releases Africa]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Cards
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/card], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12934#post_12934 Balatro],
|<!--AmigaOS-->[http://home.arcor.de/amigasolitaire/e/welcome.html Reko], [https://github.com/samskivert/beschei-en beschei Src],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Misc [https://github.com/michelpereira/awesome-open-source-games Awesome open], [https://github.com/bobeff/open-source-games General Open Source], [https://github.com/SAT-R/sa2 Sonic Advance 2], [https://github.com/velorek1/cwordle Wordle type],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/misc], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games FPS like [https://aminet.net/package/game/shoot/D1X_Rebirth_AGA Descent D1X src], [https://github.com/DescentDevelopers/Descent3 Descent 3], [https://github.com/Fewnity/Counter-Strike-Nintendo-DS Counter-Strike-Nintendo-DS], [https://github.com/Aleph-One-Marathon/alephone Bungie Marathon 1994], [https://zdoom.org/downloads UzDoom opengl 3.3], [https://github.com/ZDoom/gzdoom gzdoom opengl 3+], [https://zdoom.org/downloads LZDoom opengl 2.1], [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray],
|<!--AROS-->Doom, Quake, [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Quake 3 Arena (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Assault Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube 2 Sauerbraten (OpenGL)], [http://fodquake.net/test/ FodQuake QuakeWorld], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Duke Nukem 3D], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Darkplaces Nexuiz Xonotic], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Doom 3 SDL (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Hexenworld and Hexen 2], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Aliens vs Predator Gold 2000 avp (openGL)], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Odamex (openGL doom)], [https://archives.arosworld.org/?function=showfile&file=game/fps/ zgloom], [], [https://archives.arosworld.org/?function=showfile&file=game/fps/ ab3dhd], [],
|<!--Amiga OS-->Doom, Quake, AB3D, Fears, Breathless, Gloom,
|<!--AmigaOS4-->Doom, Quake,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12 Doom], Quake, Quake 3 Arena,
|-
|<!--Sub Menu-->Games MMORG like
|<!--AROS-->[ Eternal Lands (OpenGL)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Platform like
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/platform], [ Maze of Galious], [ Gish]*(openGL), [ Mega Mario], [https://archives.arosworld.org/?function=showfile&file=game/platform/ thextech SMBX], [http://www.gianas-return.de/ Giana's Return], [http://www.sqrxz.de/ Sqrxz], [www.sqrxz2.de/ Sqrxz 2], [http://www.sqrxz.de/sqrxz-3/ Sqrxz 3], [http://www.sqrxz.de/sqrxz-4/ Sqrxz 4], [http://archives.arosworld.org/index.php?function=browse&cat=game/platform Cave Story], [https://bszili.morphos.me/ Frogatto], [https://bszili.morphos.me/ OpenJazz], [https://archives.arosworld.org/?function=showfile&file=game/platform/ pekkakana2], [ Aquaria], [https://archives.arosworld.org/?function=showfile&file=game/platform/ sonic CD], [],
|<!--Amiga OS-->[ Giana Sisters], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Puzzle [https://github.com/mariopartyrd/marioparty4/tree/port Party], [https://github.com/mdodis/OpenSolomonsKey OpenSolomonsKey], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle], [ Cubosphere (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle Candy Crisis], [http://bszili.morphos.me/ TailTale],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Racing [ Trigger Rally], [ VDrift], [http://www.ultimatestunts.nl/index.php?page=2&lang=en Ultimate Stunts], [http://maniadrive.raydium.org/ Mania Drive], [https://github.com/plowteam/donut Simpsons Hit and Run], [],
|<!--AROS-->[ Super Tux Kart (OpenGL)], [http://www.dusabledanslherbe.eu/AROSPage/F1Spirit.30.html F1 Spirit (OpenGL)], [http://bszili.morphos.me/index.html MultiRacer], [https://bszili.morphos.me/ Speed Dreams], [https://archives.arosworld.org/?function=showfile&file=game/driving/dethrace-0.10.1.x86_64-aros-v11.zip Carmageddon dethrace 64bit], [http://maniadrive.raydium.org/index.php?downloads=yes maniadrive like trackmania],
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://bszili.morphos.me/index.html Speed Dreams],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12], [http://bszili.morphos.me/index.html TORCS],
|-
|<!--Sub Menu-->Games 1st first person DRPG [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/OpenEnroth/OpenEnroth OpenEnroth MM], []
|<!--AROS-->[https://github.com/BSzili/aros-stuff Arx Libertatis], [http://www.playfuljs.com/a-first-person-engine-in-265-lines/ js raycaster], [https://github.com/Dorthu/es6-crpg webgl], [https://github.com/sonountaleban/AmiShockolate System Shock], [], [],
|<!--AmigaOS-->Phantasie, Faery Tale, Dungeon Master,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 3rd third person action CRPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/alexbatalov/fallout1-ce fallout ce], [https://github.com/rwengine/openrw gta3], [https://github.com/gta-reversed/gta-reversed gta3 sa], [https://github.com/mrxenginner/reVC gta3 vc revc], [https://github.com/jakobharder/burntime/tree/main Burntime],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=game/strategy/ fheroes2 homm2], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ breakhack], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ devilutionx diablo 1 hellfire], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ fallout 1], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ stratagus], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ hostile-takeover], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games isometric RPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/topics/dungeon?l=javascript Dungeon], [], [https://github.com/clintbellanger/heroine-dusk JS Dusk],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying nethack], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying GemRB], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games card based RPG [https://github.com/open-duelyst/duelyst Duelyst], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games turn based tactics RPG [], [], [], [], [], [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/strategy UFO AI], [http://play.freeciv.org/ FreeCiv], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Strategy [http://rtsgus.org/ RTSgus], [http://stargus.sourceforge.net/ Stargus], [https://github.com/KD-lab-Open-Source/Perimeter Perimeter], [https://matty77.itch.io/conflict-3049 conflict-3049], [https://github.com/ZeroK-RTS/Zero-K Zero-K multi player rts lua],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/strategy MegaGlest (OpenGL)], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ signus], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=140&pid=12446#post_12446 Wargus warcraft 2 setup],
|<!--Amiga OS-->[https://aminet.net/package/game/strat/OpenDUNE_RTG OpenDUNE_RTG src]
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Rhythm, Beat, Step [], [], [https://clonehero.net/ clonehero], [https://github.com/MatteoGodzilla/Dj-Engine Dj-Engine],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/misc Frets on Fire], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Shoot Em Ups [http://www.mhgames.org/oldies/formido/ Formido], [http://code.google.com/p/violetland/ Violetland],
||<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/action Open Tyrian], [http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ Alien Blaster], [https://github.com/OpenFodder/openfodder OpenFodder], [https://archives.arosworld.org/?function=showfile&file=game/action/ tbftss The Battle for the Solar System: the Pandora War]
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ The Battle for the Solar System: the Pandora War]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Simulations [http://scp.indiegames.us/ Freespace 2], [http://www.heptargon.de/gl-117/gl-117.html GL117], [http://code.google.com/p/corsix-th/ Theme Hospital], [http://code.google.com/p/freerct/ Rollercoaster Tycoon], [http://hedgewars.org/ Hedgewars], [https://github.com/raceintospace/raceintospace raceintospace], [https://github.com/Return-To-The-Roots RTTR Settlers 2], [https://github.com/OoliteProject/oolite oolite elite], [https://github.com/fesh0r/newkind newkind elite], [https://github.com/bohemiainteractive/cwr Arma Cold War Src], [https://github.com/endless-sky/endless-sky endless-sky], [https://github.com/pioneerspacesim/pioneer pioneer space command],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park, [https://github.com/angree/openttd_amiga_68k openttd amiga_68k],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Life Sim [https://github.com/ACreTeam/forest Animal Crossing], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Horror [https://github.com/Mikompilation/MikuPan Fatal Frame], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Sandbox Voxel Open World Exploration [https://github.com/ClassiCube/ Classicube],[http://www.michaelfogleman.com/craft/ Craft], [https://github.com/tothpaul/DelphiCraft DelphiCraft],[https://www.minetest.net/ Luanti formerly Minetest], [ infiniminer],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Battle Royale [https://bruh.io/ Play.Bruh.io], [https://www.coolmathgames.com/0-copter Copter Royale], [https://surviv.io/ Surviv.io], [https://nuggetroyale.io/#Ketchup Nugget Royale], [https://miniroyale2.io/ Miniroyale2.io],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Tower Defense [https://chriscourses.github.io/tower-defense/ HTML5], [https://github.com/SBardak/Tower-Defense-Game TD C++], [https://github.com/bdoms/love_defense LUA and LOVE], [https://github.com/HyOsori/Osori-WebGame HTML5], [https://github.com/PascalCorpsman/ConfigTD ConfigTD Pascal], [https://github.com/GloriousEggroll/wine-ge-custom Wine], []
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12871#post_12871 Plants vs Zombies PvZ],
|<!--Amiga OS-->[https://github.com/boingball/miggy-tower-defense miggy-tower-defense],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/diane1f0cd/VisualNovelTemplate Visual Novel Template], [https://github.com/Kirilllive/tuesday-js Tuesday JS], [https://github.com/tejasnayak25/vnsutra vnsutra], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [https://github.com/NathanGuilhot/VNES-Raylib https://github.com/NathanGuilhot/VNES VNES in Raylib], [https://www.renpy.org/latest.html renpy ren'py python based],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Reality VR [https://gitlab.com/madsbuvi/openmw openmw vr], [https://github.com/Team-Beef-Studios/BeefRaiderXR BeefRaiderXR],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Table Top VTT [ Roll20], [https://www.owlbear.rodeo/ owlbear rodeo], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Computer assisted TableTop TTRPG OSR [https://www.rpgsolo.com/play.php RPGSolo], [https://github.com/fpsvogel/solo-ttrpgs Solo TTRPG], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 2D 3D Engines [https://github.com/fegennari/3DWorld 3DWorld], [https://github.com/GarageGames/Torque3D Torque3D], [https://github.com/gameplay3d/GamePlay GamePlay 3D], [https://www.babylonjs.com/ BabylonJS ], [ Godot], [ Ogre], [ Crystal Space], [https://github.com/JacobHess03/ Dragon-Quest like], [https://github.com/bjornbytes/lovr Lua LOVE for 2D LOVR for 3D], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->[https://github.com/alpyre/Sevgi_Engine Sevgi Engine], [], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games C based game frameworks [https://github.com/orangeduck/Corange Corange], [https://github.com/scottcgi/Mojoc Mojoc], [https://orx-project.org/ Orx], [https://github.com/ioquake/ioq3 Quake 3], [https://www.mapeditor.org/ Tiled], [https://www.raylib.com/ 2d Raylib], [https://github.com/Rabios/awesome-raylib other raylib], [https://github.com/MrFrenik/gunslinger Gunslinger], [https://o3de.org/ o3d], [http://archives.aros-exec.org/index.php?function=browse&cat=development/library GLFW], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/library Raylib 5],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games RPGMaker MV/MZ-compatible projects [https://github.com/Psychronic-Games/RPGReactor RPGReactor js],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games unpack unarc [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
==Application Guides==
[[#top|...to the top]]
===Web Browser===
OWB is now at version 2.0 (which got an engine refresh, from July 2015 to February 2019) and 3.0.
This latest version has a good support for many/most web sites, even YouTube web page now works. [https://www.bilibili.tv/en/search untested]
This improved compatibility comes at the expense of higher RAM usage (now 1GB RAM is the absolute minimum).
Also, keep in mind that the lack of a JIT (Just-In-Time) JS compiler on the 32 bit version, makes the web surfing a bit slow.
Only the 64 bit version of OWB 2.0 will have JIT enabled, thus benefitting of more speed. There are tooltypes that can be added to the icon to provide further features JIT, MSE etc
Certificates from [https://curl.se/docs/caextract.html ca certs],
DNS tracking blocking with [https://easylist.to/easylist/easylist.txt easylist.txt] in PROGDIR:Conf before starting browser with enabled AdBlock [https://github.com/easylist/easylist/tree/master easylist], [https://gitlab.com/eyeo anti abp], [https://firebog.net/ big blocklist], [https://github.com/StevenBlack/hosts Steves], [], [],
This can be enabled with OWB Odyssey with Windows -> Content Blocking and Windows -> Messages and enter
https://www.youtube.com/api/stats/ads*
https://www.youtube.com/pagead/adview*
https://www.youtube.com#@##player-ads*
into your custom filters
Element blocker browser extension might be needed for [https://github.com/easylist/easylist/wiki/Youtube-Issues youtube], [ mid roll], [ pre roll], [ ],
OWB speed is much better when running from RAM Disk, the best way is to add the below into your S:User-Startup which copies OWB drawer from Extras:Internet/OWB to RAM Disk:
So add this :
<pre>
copy Extras:Internet/OWB Ram:OWB/ ALL CLONE >NIL:
copy Extras:Internet/OWB.info Ram: >NIL:
</pre>
Open RAM Disk and open OWB drawer and double click on OWB icon so that the above icon tooltypes are activated
Problems are that the copy time is long (around 20 seconds added in the background), but we can make it faster if we delete useless files from the OWB drawer (docs, …)
If you don’t copy the drawer back onto the HD, you won’t save your cache, cookies, passwords… So you need a script for it.
copy Extras:Internet/Amelinium/#? Ram:Amelinium/ ALL CLONE >NIL:
Error messages
SSL error "cant verify with ca-certificates", check bios clock time date is correct
Error 6, try checking networking prefs settings and Save / Use preferences again or a '''few times''' otherwise the network chipset may not be compatible with Aros
[https://www.google.com/search?q=%s&udm=14 Google search without AI overview]
[ DuckDuckGo]
[ Ecosia]
[ Qwant]
[ Swisscows]
[ Mojeek]
[ Brave Search]
[ PreSearch]
[ Startpage]
===E-mail===
Emailinium is now available for IMAP and POP3 based accounts
YAM does not support SSL and most mail providers now switched to encrypted SMTP/POP3 connections
====SimpleMail====
SimpleMail supports IMAP and appears to work with GMail, but it's never been reliable enough, it can crash with large mailboxes.
Please read more on this [http://www.freelists.org/list/simplemail-usr User list]
GMail
Be sure to activate the pop3 usage in your gmail account setup / configuration first.
pop3:
pop.gmail.com
Use SSL: Yes
Port: 995
smtp:
smtp.gmail.com (with authentication)
Use Authentication: Yes
Use SSL: Yes
Port: 465 or 587
Hotmail/MSN/outlook/Microsoft Mail mid-2017, all outlook.com accounts will be migrated to Office 365 / Exchange
Most users are currently on POP which does not allow showing folders and many other features (technical limitations of POP3). With Microsoft IMAP you will get folders, sync read/unread, and show flags. You still won't get push though, as Microsoft has not turned on the IMAP Idle command as at Sept 2013.
If you want to try it, you need to first remove (you can't edit) your pop account (long-press the account on the accounts screen, delete account). Then set it up this way:
1. Email/Password
2. Manual
3. IMAP
4.
* Incoming: imap-mail.outlook.com, port 993, SSL/TLS should be checked
* Outgoing: smtp-mail.outlook.com, port 587, SSL/TLS should be checked
* POP server name pop-mail.outlook.com, port 995, POP encryption method SSL
Yahoo Mail
On April 24, 2002 Yahoo ceased to offer POP access to its free mail service. Introducing instead a yearly payment feature, allowing users POP3 and IMAP server support, along with such benefits as larger file attachment sizes and no adverts.
Sorry to see Yahoo leaving its users to cough up for the privilege of accessing their mail. Understandable, when competing against rivals such as Gmail and Hotmail who hold a large majority of users and were hacked in 2014 as well.
Incoming Mail (IMAP) Server
* Server - imap.mail.yahoo.com
* Port - 993
* Requires SSL - Yes
Outgoing Mail (SMTP) Server
* Server - smtp.mail.yahoo.com
* Port - 465 or 587
* Requires SSL - Yes
* Requires authentication - Yes
Your login info
* Email address - Your full email address (name@domain.com)
* Password - Your account's password
* Requires authentication - Yes
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a subscription subs fee to have access to SMTP and POP3
* Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
* “Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
* “Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
* “Password” – Your Yahoo Mail password.
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
* Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
====YAM Yet Another Mailer====
YAM does not support SSL and most mail providers have now switched to encrypted SMTP/POP3 connections
This email client is POP3 only if the SSL library is available [http://www.freelists.org/list/yam YAM Freelists]
One of the downsides of using a POP3 mailer unfortunately - you have to set an option not to delete the mail if you want it left on the server. IMAP keeps all the emails on the server.
Possible issues
Sending mail issues is probably a matter of using your ISP's SMTP server, though it could also be an SSL issue.
getting a "Couldn't initialise TLSv1 / SSL error
Use of on-line e-mail accounts with this email client is not possible as it lacks the OpenSSL AmiSSl v3 compatible library
GMail
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including '@gmail.com')
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
Anyway, the SMTP is pop.gmail.com port 465 and it uses SSLLv3 Authentication. The POP3 settings are for the same server (pop.gmail.com), only on port 995 instead.
Outlook.com access
<pre >
Outlook.com SMTP server address: smtp.live.com
Outlook.com SMTP user name: Your full Outlook.com email address (not an alias)
Outlook.com SMTP password: Your Outlook.com password
Outlook.com SMTP port: 587
Outlook.com SMTP TLS/SSL encryption required: yes
</pre >
Yahoo Mail
<pre >
“POP3 Server” – Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
“SMTP Server” – Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
“Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
“Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
“Password” – Your Yahoo Mail password.
</pre >
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a monthly fee to have access to SMTP and POP3
Microsoft Outlook Express Mail
1. Get the files to your PC.
By whatever method get the files off your Amiga onto your PC. In the YAM folder you have a number of different folders, one for each of your folders in YAM. Inside that is a file usually some numbers such as 332423.283. YAM created a new file for every single email you received.
2. Open up a brand new Outlook Express. Just configure the account to use 127.0.0.1 as mail servers. It doesn't really matter. You will need to manually create any subfolders you used in YAM.
3. You will need to do a mass rename on all your email files from YAM. Just add a .eml to the end of it. Amazing how PCs still rely mostly on the file name so it knows what sort of file it is rather than just looking at it! There are a number of multiple renamers online to download and free too.
4. Go into each of your folders, inbox, sent items etc. And do a select all then drag the files into Outlook Express (to the relevant folder obviously) Amazingly the file format that YAM used is very compatible with .eml standard and viola your emails appear. With correct dates and working attachments.
5. If you want your email into Microsoft Outlook. Open that up and create a new profile and a new blank PST file. Then go into File Import and choose to import from Outlook Express. And the mail will go into there. And viola.. you have your old email from your Amiga in a more modern day format.
===FTP===
Magellan has a great FTP module. It allows transferring files from/to a FTP server over the Internet or the local network and, even if FTP is perceived as a "thing of the past", its usability is all inside the client. The FTP thing has a nice side effect too, since every Icaros machine can be a FTP server as well, and our files can be easily transferred from an Icaros machine to another with a little configuration effort.
First of all, we need to know the 'server' IP address. Server is the Icaros machine with the file we are about to download on another Icaros machine, that we're going to call 'client'. To do that, move on the server machine and 1) run Prefs/Services to be sure "FTP file transfer" is enabled (if not, enable it and restart Icaros); 2) run a shell and enter this command:
ifconfig -a
Make a note of the IP address for the network interface used by the local area network. For cabled devices, it usually is net0:. Now go on the client machine and run Magellan:
Perform these actions: 1) click on FTP; 2) click on ADDRESS BOOK; 3) click on "New".
You can now add a new entry for your Icaros server machine:
1) Choose a name for your server, in order to spot it immediately in the address book. Enter the IP address you got before.
2) click on Custom Options:
1) go to Miscellaneous in the left menu;
2) Ensure "Passive Transfers" is NOT selected;
3) click on Use. We need to deactivate Passive Transfers because YAFS, the FTP server included in Icaros, only allows active transfers at the current stage. Now, we can finally connect to our new file source:
1) Look into the address book for the newly introduced server, be sure that name and IP address are right, and
2) click on Connect. A new lister with server's "MyWorkspace" contents will appear. You can now transfer files over the network choosing a destination among your local (client's) volumes.
Can be adapted to any FTP client on any platform of your choice, just be sure your client allows Active Transfers as well.
===IRC Internet Relay Chat===
Jabberwocky is ideal for one-to-one social media communication, use IRC if you require one to many.
Just type a message in ''lowercase''' letters and it will be posted to all in the [ AROS irc channel]. Please do not use UPPER CASE as it is a sign of SHOUTING which is annoying.
Other things to type in - replace <message> with a line of text and <nick> with a person's name
<pre>
/help
/list
/who
/whois <nick>
/msg <nick> <message>
/query <nick>
<message>s
/query
/away <message>
/away
/quit <going away message>
</pre>
[http://irchelp.org/irchelp/new2irc.html#smiley Intro guide here]. IRC Primer can be found here in [http://www.irchelp.org/irchelp/ircprimer.html html], [http://www.irchelp.org/irchelp/text/ircprimer.txt TXT], [http://www.kei.com/irc/IRCprimer1.1.ps PostScript].
Issue the command /me <text> where <text> is the text that should follow your nickname.
Example: /me slaps ajk around a bit with a large trout
/nick <newNick>
/nickserv register <password> <email address>
/ns instead of /nickserv, while others might need /msg nickserv
/nickserv identify <password>
Alternatives:
/ns identify <password>
/msg nickserv identify <password>
==== IRC WookieChat ====
WookieChat is the most complete internet client for communication across the IRC Network. WookieChat allows you to swap ideas and communicate in real-time, you can also exchange Files, Documents, Images and everything else using the application's DCC capabilities.
add smilies drawer/directory
run wookiechat from the shell and set stack to 1000000 e.g. wookiechat stack 1000000
select a server / server window
* nickname
* user name
* real name - optional
Once you configure the client with your preferred screen name, you'll want to find a channel to talk in.
servers
* New Server - click on this to add / add extra - change details in section below this click box
* New Group
* Delete Entry
* Connect to server
* connect in new tab
* perform on connect
Change details
* Servername - change text in this box to one of the below Server:
* Port number - no need to change
* Server password
* Channel - add #channel from below
* auto join - can click this
* nick registration password,
Click Connect to server button above
<pre>
Server: irc.freenode.net
Channel: #aros
</pre>
irc://irc.freenode.net/aros
<pre>
Server: chat.amigaworld.net
Channel: #amigaworld or #amigans
</pre>
<pre>
On Sunday evenings USA time usually starting around 3PM EDT (1900 UTC)
Server:irc.superhosts.net
Channel #team*amiga
</pre>
<pre>
BitlBee and Minbif are IRCd-like gateways to multiple IM networks
Server: im.bitlbee.org
Port 6667
Seems to be most useful on WookieChat as you can be connected to several servers at once. One for Bitlbee and any messages that might come through that. One for your normal IRC chat server.
</pre>
[http://www.bitlbee.org/main.php/servers.html Other servers],
<pre>
#Amiga.org - irc.synirc.net eu.synirc.net dissonance.nl.eu.synirc.net (IPv6: 2002:5511:1356:0:216:17ff:fe84:68a)
twilight.de.eu.synirc.net zero.dk.eu.synirc.net us.synirc.net avarice.az.us.synirc.net envy.il.us.synirc.net harpy.mi.us.synirc.net
liberty.nj.us.synirc.net snowball.mo.us.synirc.net - Ports 6660-6669 7001 (SSL)
</pre>
<pre>
Multiple server support
"Perform on connect" scripts and channel auto-joins
Automatic Nickserv login
Tabs for channels and private conversations
CTCP PING, TIME, VERSION, SOUND
Incoming and Outgoing DCC SEND file transfers
Colours for different events
Logging and automatic reloading of logs
mIRC colour code filters
Configurable timestamps
GUI for changing channel modes easily
Configurable highlight keywords
URL Grabber window
Optional outgoing swear word filter
Event sounds for tabs opening, highlighted words, and private messages
DCC CHAT support
Doubleclickable URL's
Support for multiple languages using LOCALE
Clone detection
Auto reconnection to Servers upon disconnection
Command aliases
Chat display can be toggled between AmIRC and mIRC style
Counter for Unread messages
Graphical nicklist and graphical smileys with a popup chooser
</pre>
====IRC Aircos ====
Double click on Aircos icon in Extras:Networking/Apps/Aircos. It has been set up with a guest account for trial purposes. Though ideally, choose a nickname and password for frequent use of irc.
====IRC and XMPP Jabberwocky====
Servers are setup and close down at random
You sign up to a server that someone else has setup and access chat services through them.
The two ways to access chat from jabberwocky
<pre >
Jabberwocky -> Server -> XMPP -> open and ad-free
Jabberwocky -> Server -> Transports (Gateways) -> Proprietary closed systems
</pre >
The Jabber.org service connects with all IM services that use XMPP, the open standard for instant messaging and presence over the Internet. The services we connect with include Google Talk (closed), Live Journal Talk, Nimbuzz, Ovi, and thousands more. However, you can not connect from Jabber.org to proprietary services like AIM, ICQ, MSN, Skype, or Yahoo because they don’t yet use XMPP components (XEP-0114) '''but''' you can use Jabber.com's servers and IM gateways (MSN, ICQ, Yahoo etc.) instead.
The best way to use jabberwocky is in conjunction with a public jabber server with '''transports''' to your favorite services, like gtalk, Facebook, yahoo, ICQ, AIM, etc.
You have to register with one of the servers, [https://list.jabber.at/ this list] or [http://www.jabberes.org/servers/ another list], [http://xmpp.net/ this security XMPP list],
Unfortunately jabberwocky can only connect to one server at a time so it is best to check what services each server offers. If you set it up with separate Facebook and google talk accounts, for example, sometimes you'll only get one or the other.
Jabberwocky open a window where the Jabber server part is typed in as well as your Nickname and Password.
Jabber ID (JID) identifies you to the server and other users.
Once registered the next step is to goto Jabberwocky's "Windows" menu and select the "Agents" option. The "Agents List" window will open.
Roster (contacts list)
[http://search.wensley.org.uk/ Chatrooms] (MUC) are available
File Transfer - can send and receive files through the Jabber service but not with other services like IRC, ICQ, AIM or Yahoo. All you need is an installed webbrowser and OpenURL.
Clickable URLs - The message window uses Mailtext.mcc and you can set a URL action in the MUI mailtext prefs like SYS:Utils/OpenURL %s NEWWIN.
There is no consistent Skype like (H.323 VoIP) video conferencing available over Jabber. The move from xmpp to Jingle should help but no support on any amiga-like systems at the moment. [http://aminet.net/package/dev/src/AmiPhoneSrc192 AmiPhone] and [http://www.lysator.liu.se/%28frame,faq,nobg,useframes%29/ahi/v4-site/ Speak Freely] was an early attempt voice only contact. SIP and Asterisk are other PBX options.
Facebook
If you're using the XMPP transport provided by Facebook themselves, chat.facebook.com, it looks like they're now requiring SSL transport. This means jabberwocky method below will no longer work. The best thing to do is to create an ID on a public jabber server which has a Facebook gateway.
<pre >
1. launch jabberwocky
2. if the login window doesn't appear on launch, select 'account' from the jabberwocky menu
3. your jabber ID will be user@chat.facebook.com where user is your user ID
4. your password is your normal facebook password
5. to save this for next time, click the popup gadget next to the ID field
6. click the 'add' button
7. click the 'close' button
8. click the 'connect' button
</pre >
you're done. you can also click the 'save as default account' button if you want. jabberwocky configured to auto-connect when launching the program, but you can configure as you like. there is amigaguide documentation included with jabberwocky.
[http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=37085&forum=32 Read more here]
for Facebook users, you can log-in directly to Facebook with jabberwocky. just sign in as @chat.facebook.com with your Facebook password as the password
Twitter
For a few years, there has been added a twitter transport. Servers include [http://jabber.hot-chilli.net/ jabber.hot-chili.net], and .
An [http://jabber.hot-chilli.net/tag/how-tos/ How-to]
:Read [http://jabber.hot-chilli.net/2010/05/09/twitter-transport-working/ more]
Instagram
no support at the moment best to use a web browser based client
ICQ
The new version (beta) of StriCQ uses a newer ICQ protocol. Most of the ICQ Jabber Transports still use an older ICQ protocol. You can only talk one-way to StriCQ using the older Transports. Only the newer ICQv7 Transport lets you talk both ways to StriCQ. Look at the server lists in the first section to check.
Register on a Jabber server, e.g. this one works: http://www.jabber.de/
Then login into Jabberwocky with the following login data e.g. xxx@jabber.de / Password: xxx Now add your ICQ account under the window->Agents->"Register". Now Jabberwocky connects via the Jabber.de server with your ICQ account.
Yahoo Messenger
although yahoo! does not use xmpp protocol, you should be able to use the transport methods to gain access and post your replies
MSN
early months of 2013 Microsoft will ditch MSN Messenger client and force everyone to use Skype...but MSN protocol and servers will keep working as usual for quite a long time....
Occasionally the Messenger servers have been experiencing problems signing in. You may need to sign in at www.outlook.com and then try again. It may also take multiple tries to sign in. (This also affects you if you’re using Skype.)
You have to check each servers' Agents List to see what transports (MSN protocol, ICQ protocol, etc.) are supported or use the list address' provided in the section above. Then register with each transport (IRC, MSN, ICQ, etc.) to which you need access. After registering you can Connect to start chatting.
msn.jabber.com/registered should appear in the window.
From this [http://tech.dir.groups.yahoo.com/group/amiga-jabberwocky/message/1378 JW group] guide which helps with this process in a clear, step by step procedure.
1. Sign up on MSN's site for a passport account. This typically involves getting a Hotmail address.
2. Log on to the Jabber server of your choice and do the following:
* Select the "Windows/Agents" menu option in Jabberwocky.
* Select the MSN Agent from the list presented by the server.
* Click the Register button to open a new window asking for:
**Username = passort account email address, typically your hotmail address.
**Nick = Screen name to be shown to anyone you add to your buddy list.
**Password = Password for your passport account/hotmail address.
* Click the Register button at the bottom of the new window.
3. If all goes well, you will see the MSN Gateway added to your buddy list. If not, repeat part 2 on another server. Some servers may show MSN in their list of available agents, but have not updated their software for the latest protocols used by MSN.
4. Once you are registered, you can now add people to your buddy list. Note that you need to include the '''msn.''' ahead of the servername so that it knows what gateway agent to use. Some servers may use a slight variation and require '''msg.gate.''' before the server name, so try both to see what works.
If my friend's msn was amiga@hotmail.co.uk and my jabber server was @jabber.meta.net.nz..
then amiga'''%'''hotmail.com@'''msn.'''jabber.meta.net.nz
or another the trick to import MSN contacts is that you don't type the hotmail URL but the passport URL... e.g. Instead of: goodvibe%hotmail.com@msn.jabber.com You type: goodvibe%passport.com@msn.jabber.com
And the thing about importing contacts I'm afraid you'll have to do it by hand, one at the time...
Google Talk
any XMPP server will work, but you have to add your contacts manually. a google talk user is typically either @gmail.com or @talk.google.com. a true gtalk transport is nice because it brings your contacts to you and (can) also support file transfers to/from google talk users.
implement Jingle a set of extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP)
support ended early 2014 as Google moved to Google+ Hangouts which uses it own proprietary format
===Video Player MPlayer===
Many of the menu features (such as doubling) do not work with the current version of mplayer but using
4:3
mplayer -vf scale=800:600 file.avi
16:9
mplayer -vf scale=854:480 file.avi
if you want gui use;
mplayer -gui 1 <other params> file.avi
<pre >
stack 1000000
; using AspireOS 1.xx
; copy FROM SYS:Extras/Multimedia/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 1.x
; copy FROM SYS:Tools/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 2.x
; copy FROM SYS:Utilities/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
cd RAM:MPlayer
run MPlayer -gui > Nil:
;run MPlayer -gui -ao ahi_dev -playlist http://www.radio-paralax.de/listen.pls > Nil:
</pre >
$ mplayer rtsp://127.0.0.1:554/sample_300kbit.mp4
MPlayer supports multicast streaming, and rtp/rtsp protocols (it might require [http://www.live555.com/openRTSP/ live555 library] to work with some streams). But you might have to build it where it's disabled. Also, multicast won't work with some AmiTCP-likes. MIAMI supported it, though.
AROS supports IPv4 (old but works) and this includes the needed address space for RTP.
If you mean multicast via RTP - mplayer handles it. You can even force UDP over TCP
-rtsp-stream-over-tcp
If the rtsp Real Time Streaming Protocol server needs authentification:
-user -passwd
MPlayer - Menu - Open Playlist and load already downloaded .pls or .m3u file - auto starts around 4 percent cache
MPlayer - Menu - Open Stream and copy one of the .pls lines below into space allowed, press OK and press play button on main gui interface
Old 8bit 16bit remixes chip tune game music
http://www.radio-paralax.de/listen.pls
http://scenesat.com/
http://www.shoutcast.com/radio/Amiga
http://www.theoldcomputer.com/retro_radio/RetroRadio_Main.htm
http://www.kohina.com/
http://www.remix64.com/
http://retrogamer.net/forum/
http://retroasylum.podomatic.com/rss2.xml
http://retrogamesquad.com/
http://www.retronauts.com/
http://monsterfeet.com/noquarter/
http://www.retrogamingradio.com/
http://www.radiofeeds.co.uk/mp3.asp
[[#top|...to the top]]
====ZunePaint====
simplified typical workflow
* importing and organizing and photo management
* making global and regional local correction(s) - recalculation is necessary after each adjustment as it is not in real-time
* exporting your images in the best format available with the preservation of metadata
Whilst achieving 80% of a great photo with just a filter, the remaining 20% comes from a manual fine-tuning of specific image attributes.
For photojournalism, documentary, and event coverage, minimal touching is recommended. Stick to Camera Raw for such shots, and limit changes to level adjustment, sharpness, noise reduction, and white balance correction.
For fashion or portrait shoots, a large amount of adjustment is allowed and usually ends up far from the original. Skin smoothing, blemish removal, eye touch-ups, etc. are common. Might alter the background a bit to emphasize the subject.
Product photography usually requires a lot of sharpening, spot removal, and focus stacking.
For landscape shots, best results are achieved by doing the maximum amount of preparation before/while taking the shot. No amount of processing can match timing, proper lighting, correct gear, optimal settings, etc. Excessive post-processing might give you a dramatic shot but best avoided in the long term.
* White Balance - Left Amiga or F12 and K and under "Misc color effects" tab with a pull down for White Balance - color temperature also known as AKA tint (movies) or tones (painting) - warm temp raise red reduce green blue - cool raise blue lower red green
* Exposure - exposure compensation, highlight/shadow recovery
* Noise Reduction - during RAW development or using external software
* Lens Corrections - distortion, vignetting, chromatic aberrations
* Detail - capture sharpening and local contrast enhancement
* Contrast - black point, levels (sliders) and curves tools (F12 and K)
* Framing - straighten () and crop (F12 and F)
* Refinements - color adjustments and selective enhancements - Left Amiga or F12 and K for RGB and YUV histogram tabs -
* Resizing - enlarge for a print or downsize for the web or email (F12 and D)
* Output Sharpening - customized for your subject matter and print/screen size
White Balance - F12 and K
scan your image for a shade which was meant to be white (neutral with each RGB value being equal) like paper or plastic which is in the same light as the subject of the picture. Use the dropper tool to select this color, similar colours will shift and you will have selected the perfect white balance for your part of the image - for the whole picture make sure RAZ or CLR button at the bottom is pressed before applying to the image above.
Exposure correction
F12 and K - YUV Y luminosity - RGB extra red tint - move red curve slightly down and move blue green curves slightly up
Workflows in practice
* Undo - Right AROS key or F12 and Z
* Redo - Right AROS key or F12 and R
First flatten your image (if necessary) and then do a rotation until the picture looks level.
* Crop the picture. Click the selection button and drag a box over the area of the picture you want to keep. Press the crop button and the rest of the photo will be gone.
* Adjust your saturation, exposure, hue levels, etc., (right AROS Key and K for color correction) until you are happy with the photo. Make sure you zoom in all of the way to 100% and look the photo over, zoom back out and move around. Look for obvious problems with the picture.
* After coloring and exposure do a sharpen (Right AROS key and E for Convolution and select drop down option needed), e.g. set the matrix to 5x5 (roughly equivalent Amount to 60%) and set the Radius to 1.0. Click OK.
And save your picture
Implemented or would like to see for simplification and ease of use
basic filters (presets) like black and white, monochrome, edge detection (sobel), motion/gaussian blur,
* negative, sepiatone, retro vintage, night vision, colour tint, color gradient, color temperature, glows, fire, lightning, lens flare, emboss, filmic, pixelate mezzotint, antialias, etc.
adjust / cosmetic tools such as crop,
* reshaping tools, straighten, smear, smooth, perspective, liquify, bloat, pucker, push pixels in any direction, dispersion, transform like warp, blending with soft light, page-curl, whirl, ripple, fisheye, neon, etc.
* red eye fixing, blemish remover, skin smoothing, teeth whitener, make eyes look brighter, desaturate,
effects like oil paint, cartoon, pencil sketch, charcoal, noise/matrix like sharpen/unsharpen, (right AROS key with A for Artistic effects)
* blend two image, gradient blend, masking blend, explode, implode, custom collage, surreal painting, comic book style, needlepoint, stained glass, watercolor, mosaic, stencil/outline, crayon, chalk, etc.
borders such as
* dropshadow, rounded, blurred, color tint, picture frame, film strip polaroid, bevelled edge, etc.
brushes e.g.
* frost, smoke, etc.
and manual control of
fix lens issues including vignetting (darkening), color fringing and barrel distortion, and chromatic and geometric aberration - lens and body profiles
perspective correction
levels - directly modify the levels of the tone-values of an image, by using sliders for highlights, midtones and shadows
curves - Color Adjustment and Brightness/Contrast
color balance
one single color transparent (alpha channel (color information/selections) for masking and/or blending ) for backgrounds, etc.
Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors
decompose layer into a set of layers with each holding a different type of pattern that is visible within the image
any selection using any selecting tools like lasso tool, marquee tool etc. the selection will temporarily be save to alpha
If you create your image without transparency then the Alpha channel is not present, but you can add later.
File formats like .psd (Photoshop file has layers, masks etc. contains edited sensor data. The original sensor data is no longer available) .xcf .raw .hdr
Image Picture Formats
* low dynamic range (JPEG, PNG, TIFF 8-bit), 16-bit (PPM, TIFF), typically as a 16-bit TIFF in either ProPhoto or AdobeRGB colorspace - TIFF files are also fairly universal – although, if they contain proprietary data, such as Photoshop Adjustment Layers or Smart Filters, then they can only be opened by Photoshop making them proprietary.
* linear high dynamic range (HDR) images (PFM, [http://www.openexr.com/ ILM .EXR], jpg, [http://aminet.net/util/dtype cr2] (canon tiff based), hdr, NEF, CRW, ARW, MRW, ORF, RAF (Fuji), PEF, DCR, SRF, ERF, DNG files are RAW converted to an Adobe proprietary format - a container that can embed the raw file as well as the information needed to open it)
An old version of [http://archives.aros-exec.org/index.php?function=browse&cat=graphics/convert dcraw]
There is no single RAW file format. Each camera manufacturer has one or more unique RAW formats. RAW files contain the brightness levels data captured by the camera sensor. This data cannot be modified. A second smaller file, separate XML file, or within a database with instructions for the RAW processor to change exposure, saturation etc. The extra data can be changed but the original sensor data is still there. RAW is technically least compatible.
A raw file is high-bit (usually 12 or 14 bits of information) but a camera-generated TIFF file will be usually converted by the camera (compressed, downsampled) to 8 bits. The raw file has no embedded color balance or color space, but the TIFF has both. These three things (smaller bit depth, embedded color balance, and embedded color space) make it so that the TIFF will lose quality more quickly with image adjustments than the raw file. The camera-generated TIFF image is much more like a camera processed JPEG than a raw file. A strong advantage goes to the raw file. The power of RAW files, such as the ability to set any color temperature non-destructively and will contain more tonal values.
The principle of preserving the maximum amount of information to as late as possible in the process. The final conversion - which will always effectively represent a "downsampling" - should prevent as much loss as possible.
Once you save it as TIFF, you throw away some of that data irretrievably. When saving in the lossy JPEG format, you get tremendous file size savings, but you've irreversibly thrown away a lot of image data. As long as you have the RAW file, original or otherwise, you have access to all of the image data as captured.
Keyboard equivalence with Photoshop(tm) would help
File
PHOTOSHOP SHORTCUT GIMP
New Ctrl+n New
Open Ctrl+o Open
Close Ctrl+w Close
Save Ctrl+s Save
Save as Shift+Ctrl+s Save as
Revert F12 Revert
Print Ctrl+p Print
Exit Ctrl+q Quit
Edit
PHOTOSHOP SHORTCUT GIMP
Undo/Redo (1 level) Ctrl+z Undo (Redo is Shift+Ctrl+z)
Cut Ctrl+x Cut
Copy Ctrl+c Copy
Paste Ctrl+v Paste
Paste Into Shift+Ctrl+v Paste Into
Fill with FG color Alt+Backspace Fill with FG color
Fill with BG color Control+Backspace Fill with BG color
Image/Colors
PHOTOSHOP SHORTCUT GIMP
Levels Ctrl+l Levels
Auto Contrast Shift+Ctrl+Alt+l Stretch Contrast (same?)
Curves Ctrl+m Curves
Color Balance Ctrl+b Color Balance
Hue/Saturation Ctrl+u Hue-Saturation
Desaturate Shift+Ctrl+u Desaturate
Invert Ctrl+i Invert
Default Colors d Default Colors
Switch Colors x Switch Colors
Layer
PHOTOSHOP SHORTCUT GIMP
New Layer Shift+Ctrl+n New Layer
Layer via Copy Ctrl+j Duplicate Layer
Bring (layer) to Front Shift+Ctrl+] Layer to Top
Send (layer) to Back Shift+Ctrl+[ Layer to Bottom
Bring (layer) Forward Ctrl+] Raise Layer
Send (layer) Backward Ctrl+[ Lower Layer
Select Top Layer Shift+Alt+] Select Top Layer
Select Bottom Layer Shift+Alt+[ Select Bottom Layer
Select One Layer Forward Alt+] Select Previous Layer
Select One Layer Backward Alt+[ Select Next Layer
Merge Down Ctrl+e Merge Down
Merge Visible Shift+Ctrl+e Merge Visible
Preserve Transparency / Keep Transparency
Cycle Modes Forwards Shift+= Next Layer Mode
Cycle Modes Backwards Shift+- Previous Layer Mode
Select
PHOTOSHOP SHORTCUT GIMP
Select All Ctrl+a Select All
Deselect Ctrl+d Select None
Inverse Shift+Ctrl+i Invert
Feather Ctrl+Alt+d Feather
View
PHOTOSHOP SHORTCUT GIMP
Zoom In Ctrl+= Zoom In
Zoom Out Ctrl+- Zoom Out
Fit on Screen Ctrl+0 Zoom to Fit Window
Actual Pixels Ctrl+Alt+0 Zoom 1:1
Show/Hide Extras Ctrl+h Toggle Show Selection (close enough?)
Show/Hide Guides Ctrl+' Toggle Show Guides
Show/Hide Grid Ctrl+Alt+' Toggle Show Grid
Show/Hide Rulers Ctrl+r Toggle Show Rulers
Snap Ctrl+; Snap to Guides
Scroll View Up Page Up Scroll Page Up
Scroll View Down Page Down Scroll Page Down
Scroll View Left Ctrl+Page Up Scroll Page Left
Scroll View Right Ctrl+Page Down Scroll Page Right
Window/Dialogs
PHOTOSHOP SHORTCUT GIMP
? F5 Tools Dialog
Color Tab F6 Colors Dialog
Layers Tab F7 Layers Dialog
Info Tab F8 Image Information
Tools
PHOTOSHOP SHORTCUT GIMP
Rectangular Marquee Tool m Rect Select Tool
Elliptical Marquee Tool Shift+m Ellipse Select Tool
*This is a toggle between 'Elliptical Marquee Tool' and 'Rectangular Marquee Tool' in Photoshop
Move Tool v Move Tool
Lasso Tool l Free Select Tool
Magic Wand Tool w Fuzzy Select Tool
Crop Tool c Crop & Resize Tool
Airbrush Tool j Airbrush Tool
Paintbrush Tool b Paintbrush Tool
Clone Stamp Tool s Clone Stamp Tool
Eraser Tool e Eraser Tool
Gradient Tool g Blend Tool
Paint Bucket Tool Shift+g Bucket Fill Tool
*This is a toggle between 'Paint Bucket Tool' and 'Gradient Tool' in Photoshop
Blur Tool r Convolve Tool
Dodge Tool o DodgeBurn Tool
Type Tool t Text Tool
Pen Tool p Bezier Select Tool
Eye Dropper Tool i Color Picker Tool
Zoom Tool z Magnify Tool
Previous Brush , Previous Brush
Next Brush . Next Brush
First Brush Shift+< First Brush
Last Brush Shift+> Last Brush
Decrease Brush Size [ Decrease Brush Size
Increase Brush Size ] Increase Brush Size
Decrease Brush Hardness { Decrease Brush Hardness
Increase Brush Hardness } Increase Brush Hardness
Help
PHOTOSHOP SHORTCUT GIMP
Help F1 Help
Context Help Shift+F1 Context Help
Misc.
PHOTOSHOP SHORTCUT GIMP
Last Filter Ctrl+f Repeat Last Filter
? Shift+Ctrl+f Reshow Last Filter
Preferences Ctrl+k Preferences
Liquify Shift+Ctrl+x IWarp (close enough?)
Toggle Quick Mask q Toggle Quick Mask
Spotlights - triangle of white opaque shape
Cutting out and/or replacing unwanted background or features - select large areas with the selection option like the Magic Wand tool (aka Color Range) or the Lasso (quick and fast) with feather 2 to soften edge or the pen tool which adds points/lines/Bézier curves (better control but slower), hold down the shift button as you click to add extra points/areas of the subject matter to remove. Increase the tolerance to cover more areas. To subtract from your selection hold down alt as you're clicking.
* Layer masks are a better way of working than Erase they clip (black hides/hidden white visible/reveal). Clone Stamp can be simulated by and brushes for other areas.
* Leave the fine details like hair, fur, etc. to later with lasso and the shift key to draw a line all the way around your subject. Gradient Mapping - Inverse - Mask. i.e. Refine your selected image with edge detection and using the radius and edge options / adjuster (increase/decrease contrast) so that you will capture more fine detail from the background allowing easier removal.
Remove fringe/halo
saving image as png rather than jpg/jpeg to keep transparency background intact.
Implemented [http://colorizer.org/ colour model representations] [http://paulbourke.net/texture_colour/colourspace/ Mathematical approach] - Photo stills are spatially 2d (h and w), but are colorimetrically 3d (r g and b, or H L S, or Y U V etc.) as well.
* RGB - split cubed mapped color model for photos and computer graphics hardware using the light spectrum (adding and subtracting)
* YUV - Y-Lightness U-blue/yellow V-red/cyan (similar to YPbPr and YCbCr) used in the PAL, NTSC, and SECAM composite digital TV color [http://crewofone.com/2012/chroma-subsampling-and-transcoding/#comment-7299 video]
Histograms
White balanced (neutral) if the spike happens in the same place in each channel of the RGB graphs. If not, you're not balanced.
If you have sky you'll see the blue channel further off to the right.
RGB is best one to change colours. These elements RGB is a 3-channel format containing data for Red, Green, and Blue in your photo scale between 0 and 255. The area in a picture that appears to be brighter/whiter contains more red color as compared to the area which is relatively darker. Similarly in the green channel the area that appears to be darker contains less amount of green color as compared to the area that appears to be brighter. Similarly in the blue channel the area appears to be darker contains less amount of blue color as compared to the area that appears to be brighter. Brightness luminance histogram also matches the green histogram more than any other color - human eye interprets green better e.g. RGB rough ratio 15/55/30%
RGBA (RGB+A, A means alpha channel) . The alpha channel is used for "alpha compositing", which can mostly be associated as "opacity". AROS deals in RGB with two digits for every color (red, green, blue), in ARGB you have two additional hex digits for the alpha channel.
The shadows are represented by the left third of the graph. The highlights are represented by the right third. And the midtones are, of course, in the middle. The higher the black peaks in the graph, the more pixels are concentrated in that tonal range (total black area).
By moving the black endpoint, which identifies the shadows (darkness) and a white light endpoint (brightness) up and down either sides of the graph, colors are adjusted based on these points.
By dragging the central one, can increased the midtones and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
RGB Curves
* Move left endpoint (black point) up or right endpoint (white point) up brightens
* Move left endpoint down or right endpoint down darkens
Color Curves
* Dragging up on the Red Curve increases the intensity of the reds in the image but
* Dragging down on the Red Curve decreases the intensity of the reds and thus increases the apparent intensity of its complimentary color, cyan. Green’s complimentary color is magenta, and blue’s is yellow.
<pre>
Red <-> Cyan
Green <->Magenta
Blue <->Yellow
</pre>
YUV Best option to analyse and pull out statistical elements of any picture (i.e. separate luminance data from color data). The line in Y luma tone box represents the brightness of the image with the point in the bottom left been black, and the point in the top right as white. A low-contrast image has a concentrated clump of values nearer to the center of the graph. By comparison, a high-contrast image has a wider distribution of values across the entire width of the Histogram. A histogram that is skewed to the right would indicate a picture that is a bit overexposed because most of the color data is on the lighter side (increase exposure with higher value F), while a histogram with the curve on the left shows a picture that is underexposed. This is good information to have when using post-processing software because it shows you not only where the color data exists for a given picture, but also where any data has been clipped (extremes on edges of either side): that is, it does not exist and, therefore, cannot be edited. By dragging the endpoints of the line and as well as the central one, can increased the dark/shadows, midtones and light/bright parts and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
The U and V chroma parts show color difference components of the image. It’s useful for checking whether or not the overall chroma is too high, and also whether it’s being limited too much
Can be used to create a negative image but also
With U (Cb), the higher value you are, the more you're on the blue primary color. If you go to the low values then you're on blue complementary color, i.e. yellow.
With V (Cr), this is the same principle but with Red and Cyan.
e.g. If you push U full blue and V full red, you get magenta. If you push U full yellow and V full Cyan then you get green.
YUV simultaneously adds to one side of the color equation while subtracting from the other.
using YUV to do color correction can be very problematic because each curve alters the result of each other: the mutual influence between U and V often makes things tricky. You may also be careful in what you do to avoid the raise of noise (which happens very easily). Best results are obtained with little adjustments
sunset that looks uninspiring and needs some color pop especially for the rays over the hill, a subtle contrast raise while setting luma values back to the legal range without hard clipping.
====Lunapaint====
Pixel based drawing app with onion-skin animation function
Blocking, Shading, Coloring, adding detail
<pre>
b BRUSH
e ERASER
alt eyedropper
v layer tool
z ZOOM / MAGNIFY < > n
spc panning
m marque
q lasso
w same color selection / region
</pre>
<pre>
, LM RM
v
V
f filter
F
. size
p
, pick color
[] last / next color
</pre>
There is not much missing in Lunapaint to be as good as FlipBook and then you have to take into account that Flipbook is considered to be amongst the best and easiest to use animation software out there. Ok to be honest Flipbook has some nice features that require more heavy work but those aren't so much needed right away, things like camera effects, sound, smart fill, export to different movie file formats etc.
Tried Flipbook with my tablet and compared it to Luna. The feeling is the same when sketching. LunaPaint is very responsive/fluent to draw with. Just as Flipbook is, and that responsiveness is something its users have mentioned as one of the positive sides of said software.
author was learning MUI. Some parts just have to be rewritten with proper MUI classes before new features can be added.
* add [Frame Add] / [Frame Del]
* whole animation feature is impossible to use. If you draw 2 color maybe but if you start coloring your cells then you get in trouble
* pickup the entire image as a brush, not just a selection ? And consequently remove the brush from memory when one doesn't need it anymore. can pick up a brush and put it onto a new image but cropping isn't possible, nor to load/save brushes.
* Undo is something I longed for ages in Lunapaint.
* to import into the current layer, other types of images (e.g. JPEG) besides RAW64.
* implement graphic tablet features support
**GENERAL DRAWING**
Miss it very much:
UNDO
ERASER
COLORPICKER - has to show on palette too which color got picked.
BACKGROUND COLOR -Possibility to select from "New project screen"
Miss it somewhat:
ICON for UNDO
ICON for ERASER
ICON for CLEAR SCREEN ( What can I say? I start over from scratch very often )
BRUSH - possibility to cut out as brush not just copy off image to brush
**ANIMATING**
Miss it very much:
NUMBER OF CELLS - Possibity to change total no. of cells during project
ANIM BRUSH - Possibility to pick up a selected part of cells into an animbrush
Miss it somewhat:
ADD/REMOVE FRAMES: Add/remove single frame
In general LunaPaint is really well done and it feels like a new DeluxePaint version. It works with my tablet. Sure there's much missing of course but things can always be added over time. So there is great potential in LunaPaint that's for sure. Animations could be made in it and maybe put together in QuickVideo, saving in .gif or .mng etc some day.
LAYERS
-Layers names don't get saved globally in animation frames
-Layers order don't change globally in an animation (perhaps as default?).
EXPORTING IMAGES
-Exporting frames to JPG/PNG gives problems with colors. (wrong colors. See my animatiopn --> My robot was blue now it's "gold" ) I think this only happens if you have layers.
-Trying to flatten the layers before export doesn't work if you have animation frames only the one you have visible will flatten properly all other frames are destroyed. (Only one of the layers are visible on them)
-Exporting images filenames should be for example e.g. file0001, file0002...file0010 instead as of now file1, file2...file10
LOAD/SAVE (Preferences)
-Make a setting for the default "Work" folder.
* Destroyed colors if exported image/frame has layers
* mystic color cycling of the selected color while stepping frames back/forth (annoying)
<pre>
Deluxe Paint II enhanced key shortcuts
NOTE: @ denotes the ALT key
[Technique]
F1 - Paint
F2 - Single Colour
F3 - Replace
F4 - Smear
F5 - Shade
F6 - Cycle
F7 - Smooth
M - Colour Cycle
[Brush]
B - Restore
O - Outline
h - Halve brush size
H - Double brush size
x - Flip brush on X axis
X - Double brush size on X axis only
y - Flip on Y
Y - Double on Y
z - Rotate brush 90 degrees
Z - Stretch
[Stencil]
` - Stencil On
[Miscellaneous]
F9 - Info Bar
F10 - Selection Bar
@o - Co-Ordinates
@a - Anti-alias
@r - Colourise
@t - Translucent
TAB - Colour Cycle
[Picture]
L - Load
S - Save
j - Page to Spare(Flip)
J - Page to Spare(Copy)
V - View Page
Q - Quit
[General Keys]
m - Magnify
< - Zoom In
> - Zoom Out
[ - Palette Colour Up
] - Palette Colour Down
( - Palette Colour Left
) - Palette Colour Right
, - Eye Dropper
. - Pixel / Brush Toggle
/ - Symmetry
| - Co-Ordinates
INS - Perspective Control
+/- - Brush Size (Fine Control)
w - Unfilled Polygon
W - Filled Polygon
e - Unfilled Ellipse
E - Filled Ellipse
r - Unfilled Rectangle
R - Filled Rectangle
t - Type/text tool
a - Select Font
u/U - Undo
d - Brush
D - Filled Non-Uniform Polygon
f/F - Fill Options
g/G - Grid
h/H - Brush Size (Coarse Control)
K - Clear
c - Unfilled Circle
C - Filled Circle
v - Line
b - Scissor Select and Toggle
B - Brush
{,} - Toggle between two background colours
</pre>
====Lodepaint====
Pixel based painting artwork app
====Grafx2====
Pixel based painting artwork app aesprite like
[https://www.youtube.com/watch?v=59Y6OTzNrhk aesprite workflow keys and tablet use], [],
====Vector Graphics ZuneFIG====
Vector Image Editing of files .svg .ps .eps
*Objects - raise lower rotate flip aligning snapping
*Path - unify subtract intersect exclude divide
*Colour - fill stroke
*Stroke - size
*Brushes -
*Layers -
*Effects - gaussian bevels glows shadows
*Text -
*Transform -
AmiFIG ([http://epb.lbl.gov/xfig/frm_introduction.html xfig manual])
[[File:MyScreen.png|thumb|left|alt=Showing all Windows open in AmiFIG.|All windows available to AmiFIG.]]
for drawing simple to intermediate vector graphic images for scientific and technical uses and for illustration purposes for those with talent
;Menu options
* Load - fig format but import(s) SVG
* Save - fig format but export(s) eps, ps, pdf, svg and png
* PAN = Ctrl + Arrow keys
* Deselect all points
There is no selected object until you apply the tool, and the selected object is not highlighted.
;Metrics - to set up page and styles - first window to open on new drawings
;Tools - Drawing Primitives - set Attributes window first before clicking any Tools button(s)
* Shapes - circles, ellipses, arcs, splines, boxes, polygon
* Lines - polylines
* Text "T" button
* Photos - bitmaps
* Compound - Glue, Break, Scale
* POINTs - Move, Add, Remove
* Objects - Move, Copy, Delete, Mirror, Rotate, Paste
use right mouse button to stop extra lines, shapes being formed and the left mouse to select/deselect tools button(s)
* Rotate - moves in 90 degree turns centered on clicked POINT of a polygon or square
;Attributes which provide change(s) to the above primitives
* Color
* Line Width
* Line Style
* arrowheads
;Modes
Choose from freehand, charts, figures, magnet, etc.
;Library - allows .fig clip-art to be stored
* compound tools to add .fig(s) together
;FIG 3.2 [http://epb.lbl.gov/xfig/fig-format.html Format] as produced by xfig version 3.2.5
<pre>
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
4 0 0 50 -1 0 12 0.0000 4 135 1050 1050 2475 This is a test.01
</pre>
# change the text alignment within the textbox. I can choose left, center, or right aligned by either changing the integer in the second column from 0 (left) to 1 or 2 (center, or right).
# The third integer in the row specifies fontcolor. For instance, 0 is black, but blue is 1 and Green3 is 13.
# The sixth integer in the bottom row specifies fontface. 0 is Times-Roman, but 16 is Helvetica (a MATLAB default).
# The seventh number is fontsize. 12 represents a 12pt fontsize. Changing the fontsize of an item really is as easy as changing that number to 20.
# The next number is the counter-clockwise angle of the text. Notice that I have changed the angle to .7854 (pi/4 rounded to four digits=45 degrees).
# twelfth number is the position according to the standard “x-axis” in Xfig units from the left. Note that 1200 Xfig units is equivalent to once inch.
# thirteenth number is the “y-position” from the top using the same unit convention as before.
* The nested text string is what you entered into the textbox.
* The “01″ present at the end of that line in the .fig file is the closing tag. For instance, a change to \100 appends a @ symbol at the end of the period of that sentence.
; Just to note there are no layers, no 3d functions, no shading, no transparency, no animation
[[#top|...to the top]]
===Audio===
# AHI uses linear panning/balance, which means that in the center, you will get -6dB. If an app uses panning, this is what you will get. Note that apps like Audio Evolution need panning, so they will have this problem.
# When using AHI Hifi modes, mixing is done in 32-bit and sent as 32-bit data to the driver. The Envy24HT driver uses that to output at 24-bit (always).
# For the Envy24/Envy24HT, I've made 16-bit and 24-bit inputs (called Line-in 16-bit, Line-in 24-bit etc.). There is unfortunately no app that can handle 24-bit recording.
====Music Mods====
Digital module (mods) trackers are music creation software using samples and sometimes soundfonts, audio plugins (VST, AU or RTAS), MIDI.
Generally, MODs are similar to MIDI in that they contain note on/off and other sequence messages that control the mod player. Unlike (most) midi files, however, they also contain sound samples that the sequence information actually plays. MOD files can have many channels (classic amiga mods have 4, corresponding to the inbuilt sound channels), but unlike MIDI, each channel can typically play only one note at once. However, since that note might be a sample of a chord, a drumloop or other complex sound, this is not as limiting as it sounds.
Like MIDI, notes will play indefinitely if they're not instructed to end. Most trackers record this information automatically if you play your music in live. If you're using manual note entry, you can enter a note-off command with a keyboard shortcut - usually Caps Lock.
In fact when considering file size MOD is not always the best option. Even a dummy song wastes few kilobytes for nothing when a simple SID tune could be few hundreds bytes and not bigger than 64kB. AHX is another small format, AHX tunes are never larger than 64kB excluding comments.
[https://www.youtube.com/watch?v=rXXsZfwgil Protrekkr] (previously aka [w:Juan_Antonio_Arguelles_Rius|NoiseTrekkr])
If Protrekkr does not start, please check if the Unit 0 has been setup in the AHI prefs and still not, go to the directory utilities/protrekkr and double click on the Protrekkr icon
*Sample
*Note - Effect
*Track (column) - Pattern - Order
It all starts with the Sample which is used to create Note(s) in a Track (column of a tracker)
The Note can be changed with an Effect. A Track of Note(s) can be collected into a Pattern (section of a song) and these can be given Order to create the whole song.
Patience (notes have to be entered one at a time) or playing the bassline on a midi controller (faster - see midi section above). Best approach is to wait until a melody popped into your head.
*Up-tempo means the track should be reasonably fast, but not super-fast.
*Groovy and funky imply the track should have some sort of "swing" feel, with plenty of syncopation or off beat emphasis and a recognizable, melodic bass line.
*Sweet and happy mean upbeat melodies, a major key and avoiding harsh sounds.
*Moody - minor key
First, create a quick bass sound, which is basically a sine wave, but can be hand drawn for a little more variance. It could also work for the melody part, too.
This is usually a bass guitar or some kind of synthesizer bass. The bass line is often forgotten by inexperienced composers, but it plays an important role in a musical piece. Together with the rhythm section the bass line forms the groove of a song. It's the glue between the rhythm section and the melodic layer of a song.
The drums are just pink noise samples, played at different frequencies to get a slightly different sound for the kick, snare, and hihats.
Instruments that fall into the rhythm category are bass drums, snares, hi-hats, toms, cymbals, congas, tambourines, shakers, etc. Any percussive instrument can be used to form part of the rhythm section.
The lead is the instrument that plays the main melody, on top of the chords. There are many instruments that can play a lead section, like a guitar, a piano, a saxophone or a flute. The list is almost endless. There is a lot of overlap with instruments that play chords. Often in one piece an instrument serves both roles. The lead melody is often played at a higher pitch than the chords.
Listened back to what was produced so far, and a counter-melody can be imagined, which can be added with a triangle wave.
To give the ends of phrases some life, you can add a solo part with a crunchy synth. By hitting random notes in the key of G, then edited a few of them.
For the climax of the song, filled out the texture with a gentle high-pitch pad… …and a grungy bass synth.
The arrow at A points at the pattern order list. As you see, the patterns don't have to be in numerical order. This song starts with pattern "00", then pattern "02", then "03", then "01", etcetera. Patterns may be repeated throughout a song.
The B arrow points at the song title. Below it are the global BPM and speed parameters. These determine the tempo of the song, unless the tempo is altered through effect commands during the song.
The C arrow points at the list of instruments. An instrument may consist of multiple samples. Which sample will be played depends on the note. This can be set in the Instrument Editing screen. Most instruments will consist of just one sample, though. The sample list for the selected instrument can be found under arrow D.
Here's a part of the main editing screen. This is where you put in actual notes. Up to 32 channels can be used, meaning 32 sounds can play simultaneously. The first six channels of pattern "03" at order "02" are shown here. The arrow at A points at the row number. The B arrow points at the note to play, in this case a C4. The column pointed at by the C arrow tells us which instrument is associated with that note, in this case instrument #1 "Kick".
The column at D is used (mainly) for volume commands. In this case it is left empty which means the instrument should play at its default volume. You can see the volume column being used in channel #6.
The E column tells us which effect to use and any parameters for that effect. In this case it holds the "F" effect, which is a tempo command. The "04" means it should play at tempo 4 (a smaller number means faster).
Base pattern
When I create a new track I start with what I call the base pattern. It is worthwhile to spend some time polishing it as a lot of the ideas in the base pattern will be copied and used in other patterns. At least, that's how I work. Every musician will have his own way of working. In "Wild Bunnies" the base pattern is pattern "03" at order "02".
In the section about selecting samples I talked about the four different categories of instruments: drums, bass, chords and leads. That's also how I usually go about making the base pattern. I start by making a drum pattern, then add a bass line, place some chords and top it off with a lead. This forms the base pattern from which the rest of the song will grow.
Drums
Here's a screenshot of the first four rows of the base pattern. I usually reserve the first four channels or so for the drum instruments. Right away there are a couple of tricks shown here. In the first channel the kick, or bass drum, plays some notes. Note the alternating F04 and F02 commands. The "F" command alters the tempo of the song and by quickly alternating the tempo; the song will get some kind of "swing" feel.
In the second channel the closed hi-hat plays a fairly simple pattern. Further down in the channel, not shown here, some open hi-hat notes are added for a bit of variation.
In the third and fourth channel the snare sample plays. The "8" command is for panning. One note is panned hard to the left and the other hard to the right. One sample is played a semitone lower than the other. This results in a cool flanging effect. It makes the snare stand out a little more in the mix.
Bass line
There are two different instruments used for the bass line. Instrument #6 is a pretty standard synthesized bass sound. Instrument #A sounds a bit like a slap bass when used with a quick fade out. By using two different instruments the bass line sounds a bit more ”human”. The volume command is used to cut off the notes. However, it is never set to zero. Setting the volume to a very small value will result in a reverb-like effect. This makes the song sound more "live".
The bass line hints at the chords that will be played and the key the song will be in. In this case the key of the song is D-major, a positive and happy key.
Chords
The D major chords that are being played here are chords stabs; short sounds with a quick decay (fade out). Two different instruments (#8 and #9) are used to form the chords. These instruments are quite similar, but have a slightly different sound, panning and volume decay. Again, the reason for this is to make the sound more human. The volume command is used on some chords to simulate a delay, to achieve more of a live feel. The chords are placed off-beat making for a funky rhythm.
Lead
Finally the lead melody is added. The other instruments are invaluable in holding the track together, but the lead melody is usually what catches people's attention.
A lot of notes and commands are used here, but it looks more complex than it is. A stepwise ascending melody plays in channel 13. Channel 14 and 15 copy this melody, but play it a few rows later at a lower volume. This creates an echo effect. A bit of panning is used on the notes to create some stereo depth. Like with the bass line, instead of cutting off notes the volume is set to low values for a reverb effect. The "461" effect adds a little vibrato to the note, which sounds nice on sustained notes.
Those paying close attention may notice the instrument used here for the lead melody is the same as the one used for the bass line (#6 "Square"), except played two or three octaves higher. This instrument is a looped square wave sample. Each type of wave has its own quirks, but the square wave (shown below) is a really versatile wave form.
Song structure
Good, catchy songs are often carefully structured into sections, some of which are repeated throughout the song with small variations.
A typical pop-song structure is: Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus.
Other single sectional song structures are
<pre>
Strophic or AAA Song Form - oldest story telling with refrain (often title of the song) repeated in every verse section melody
AABA Song Form - early popular, jazz and gospel fading during the 1960s
AB or Verse/Chorus Song Form - songwriting format of choice for modern popular music since the 1960s
Verse/Chorus/Bridge Song Form
ABAB Song Form
ABAC Song Form
ABCD Song Form
AAB 12-Bar Song Form - three four-bar lines or sub-sections
8-Bar Song Form
16-Bar Song Form
Hybrid / Compound Song Forms
</pre>
The most common building blocks are:
#INTRODUCTION(INTRO)
#VERSE
#REFRAIN
#PRE-CHORUS / RISE / CLIMB
#CHORUS
#BRIDGE
#MIDDLE EIGHT
#SOLO / INSTRUMENTAL BREAK
#COLLISION
#CODA / OUTRO
#AD LIB (OFTEN IN CODA / OUTRO)
The chorus usually has more energy than the verse and often has a memorable melody line. As the chorus is repeated the most often during the song, it will be the part that people will remember.
The bridge often marks a change of direction in the song. It is not uncommon to change keys in the bridge, or at least to use a different chord sequence. The bridge is used to build up tension towards the big finale, the last repetition of chorus.
Playing
RCTRL: Play song from row 0.
LSHIFT + RCTRL: Play song from current row.
RALT: Play pattern from row 0.
LSHIFT + RALT: Play pattern from current row.
Left mouse on '>': Play song from row 0.
Right mouse on '>': Play song from current row.
Left mouse on '|>': Play pattern from row 0.
Right mouse on '|>': Play pattern from current row.
Left mouse on 'Edit/Record': Edit mode on/off.
Right mouse on 'Edit/Record': Record mode on/off.
Editing
LSHIFT + ESCAPE: Switch large patterns view on/off
TAB: Go to next track
LSHIFT + TAB: Go to prev. track
LCTRL + TAB: Go to next note in track
LCTRL + LSHIFT + TAB: Go to prev. note in track
SPACE: Toggle Edit mode On & Off
(Also stop if the song is being played)
SHIFT SPACE: Toggle Record mode On & Off
(Wait for a key note to be pressed
or a midi in message to be received)
DOWN ARROW: 1 Line down
UP ARROW: 1 Line up
LEFT ARROW: 1 Row left
RIGHT ARROW: 1 Row right
PREV. PAGE: 16 Arrows Up
NEXT PAGE: 16 Arrows Down
HOME / END: Top left / Bottom right of pattern
LCTRL + HOME / END: First / last track
F5, F6, F7, F8, F9: Jump to 0, 1/4, 2/4, 3/4, 4/4 lines of the patterns
+ - (Numeric keypad): Next / Previous pattern
LCTRL + LEFT / RIGHT: Next / Previous pattern
LCTRL + LALT + LEFT / RIGHT: Next / Previous position
LALT + LEFT / RIGHT: Next / Previous instrument
LSHIFT + M: Toggle mute state of the current channel
LCTRL + LSHIFT + M: Solo the current track / Unmute all
LSHIFT + F1 to F11: Select a tab/panel
LCTRL + 1 to 4: Select a copy buffer
Tracking
1st and 2nd keys rows: Upper octave row
3rd and 4th keys rows: Lower octave row
RSHIFT: Insert a note off
/ and * (Numeric keypad)
or F1 F2: -1 or +1 octave
INSERT / BACKSPACE: Insert or Delete a line in current track
or current selected block.
LSHIFT + INSERT / BACKSPACE: Insert or Delete a line in current pattern
DELETE (NOT BACKSPACE): Empty a column or a selected block.
Blocks
(Blocks can also be selected with the mouse by holding the right button and scrolling the pattern with the mouse wheel).
LCTRL + A: Select entire current track
LCTRL + LSHIFT + A: Select entire current pattern
LALT + A: Select entire column note in a track
LALT + LSHIFT + A: Select all notes of a track
LCTRL + X: Cut the selected block and copy it into the block-buffer
LCTRL + C: Copy the selected block into the block-buffer
LCTRL + V: Paste the data from the block buffer into the pattern
LCTRL + I: Interpolate selected data from the first to the last row of a selection
LSHIFT + ARROWS
PREV. PAGE
NEXT PAGE: Select a block
LCTRL + R: Randomize the select columns of a selection, works similar to CTRL + I (interpolating them)
LCTRL + U: Transpose the note of a selection to 1 seminote higher
LCTRL + D: Transpose the note of a selection to 1 seminote lower
LCTRL + LSHIFT + U: Transpose the note of a selection to 1 seminote higher (only for the current instrument)
LCTRL + LSHIFT + D: Transpose the note of a selection to 1 seminote lower (only for the current instrument)
LCTRL + H: Transpose the note of a selection to 1 octave higher
LCTRL + L: Transpose the note of a selection to 1 octave lower
LCTRL + LSHIFT + H: Transpose the note of a selection to 1 octave higher (only for the current instrument)
LCTRL + LSHIFT + L: Transpose the note of a selection to 1 octave lower (only for the current instrument)
LCTRL + W: Save the current selection into a file
Misc
LALT + ENTER: Switch between full screen / windowed mode
LALT + F4: Exit program (Windows only)
LCTRL + S: Save current module
LSHIFT + S: Switch top right panel to synths list
LSHIFT + I: Switch top right panel to instruments list
<pre>
C-x xh xx xx hhhh Volume
B-x xh xx xx hhhh Jump to
A#x xh xx xx hhhh hhhh Slide
F-x xh xx xx hhhh Tempo
D-x xh xx xx hhhh Pattern Break
G#x xh xx xx hhhh
</pre>
h Hex 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
d Dec 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
The Set Volume command: C. Input a note, then move the cursor to the effects command column and type a C. Play the pattern, and you shouldn't be able to hear the note you placed the C by. This is because the effect parameters are 00. Change the two zeros to a 40(Hex)/64(Dec), depending on what your tracker uses. Play back the pattern again, and the note should come in at full volume.
The Position Jump command next. This is just a B followed by the position in the playing list that you want to jump to. One thing to remember is that the playing list always starts at 0, not 1. This command is usually in Hex.
Onto the volume slide command: A. This is slightly more complex (much more if you're using a newer tracker, if you want to achieve the results here, then set slides to Amiga, not linear), due to the fact it depends on the secondary tempo. For now set a secondary tempo of 06 (you can play around later), load a long or looped sample and input a note or two. A few rows after a note type in the effect command A. For the parameters use 0F. Play back the pattern, and you should notice that when the effect kicks in, the sample drops to a very low volume very quickly. Change the effect parameters to F0, and use a low volume command on the note. Play back the pattern, and when the slide kicks in the volume of the note should increase very quickly.
This because each part of the effect parameters for command A does a different thing. The first number slides the volume up, and the second slides it down. It's not recommended that you use both a volume up and volume down at the same time, due to the fact the tracker only looks for the first number that isn't set to 0. If you specify parameters of 8F, the tracker will see the 8, ignore the F, and slide the volume up. Using a slide up and down at same time just makes you look stupid. Don't do it...
The Set Tempo command: F, is pretty easy to understand. You simply specify the BPM (in Hex) that you want to change to. One important thing to note is that values of lower than 20 (Hex) sets the secondary tempo rather than the primary.
Another useful command is the Pattern Break: D. This will stop the playing of the current pattern and skip to the next one in the playing list. By using parameters of more than 00 you can also specify which line to begin playing from.
Command 3 is Portamento to Note. This slides the currently playing note to another note, at a specified speed. The slide then stops when it reaches the desired note.
<pre>
C-2 1 000 - Starts the note playing
--- 000
C-3 330 - Starts the slide to C-3 at a speed of 30.
--- 300 - Continues the slide
--- 300 - Continues the slide
</pre>
Once the parameters have been set, the command can be input again without any parameters, and it'll still perform the same function unless you change the parameters. This memory function allows certain commands to function correctly, such as command 5, which is the Portamento to Note and Volume Slide command. Once command 3 has been set up command 5 will simply take the parameters from that and perform a Portamento to Note. Any parameters set up for command 5 itself simply perform a Volume Slide identical to command A at the same time as the Portamento to Note.
This memory function will only operate in the same channel where the original parameters were set up.
There are various other commands which perform two functions at once. They will be described as we come across them.
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 00
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 02
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 05
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 08
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0A
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0D
C-3 04 .. .. 09 10 ---> C-3 04 .. .. 09 10
(You can also switch on the Slider Rec to On, and perform parameter-live-recording, such as cutoff transitions, resonance or panning tweaking, etc..) Note: this command only works for volume/panning and fx datas columns.
The next command we'll look at is the Portamento up/down: 1 and 2. Command 1 slides the pitch up at a specified speed, and 2 slides it down. This command works in a similar way to the volume slide, in that it is dependent on the secondary tempo. Both these commands have a memory dependent on each other, if you set the slide to a speed of 3 with the 1 command, a 2 command with no parameters will use the speed of 3 from the 1 command, and vice versa.
Command 4 is Vibrato. Vibrato is basically rapid changes in pitch, just try it, and you'll see what I mean. Parameters are in the format of xy, where x is the speed of the slide, and y is the depth of the slide. One important point to remember is to keep your vibratos subtle and natural so a depth of 3 or less and a reasonably fast speed, around 8, is usually used. Setting the depth too high can make the part sound out of tune from the rest.
Following on from command 4 is command 6. This is the Vibrato and Volume Slide command, and it has a memory like command 5, which you already know how to use.
Command 7 is Tremolo. This is similar to vibrato. Rather than changing the pitch it slides the volume. The effect parameters are in exactly the same format. vibrato effect (0x1dxy) x = speed y = depth (can't be used if arpeggio (0x1b) is turned on)
<pre>
C-7 00 .. .. 1B37 <- Turn Arpeggio effect on
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B38 <- Change datas
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B00 <- Turn it off
</pre>
Command 9 is Sample Offset. This starts the playback of the sample from a different place than the start. The effect parameters specify the sample offset, but only very roughly. Say you have a sample which is 8765(Hex) bytes long, and you wanted it to play from position 4321(Hex). The effect parameter could only be as accurate as the 43 part, and it would ignore the 21.
Command B is the Playing List/Order Jump command. The parameters specify the position in the Playing List/Order to jump to. When used in conjunction with command D you can specify the position and the line to play from.
Command E is pretty complex, as it is used for a lot of different things, depending on what the first parameter is. Let's take a trip through each effect in order.
Command E0 controls the hardware filter on an Amiga, which, as a low pass filter, cuts off the highest frequencies being played back. There are very few players and trackers on other system that simulate this function, not that you should need to use it. The second parameter, if set to 1, turns on the filter. If set to 0, the filter gets turned off.
Commands E1/E2 are Fine Portamento Up/Down. Exactly the same functions as commands 1/2, except that they only slide the pitch by a very small amount. These commands have a memory the same as 1/2 as well.
Command E3 sets the Glissando control. If parameters are set to 1 then when using command 3, any sliding will only use the notes in between the original note and the note being slid to. This produces a somewhat jumpier slide than usual. The best way to understand is to try it out for yourself. Produce a slow slide with command 3, listen to it, and then try using E31.
Command E4 is the Set Vibrato Waveform control. This command controls how the vibrato command slides the pitch. Parameters are 0 - Sine, 1 - Ramp Down (Saw), 2 - Square. By adding 4 to the parameters, the waveform will not be restarted when a new note is played e.g. 5 - Sine without restart.
Command E5 sets the Fine Tune of the instrument being played, but only for the particular note being played. It will override the default Fine Tune for the instrument. The parameters range from 0 to F, with 0 being -8 and F being +8 Fine Tune. A parameter of 8 gives no Fine Tune. If you're using a newer tracker that supports more than -8 to +8 e.g. -128 to +128, these parameters will give a rough Fine Tune, accurate to the nearest 16.
Command E6 is the Jump Loop command. You mark the beginning of the part of a pattern that you want to loop with E60, and then specify with E6x the end of the loop, where x is the number of times you want it to loop.
Command E7 is the Set Tremolo Waveform control. This has exactly the same parameters as command E4, except that it works for Tremolo rather than Vibrato.
Command E9 is for Retriggering the note quickly. The parameter specifies the interval between the retrigs. Use a value of less than the current secondary tempo, or else the note will not get retrigged.
Command EA/B are for Fine Volume Slide Up/Down. Much the same as the normal Volume Slides, except that these are easier to control since they don't depend on the secondary tempo. The parameters specify the amount to slide by e.g. if you have a sample playing at a volume of 08 (Hex) then the effect EA1 will slide this volume to 09 (Hex). A subsequent effect of EB4 would slide this volume down to 05 (Hex).
Command EC is the Note Cut. This sets the volume of the currently playing note to 0 at a specified tick. The parameters should be lower than the secondary tempo or else the effect won't work.
Command ED is the Note Delay. This should be used at the same time as a note is to be played, and the parameters will specify the number of ticks to delay playing the note. Again, keep the parameters lower than the secondary tempo, or the note won't get played!
Command EE is the Pattern Delay. This delays the pattern for the amount of time it would take to play a certain number of rows. The parameters specify how many rows to delay for.
Command EF is the Funk Repeat command. Set the sample loop to 0-1000. When EFx is used, the loop will be moved to 1000- 2000, then to 2000-3000 etc. After 9000-10000 the loop is set back to 0- 1000. The speed of the loop "movement" is defined by x. E is two times as slow as F, D is three times as slow as F etc. EF0 will turn the Funk Repeat off and reset the loop (to 0-1000).
effects 0x41 and 0x42 to control the volumes of the 2 303 units
There is a dedicated panel for synth parameter editing with coherent sections (osc, filter modulation, routing, so on) the interface is much nicer, much better to navigate with customizable colors, the reverb is now customizable (10 delay lines), It accepts newer types of Waves (higher bit rates, at least 24). Has a replay routine.
It's pretty much your basic VA synth. The problem isn't with the sampler being to high it's the synth is tuned two octaves too low, but if you want your samples tuned down just set the base note down 2 octaves (in the instrument panel).
so the synth is basically divided into 3 sections from left to right: oscillators/envelopes, then filter and LFO's, and in the right column you have mod routings and global settings.
for the oscillator section you have two normal oscillators (sine, saw, square, noise), the second of which is tunable, the first one tunes with the key pressed. Attached to OSC 1 is a sub-oscillator, which is a sawtooth wave tuned one octave down. The phase modulation controls the point in the duty cycle at which the oscillator starts. The ADSR envelope sliders (grouped with oscs) are for modulation envelope 1 and 2 respectively. you can use the synth as a sampler by choosing the instrument at the top.
In the filter column, the filter settings are: 1 = lowpass, 2 = highpass, 3 = off. cutoff and resonance. For the LFOs they are LFO 1 and LFO 2, the ADSR sliders in those are for the LFO itself.
For the modulation routings you have ENV 1, LFO 1 for the first slider and ENV 2, LFO 2 for the second, you can cycle through the individual routings there, and you can route each modulation source to multiple destinations of course, which is another big plus for this synth. Finally the glide time is for portamento and master volume, well, the master volume... it can go quite loud.
The sequencer is changed too, It's more like the one in AXS if you've used that, where you can mute tracks to re-use patterns with variation.
<pre>
Support for the following modules formats:
669 (Composer 669, Unis 669),
AMF (DSMI Advanced Module Format),
AMF (ASYLUM Music Format V1.0),
APUN (APlayer), DSM (DSIK internal format),
FAR (Farandole Composer),
GDM (General DigiMusic),
IT (Impulse Tracker),
IMF (Imago Orpheus),
MOD (15 and 31 instruments),
MED (OctaMED),
MTM (MultiTracker Module editor),
OKT (Amiga Oktalyzer),
S3M (Scream Tracker 3),
STM (Scream Tracker),
STX (Scream Tracker Music Interface Kit),
ULT (UltraTracker),
UNI (MikMod),
XM (FastTracker 2),
Mid (midi format via timidity)
</pre>
Possible plugin options include [http://lv2plug.in/ LV2],
====Midi - Musical Instrument Digital Interface====
A midi file typically contains music that plays on up to 16 channels (as per the midi standard), but many notes can simultaneously play on each channel (depending on the limit of the midi hardware playing it).
'''Timidity'''
Although usually already installed, you can uncompress the [http://www.libsdl.org/projects/SDL_mixer/ timidity.tar.gz (14MB)] into a suitable drawer like below's SYS:Extras/Audio/
assign timidity: SYS:Extras/Audio/timidity
added to SYSːs/User-Startup
'''WildMidi playback'''
'''Audio Evolution 4 (2003) 4.0.23 (from 2012)'''
*Sync Menu - CAMD Receive, Send checked
*Options Menu - MIDI Machine Control - Midi Bar Display - Select CAMD MIDI in / out - Midi Remote Setup
MCB Master Control Bus
*Sending a MIDI start-command and a Song Position Pointer, you can synchronize audio with an external MIDI sequencer (like B&P).
*B&P Receive, start AE, add AudioEvolution.ptool in Bars&Pipes track, press play / record in AE then press play in Pipes
*CAMD Receive, receive MIDI start or continue commands via camd.library sync to AE
*MIDI Machine Control
*Midi Bar Display
*Select CAMD MIDI in / out
*Midi Remote Setup - open requester for external MIDI controllers to control app mixer and transport controls cc remotely
Channel - mixer(vol, pan, mute, solo), eq, aux, fx,
Subgroup - Volume, Mute, Solo
Transport - Start, End, Play, Stop, Record, Rewind, Forward
Misc - Master vol., Bank Down, Bank up
<pre>
q - quit
First 3 already opened when AE started
F1 - timeline window
F2 - mixer
F3 - control
F4 - subgroups
F5 - aux returns
F6 - sample list
i - Load sample to use
space - start/stop play
b - reset time 0:00
s - split mode
r - open recording window
a - automation edit mode with p panning, m mute and v volume
[ / ] - zoom in / out
: - previous track
* - next track
x c v f - cut copy paste cross-fade
g - snap grid
</pre>
'''[http://bnp.hansfaust.de/ Bars n Pipes sequencer]'''
BarsnPipes debug ... in shell
Menu (right mouse)
*Song - Songs load and save in .song format but option here to load/save Midi_Files .mid in FORMAT0 or FORMAT1
*Track -
*Edit -
*Tool -
*Timing - SMTPE Synchronizing
*Windows -
*Preferences - Multiple MIDI-in option
Windows (some of these are usually already opened when Bars n Pipes starts up for the first time)
*Workflow -> Tracks, .... Song Construction, Time-line Scoring, Media Madness, Mix Maestro,
*Control -> Transport (or mini one), Windows (which collects all the Windows icons together-shortcut), .... Toolbox, Accessories, Metronome,
Once you have your windows placed on the screen that suits your workflow, Song -> Save as Default will save the positions, colors, icons, etc as you'd like them
If you need a particular setup of Tracks, Tools, Tempos etc, you save them all as a new song you can load each time
Right mouse menu -> Preferences -> Environment... -> ScreenMode - Linkages for Synch (to Slave) usbmidi.out.0 and Send (Master) usbmidi.in.0 - Clock MTC
'''Tracks'''
#Double-click on B&P's icon. B&P will then open with an empty Song. You can also double-click on a song icon to open a song in B&P.
#Choose a track. The B&P screen will contain a Tracks Window with a number of tracks shown as pipelines (Track 1, Track 2, etc...). To choose a track, simply click on the gray box to show an arrow-icon to highlight it. This icon show whether a track is chosen or not. To the right of the arrow-icon, you can see the icon for the midi-input. If you double-click on this icon you can change the MIDI-in setup.
#Choose Record for the track. To the right of the MIDI-input channel icon you can see a pipe. This leads to another clickable icon with that shows either P, R or M. This stands for Play, Record or Merge. To change the icon, simply click on it. If you choose P, this track can only play the track (you can't record anything). If you choose R, you can record what you play and it overwrites old stuff in the track. If you choose M, you merge new records with old stuff in the track. Choose R now to be able to make a record.
#Chose MIDI-channel. On the most right part of the track you can see an icon with a number in it. This is the MIDI-channel selector. Here you must choose a MIDI-channel that is available on your synthesizer/keyboard. If you choose General MIDI channel 10, most synthesizer will play drum sounds. To the left of this icon is the MIDI-output icon. Double-click on this icon to change the MIDI-output configuration.
#Start recording. The next step is to start recording. You must then find the control buttons (they look like buttons on a CD-player). To be able to make a record. you must click on the R icon. You can simply now press the play button (after you have pressed the R button) and play something on you keyboard. To playback your composition, press the Play button on the control panel.
#Edit track. To edit a track, you simply double click in the middle part of a track. You will then get a new window containing the track, where you can change what you have recorded using tools provided. Take also a look in the drop-down menus for more features.
Videos to help understand [https://www.youtube.com/watch?v=A6gVTX-9900 small intro], [https://www.youtube.com/watch?v=abq_rUTiSA4&t=3s Overview], [https://www.youtube.com/watch?v=ixOVutKsYQo Workplace Setup CC PC Sysex], [https://www.youtube.com/watch?v=dDnJLYPaZTs Import Song], [https://www.youtube.com/watch?v=BC3kkzPLkv4 Tempo Mapping], [https://www.youtube.com/watch?v=sd23kqMYPDs ptool Arpeggi-8], [https://www.youtube.com/watch?v=LDJq-YxgwQg PlayMidi Song], [https://www.youtube.com/watch?v=DY9Pu5P9TaU Amiga Midi], [https://www.youtube.com/watch?v=abq_rUTiSA4 Learning Amiga bars and Pipes],
Groups like [https://groups.io/g/barsnpipes/topics this] could help
'''Tracks window'''
* blue "1 2 3 4 5 6 7 8 Group" and transport tape deck VCR-type controls
* Flags
* [http://theproblem.alco-rhythm.com/org/bp.html Track 1, Track2, to Track 16, on each Track there are many options that can be activated]
Each Track has a
*Left LHS - Click in grey box to select what Track to work on, Midi-In ptool icon should be here (5pin plug icon), and many more from the Toolbox on the Input Pipeline
*Middle - (P, R, M) Play, Record, Merge/Multi before the sequencer line and a blue/red/yellow (Thru Mute Play) Tap
*Right RHS - Output pipeline, can have icons placed uopn it with the final ptool icon(s) being the 5pin icon symbol for Midi-OUT
Clogged pipelines may need Esc pressed several times
'''Toolbox (tools affect the chosen pipeline)'''
After opening the Toolbox window you can add extra Tools (.ptool) for the pipelines like keyboard(virtual), midimonitor, quick patch, transpose, triad, (un)quantize, feedback in/out, velocity etc
right mouse -> Toolbox menu option -> Install Tool... and navigate to Tool drawer (folder) and select requried .ptool
Accompany B tool to get some sort of rythmic accompaniment, Rythm Section and Groove Quantize are examples of other tools that make use of rythms
[https://aminet.net/search?query=bars Bars & Pipes pattern format .ptrn] for drawer (folder). Load from the Menu as Track or Group
'''Accessories (affect the whole app)'''
Accessories -> Install... and goto the Accessories drawer for .paccess like adding ARexx scripting support
'''Song Construction'''
<pre>
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Duplicator
F5 Eraser
F6 Toolpad
F7 Bounding box
F8 Lock to A-B-A
A-B-A strip, section, edit flags, white boxes,
</pre>
Bars&Pipes Professional offers three track formats; basic song tracks, linear tracks — which don't loop — and finally real‑time tracks. The difference between them is that both song and linear tracks respond to tempo changes, while real‑time tracks use absolute timing, always trigger at the same instant regardless of tempo alterations
'''Tempo Map'''
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Eraser
F5 Curve
F6 Toolpad
Compositions
Lyrics, Key, Rhythm, Time Signature
'''Master Parameters'''
Key, Scale/Mode
'''Track Parameters'''
Dynamics
'''Time-line Scoring'''
'''Media Madness'''
'''Mix Maestro'''
*ACCESSORIES Allows the importation of other packages and additional modules
*CLIPBOARD Full cut, copy and paste operations, enabling user‑definable clips to be shared between tracks.
*INFORMATION A complete rundown on the state of the current production and your machine.
*MASTER PARAMETERS Enables global definition of time signatures, lyrics, scales, chords, dynamics and rhythm changes.
*MEDIA MADNESS A complete multimedia sequencer which allows samples, stills, animation, etc
*METRONOME Tempo feedback via MIDI, internal Amiga audio and colour cycling — all three can be mixed and matched as required.
*MIX MAESTRO Completely automated mixdown with control for both volume and pan. All fader alterations are memorised by the software
*RECORD ACTIVATION Complete specification of the data to be recorded/merged. Allows overdubbing of pitch‑bend, program changes, modulation etc
*SET FLAGS Numeric positioning of location and edit flags in either SMPTE or musical time
*SONG CONSTRUCTION Large‑scale cut and paste of individual measures, verses or chorus, by means of bounding box and drag‑n‑drop mouse selections
*TEMPO MAP Tempo change using a variety of linear and non‑linear transition curves
*TEMPO PALETTE Instant tempo changes courtesy of four user‑definable settings.
*TIMELINE SCORING Sequencing of a selection of songs over a defined period — ideal for planning an entire set for a live performance.
*TOOLBOX Selection screen for the hundreds of signal‑processing tools available
*TRACKS Opens the main track window to enable recording, editing and the use of tools.
*TRANSPORT Main playback control window, which also provides access to user‑ defined flags, loop and punch‑in record modes.
Bars and Pipes Pro 2.5 is using internal 4-Byte IDs, to check which kind of data are currently processed.
Especially in all its files the IDs play an important role. The IDs are stored into the file in the same order they are laid out in the memory.
In a Bars 'N' Pipes file (no matter which kind) the ID "NAME" (saved as its ANSI-values) is stored on a big endian system (68k-computer) as "NAME". On a little endian system (x86 PC computer) as "EMAN". The target is to make the AROS-BnP compatible to songs, which were stored on a 68k computer (AMIGA).
If possible, setting MIDI channels for Local Control for your keyboard
http://www.fromwithin.com/liquidmidi/archive.shtml
MIDI files are essentially a stream of event data. An event can be many things, but typically "note on", "note off", "program change", "controller change", or messages that instruct a MIDI compatible synth how to play a given bit of music.
* Channel - 1 to 16 -
* Messages - PC presets, CC effects like delays, reverbs, etc
* Sequencing - MIDI instruments, Drums, Sound design,
* Recording -
* GUI - Piano roll or Tracker, Staves and Notes
MIDI events/messages like step entry e.g. Note On, Note Off
MIDI events/messages like PB, PC, CC, Mono and Poly After-Touch, Sysex, etc
MIDI sync - Midi Clocks (SPS Measures), Midi Time Code (h, m, s and frames) SMPTE
Individual track editing with audition edits so easier to test any changes. Possible to stop track playback, mix clips from the right edit flag and scroll the display using arrow keys.
Step entry, to extend a selected note hit the space bar and the note grows accordingly. Ability to cancel mouse‑driven edits by simply clicking the right mouse button — at which point everything snaps back into its original form. Lyrics can now be put in with syllable dividers, even across an entire measure or section. Autoranging when you open a edit window, the notes are automatically displayed — working from the lowest upwards.
Flag editing, shift‑click on a flag immediately open the bounds window, ready for numeric input. Ability to cancel edits using the right‑hand mouse button, plus much improved Bounding Box operations.
Icons other than the BarsnPipes icon -> PUBSCREEN=BarsnPipes (cannot choose modes higher than 8bit 256 colors)
Preferences -> Menu in Tracks window - Send MIDI defaults OFF
Prefs -> Environment -> screenmode (saved to BarsnPipes.prefs binary file)
Customization -> pics in gui drawer (folder) -
Can save as .song files and .mid General Midi
SMF is a “Standard Midi File” ([http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html SMF0, SMF1 and SMF2]), [https://github.com/stump/libsmf libsmf], [https://github.com/markc/midicomp MIDIcomp], [https://github.com/MajicDesigns/MD_MIDIFile C++ src], [], [https://github.com/newdigate/midi-smf-reader Midi player],
* SMF0 All MIDI data is stored in one track only, separated exclusively by the MIDI channel.
* SMF1 The MIDI data is stored in separate tracks/channels.
* SMF2 (rarely used) The MIDI data is stored in separate tracks, which are additionally wrapped in containers, so it's possible to have e.g. several tracks using the same MIDI channels.
Would it be possible to enrich Bars N’Pipes with software synth and sample support along with audio recording and mastering tools like in the named MAC or PC music sequencers?
On the classic AMIGA-OS this is not possible because of missing CPU-power. The hardware of the classic AMIGA is not further developed. So we must say (unfortunately) that those dreams can’t become reality
BarsnPipes is best used with external MIDI-equipment. This can be a keyboard or synthesizer with MIDI-connectors.
<pre>
MIDI can control 16 channels
There are USB-MIDI-Interfaces on the market with 16 independent MIDI-lines (multi-port), which can handle 16 MIDI devices independently – 16×16 = 256 independent MIDI-channels or instruments
handle up to 16 different USB-MIDI-Interfaces (multi-device). That is: 16X16X16 = 4096 independent MIDI-channels – theoretically
</pre>
<pre>
Librarian MIDI SYStem EXplorer (sysex) - PatchEditor and used to be supplied as a separate program like PatchMeister but currently not at present
It should support MIDI.library (PD), BlueRibbon.library (B&P), TriplePlayPlus, and CAMD.library (DeluxeMusic) and
MIDI information from a device's user manual and configure a custom interface to access parameters for all MIDI products connected to the system
Supports ALL MIDI events and the Patch/Librarian data is stored in MIDI standard format
Annette M.Crowling, Missing Link Software, Inc.
</pre>
Composers
<pre>
[https://x.com/hirasawa/status/1403686519899054086 Susumu Hirasawa]
</pre>
<pre>
1988 Todor Fay and his wife Melissa Jordan Gray, who founded the Blue Ribbon Inc
1992 Bars&Pipes Pro published
November 2000, Todor Fay announcement to release the sourcecode of Bars&Pipes Pro 2.5c beta
end of May 2001, the source of the main program and the sources of some tools and accessories were in a complete and compileable state
end of October 2009 stop further development of BarsnPipes New for now on all supported systems and made freeware
2013 Alfred Faust diagnosed with incureable illness, called „Myastenia gravis“ (weak muscles)
</pre>
Protrekkr
How to use Midi In/Out in Protrekkr ?
First of all, midi in & out capabilities of this program are rather limited.
# Go to Misc. Setup section and select a midi in or out device to use (ptk only supports one device at a time).
# Go to instrument section, and select a MIDI PRG (the default is N/A, which means no midi program selected).
# Go to track section and here you can assign a midi channel to each track of ptk.
# Play notes :]. Note off works. F'x' note cut command also works too, and note-volume command (speed) is supported.
Also, you can change midicontrollers in the tracker, using '90' in the panning row:
<pre>
C-3 02 .. .. 0000....
--- .. .. 90 xxyy.... << This will set the value
--- .. .. .. 0000.... of the controller n.'xx' to 'yy' (both in hex)
--- .. .. .. 0000....
</pre>
So "--- .. .. 90 2040...." will set the controller number $20(32) to $40(64).
You will need the midi implementation table of your gear to know what you can change with midi controller messages.
N.B. Not all MIDI devices are created equal!
Although the MIDI specification defines a large range of MIDI messages of various kinds, not every MIDI device is required to work in exactly the same way and respond to all the available messages and ways of working. For example, we don't expect a wind synthesiser to work in the same way as a home keyboard.
Some devices, the older ones perhaps, are only able to respond to a single channel. With some of those devices that channel can be altered from the default of 1 (probably) to another channel of the 16 possible.
Other devices, for instance monophonic synthesisers, are capable of producing just one note at a time, on one MIDI channel. Others can produce many notes spread across many channels.
Further devices can respond to, and transmit, "breath controller" data (MIDI controller number 2 (CC#2)) others may respond to the reception of CC#2 but not be able to create and to send it.
A controller keyboard may be capable of sending "expression pedal" data, but another device may not be capable of responding to that message.
Some devices just have the basic GM sound set. The "voice" or "instrument" is selected using a "Program Change" message on its own.
Other devices have a greater selection of voices, usually arranged in "banks", and the choice of instrument is made by responding to "Bank Select MSB" (MIDI controller 0 (CC#0)), others use "Bank Select LSB" (MIDI controller number 32 (CC#32)), yet others use both MSB and LSB sent one after the other, all followed by the Program Change message. The detailed information about all the different voices will usually be available in a published MIDI Data List.
MIDI Implementation Chart
But in the User Manual there is sometimes a summary of how the device works, in terms of MIDI, in the chart at the back of the manual, the MIDI Implementation Chart.
If you require two devices to work together you can compare the two implementation charts to see if they are "compatible". In order to do this we will need to interpret that chart.
The chart is divided into four columns headed "Function", "Transmitted" (or "Tx"), "Received" (or "Rx"), or more correctly "Recognised", and finally, "Remarks".
<pre>
The left hand column defines which MIDI functions are being described.
The 2nd column defines what the device in question is capable of transmitting to another device.
The 3rd column defines what the device is capable of responding to.
The 4th column is for explanations of the values contained within these previous two columns.
</pre>
There should then be twelve sections, with possibly a thirteenth containing extra "Notes". Finally there should be an explanation of the four MIDI "modes" and what the "X" and the "O" mean.
<pre>
Mode 1: Omni On, Poly;
Mode 2: Omni On, Mono;
Mode 3: Omni Off, Poly;
Mode 4: Omni Off, Mono.
</pre>
O means "yes" (implemented), X means "no" (not implemented).
Sometimes you will find a row of asterisks "**************", these seem to indicate that the data is not applicable in this case. Seen in the transmitted field only (unless you've seen otherwise).
Lastly you may find against some entries an asterisk followed by a number e.g. *1, these will refer you to further information, often on a following page, giving more detail.
Basic Channel
But the very first set of boxes will tell us the "Basic Channel(s)" that the device sends or receives on.
"Default" is what happens when the device is first turned on, "changed" is what a switch of some kind may allow the device to be set to.
For many devices e.g. a GM sound module or a home keyboard, this would be 1-16 for both. That is it can handle sending and receiving on all MIDI channels.
On other devices, for example a synthesiser, it may by default only work on channel 1. But the keyboard could be "split" with the lower notes e.g. on channel 2. If the synth has an arppegiator, this may be able to be set to transmit and or receive on yet another channel.
So we might see the default as "1" but the changed as "1-16".
Modes.
We need to understand Omni On and Off, and Mono and Poly, then we can decipher the four modes.
But first we need to understand that any of these four Mode messages can be sent to any MIDI channel. They don't necessarily apply to the whole device.
If we send an "Omni On" message (CC#125) to a MIDI channel of a device, we are, in effect, asking it to respond to e.g. a Note On / Off message pair, received on any of the sixteen channels. Sound strange? Read it again. Still strange? It certainly is. We normally want a MIDI channel to respond only to Note On / Off messages sent on that channel, not any other. In other words, "Omni Off".
So "Omni Off" (CC#124) tells a channel of our MIDI device to respond only to messages sent on that MIDI channel.
"Poly" (CC#127) is for e.g. a channel of a polyphonic sound module, or a home keyboard, to be able to respond to many simultaneous Note On / Off message pairs at once and produce musical chords.
"Mono" (CC#126) allows us to set a channel to respond as if it were e.g. a flute or a trumpet, playing just one note at a time. If the device is capable of it, then the overlapping of notes will produce legato playing, that is the attack portion of the second note of two overlapping notes will be removed resulting in a "smoother" transition.
So a channel with a piano voice assigned to it will have Omni Off, Poly On (Mode 3), a channel with a saxophone voice assigned could be Omni Off, Mono On (Mode 4).
We call these combinations the four modes, 1 to 4, as defined above.
Most modern devices will have their channels set to Mode 3 (Omni Off, Poly) but be switchable, on a per channel basis, to Mode 4 (Omni Off, Mono).
This second section of data will include first its default value i.e. upon device switch on. Then what Mode messages are acceptable, or X if none.
Finally, in the "Altered" field, how a Mode message that can't be implemented will be interpreted. Usually there will just be a row of asterisks effectively meaning nothing will be done if you try to switch to an unimplemented mode.
Note Number
<pre>
The next row will tell us which MIDI notes the device can send or receive, normally 0-127.
The second line, "True Voice" has the following in the MIDI specification:
"Range of received note numbers falling within the range of true notes produced by the instrument."
My interpretation is that, for instance, a MIDI piano may be capable of sending all MIDI notes (0 to 127) by transposition, but only responding to the 88 notes (21 to 108) of a real piano.
</pre>
Velocity
This will tell us whether the device we're looking at will handle note velocity, and what range from 1-127, or maybe just 64, it transmits or will recognise. So usually "O" plus a range or "X" for not implemented.
After touch
This may have one or two lines two it.
If a one liner the either "O" or "X", yes or no.
If a two liner then it may include "Keys" or "Poly" and "Channel".
This will show whether the device will respond to Polyphonic after touch or channel after touch or neither.
Pitch Bend
Again "O" for implemented, "X" for not implemented.
(Many stage pianos will have no pitch bend capability.)
It may also, in the notes section, state whether it will respond to the full 14 bits, or not, as usually encoded by the pitch bend wheel.
Control Change
This is likely to be the largest section of the chart.
It will list all those controllers, starting from CC#0, Bank Select MSB, which the device is capable of sending, and those that it will respond to using "O" or "X" respectively.
You will, almost certainly, get some further explanation of functionality in the remarks column, or in more detail elsewhere in the documentation.
Of course you will need to know what all the various controller numbers do. Lots of the official technical specifications can be found at the [www.midi.org/techspecs/ MMA], with the table of messages and control change [www.midi.org/techspecs/midimessages.php message numbers]
Program Change
Again "O" or "X" in the Transmitted or Recognised column to indicate whether or not the feature is implemented. In addition a range of numbers is shown, typically 0-127, to show what is available.
True # (number): "The range of the program change numbers which correspond to the actual number of patches selected."
System Exclusive
Used to indicate whether or not the device can send or recognise System Exclusive messages. A short description is often given in the Remarks field followed by a detailed explanation elsewhere in the documentation.
System Common - These include the following:
<pre>
MIDI Time Code Quarter Frame messages (device synchronisation).
Song Position Pointer
Song Select
Tune Request
</pre>
The section will indicate whether or not the device can send or respond to any of these messages.
System Real Time
These include the following:
<pre>
Timing Clock - often just written as "Clock"
Start
Stop
Continue
</pre>
These three are usually just referred to as "Commands" and listed.
Again the section will indicate which, if any, of these messages the device can send or respond to.
<pre>
Aux. Messages
Again "O" or "X" for implemented or not.
Aux. = Auxiliary.
Active Sense = Active Sensing.
</pre>
Often with an explanation of the action of the device.
Notes
The "Notes" section can contain any additional comments to clarify the particular implementation.
Some of the explanations have been drawn directly from the MMA MIDI 1.0 Detailed Specification.
And the detailed explanation of some of the functions will be found there, or in the General MIDI System Level 1 or General MIDI System Level 2 documents also published by the MMA.
OFFICIAL MIDI SPECIFICATIONS
SUMMARY OF MIDI MESSAGES
Table 1 - Summary of MIDI Messages
The following table lists the major MIDI messages in numerical (binary) order (adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88, and updated by the MIDI Manufacturers Association.). This table is intended as an overview of MIDI, and is by no means complete.
WARNING! Details about implementing these messages can dramatically impact compatibility with other products. We strongly recommend consulting the official MIDI Specifications for additional information.
MIDI 1.0 Specification
Message Summary Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1000nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1001nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1010nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127).
|-
|<!--Status-->1100nnnn || <!--Data-->0ppppppp || <!--Description-->Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.
|-
|<!--Status-->1101nnnn || <!--Data-->0vvvvvvv || <!--Description-->Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
|-
|<!--Status-->1110nnnn || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Pitch Bend Change. This message is sent to indicate a change in the pitch bender (wheel or lever, typically). The pitch bender is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the receiver, but may be set using RPN 0. (lllllll) are the least significant 7 bits. (mmmmmmm) are the most significant 7 bits.
|}
Channel Mode Messages (See also Control Change, above)
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are:
*All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible c = 120, v = 0: All Sound Off
*Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults) c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice.
*Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
* All Notes Off. When an All Notes Off is received, all oscillators will turn off.
c = 123, v = 0: All Notes Off (See text for description of actual mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off)
|}
System Common Messages
System Messages (0xF0)
The final status nybble is a “catch all” for data that doesn’t fit the other statuses. They all use the most significant nybble (4bits) of 0xF, with the least significant nybble indicating the specific category.
The messages are denoted when the MSB of the second nybble is 1. When that bit is a 0, the messages fall into two other subcategories.
System Common
If the MSB of the second second nybble (4 bits) is not set, this indicates a System Common message. Most of these are messages that include some additional data bytes.
System Common Messages
Type Status Byte Number of Data Bytes Usage
<pre>
Time Code Quarter Frame 0xF1 1 Indicates timing using absolute time code, primarily for synthronization with video playback systems. A single location requires eight messages to send the location in an encoded hours:minutes:seconds:frames format*.
Song Position 0xF2 2 Instructs a sequencer to jump to a new position in the song. The data bytes form a 14-bit value that expresses the location as the number of sixteenth notes from the start of the song.
Song Select 0xF3 1 Instructs a sequencer to select a new song. The data byte indicates the song.
Undefined 0xF4 0
Undefined 0xF5 0
Tune Request 0xF6 0 Requests that the receiver retunes itself**.
</pre>
*MIDI Time Code (MTC) is significantly complex. Please see the MIDI Specification
**While modern digital instruments are good at staying in tune, older analog synthesizers were prone to tuning drift. Some analog synthesizers had an automatic tuning operation that could be initiated with this command.
System Exclusive
If you’ve been keeping track, you’ll notice there are two status bytes not yet defined: 0xf0 and 0xf7. These are used by the System Exclusive message, often abbreviated at SysEx. SysEx provides a path to send arbitrary data over a MIDI connection. There is a group of predefined messages for complex data, like fine grained control of MIDI Time code machinery. SysEx is also used to send manufacturer defined data, such as patches, or even firmware updates.
System Exclusive messages are longer than other MIDI messages, and can be any length. The messages are of the following format:
0xF0, 0xID, 0xdd, ...... 0xF7
The message is bookended with distinct bytes.
It opens with the Start Of Exclusive (SOX) data byte, 0xF0.
The next one to three bytes after the start are an identifier.
Values from 0x01 to 0x7C are one-byte vendor IDs, assigned to manufacturers who were involved with MIDI at the beginning.
If the ID is 0x00, it’s a three-byte vendor ID - the next two bytes of the message are the value.
<pre>
ID 0x7D is a placeholder for non-commercial entities.
ID 0x7E indicates a predefined Non-realtime SysEx message.
ID 0x7F indicates a predefined Realtime SysEx message.
</pre>
After the ID is the data payload, sent as a stream of bytes.
The transfer concludes with the End of Exclusive (EOX) byte, 0xF7.
The payload data must follow the guidelines for MIDI data bytes – the MSB must not be set, so only 7 bits per byte are actually usable. If the MSB is set, it falls into three possible scenarios.
An End of Exclusive byte marks the ordinary termination of the SysEx transfer.
System Real Time messages may occur within the transfer without interrupting it. The recipient should handle them independently of the SysEx transfer.
Other status bytes implicitly terminate the SysEx transfer and signal the start of new messages.
Some inexpensive USB-to-MIDI interfaces aren’t capable of handling messages longer than four bytes.
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11110000 || <!--Data-->0iiiiiii [0iiiiiii 0iiiiiii] 0ddddddd --- --- 0ddddddd 11110111 || <!--Description-->System Exclusive.
This message type allows manufacturers to create their own messages (such as bulk dumps, patch parameters, and other non-spec data) and provides a mechanism for creating additional MIDI Specification messages. The Manufacturer's ID code (assigned by MMA or AMEI) is either 1 byte (0iiiiiii) or 3 bytes (0iiiiiii 0iiiiiii 0iiiiiii). Two of the 1 Byte IDs are reserved for extensions called Universal Exclusive Messages, which are not manufacturer-specific. If a device recognizes the ID code as its own (or as a supported Universal message) it will listen to the rest of the message (0ddddddd). Otherwise, the message will be ignored. (Note: Only Real-Time messages may be interleaved with a System Exclusive.)
|-
|<!--Status-->11110001 || <!--Data-->0nnndddd || <!--Description-->MIDI Time Code Quarter Frame.
nnn = Message Type
dddd = Values
|-
|<!--Status-->11110010 || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Song Position Pointer.
This is an internal 14 bit register that holds the number of MIDI beats (1 beat= six MIDI clocks) since the start of the song. l is the LSB, m the MSB.
|-
|<!--Status-->11110011 || <!--Data-->0sssssss || <!--Description-->Song Select.
The Song Select specifies which sequence or song is to be played.
|-
|<!--Status-->11110100 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110110 || <!--Data--> || <!--Description-->Tune Request. Upon receiving a Tune Request, all analog synthesizers should tune their oscillators.
|-
|<!--Status-->11110111 || <!--Data--> || <!--Description-->End of Exclusive. Used to terminate a System Exclusive dump.
|}
System Real-Time Messages
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11111000 || <!--Data--> || <!--Description-->Timing Clock. Sent 24 times per quarter note when synchronization is required.
|-
|<!--Status-->11111001 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111010 || <!--Data--> || <!--Description-->Start. Start the current sequence playing. (This message will be followed with Timing Clocks).
|-
|<!--Status-->11111011 || <!--Data--> || <!--Description-->Continue. Continue at the point the sequence was Stopped.
|-
|<!--Status-->11111100 || <!--Data--> || <!--Description-->Stop. Stop the current sequence.
|-
|<!--Status-->11111101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111110 || <!--Data--> || <!--Description-->Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
|-
|<!--Status-->11111111 || <!--Data--> || <!--Description-->Reset. Reset all receivers in the system to power-up status. This should be used sparingly, preferably under manual control. In particular, it should not be sent on power-up.
|}
Advanced Messages
Polyphonic Pressure (0xA0) and Channel Pressure (0xD0)
Some MIDI controllers include a feature known as Aftertouch. While a key is being held down, the player can press harder on the key. The controller measures this, and converts it into MIDI messages.
Aftertouch comes in two flavors, with two different status messages.
The first flavor is polyphonic aftertouch, where every key on the controller is capable of sending its own independent pressure information. The messages are of the following format:
<pre>
0xnc, 0xkk, 0xpp
n is the status (0xA)
c is the channel nybble
kk is the key number (0 to 127)
pp is the pressure value (0 to 127)
</pre>
Polyphonic aftertouch is an uncommon feature, usually found on premium quality instruments, because every key requires a separate pressure sensor, plus the circuitry to read them all.
Much more commonly found is channel aftertouch. Instead of needing a discrete sensor per key, it uses a single, larger sensor to measure pressure on all of the keys as a group. The messages omit the key number, leaving a two-byte format
<pre>
0xnc, 0xpp
n is the status (0xD)
c is the channel number
pp is the pressure value (0 to 127)
</pre>
Pitch Bend (0xE0)
Many keyboards have a wheel or lever towards the left of the keys for pitch bend control. This control is usually spring-loaded, so it snaps back to the center of its range when released. This allows for both upward and downward bends.
Pitch Bend Wheel
The wheel sends pitch bend messages, of the format
<pre>
0xnc, 0xLL, 0xMM
n is the status (0xE)
c is the channel number
LL is the 7 least-significant bits of the value
MM is the 7 most-significant bits of the value
</pre>
You’ll notice that the bender data is actually 14 bits long, transmitted as two 7-bit data bytes. This means that the recipient needs to reassemble those bytes using binary manipulation. 14 bits results in an overall range of 214, or 0 to 16,383. Because it defaults to the center of the range, the default value for the bender is halfway through that range, at 8192 (0x2000).
Control Change (0xB0)
In addition to pitch bend, MIDI has provisions for a wider range of expressive controls, sometimes known as continuous controllers, often abbreviated CC. These are transmitted by the remaining knobs and sliders on the keyboard controller shown below.
Continuous Controllers
These controls send the following message format:
<pre>
0xnc, 0xcc, 0xvv
n is the status (0xB)
c is the MIDI channel
cc is the controller number (0-127)
vv is the controller value (0-127)
</pre>
Typically, the wheel next to the bender sends controller number one, assigned to modulation (or vibrato) depth. It is implemented by most instruments.
The remaining controller number assignments are another point of confusion. The MIDI specification was revised in version 2.0 to assign uses for many of the controllers. However, this implementation is not universal, and there are ranges of unassigned controllers.
On many modern MIDI devices, the controllers are assignable. On the controller keyboard shown in the photos, the various controls can be configured to transmit different controller numbers. Controller numbers can be mapped to particular parameters. Virtual synthesizers frequently allow the user to assign CCs to the on-screen controls. This is very flexible, but it might require configuration on both ends of the link and completely bypasses the assignments in the standard.
Program Change (0xC0)
Most synthesizers have patch storage memory, and can be told to change patches using the following command:
<pre>
0xnc, 0xpp
n is the status (0xc)
c is the channel
pp is the patch number (0-127)
</pre>
This allows for 128 sounds to be selected, but modern instruments contain many more than 128 patches. Controller #0 is used as an additional layer of addressing, interpreted as a “bank select” command. Selecting a sound on such an instrument might involve two messages: a bank select controller message, then a program change.
Audio & Midi are not synchronized, what I can do ?
Buy a commercial software package but there is a nasty trick to synchronize both. It's a bit hardcore but works for me:
Simply put one line down to all midi notes on your pattern (use Insert key)
and go to 'Misc. Setup', adjust the latency and just search a value
that will make sound sync both audio/midi.
The stock Sin/Saw/Pulse and Rnd waveforms are too simple/common, is there a way to use something more complex/rich ?
You have to ability to redirect the waveforms of the instruments through the synth pipe by selecting the "wav" option for the oscillator you're using for this synth instrument, samples can be used as wavetables to replace the stock signals.
Sound banks like soundfont (sf2) or Kontakt2 are not supported at the moment
====DAW Audio Evolution 4====
Audio Evolution 4 gives you unsurpassed power for digital audio recording and editing on the Amiga. The latest release focusses on time-saving non-linear and non-destructive editing, as seen on other platforms. Besides editing, Audio Evolution 4 offers a wide range of realtime effects, including compression, noise gate, delays, reverb, chorus and 3-band EQ.
Whether you put them as inserts on a channel or use them as auxillaries, the effect parameters are realtime adjustable and can be fully automated. Together with all other mixing parameters, they can even be controlled remotely, using more ergonomic MIDI hardware.
Non-linear editing on the time line, including cut, copy, paste, move, split, trim and crossfade actions
The number of tracks per project(s) is unlimited .... AHI limits you to recording only two at a time. i.e. not on 8 track sound cards like the Juli@ or Phase 88.
sample file import is limited to 16bit AIFF (not AIFC, important distinction as some files from other sources can be AIFC with aiff file extension). and 16bit WAV (pcm only)
Most apps use the Music Unit only but a few apps also use Unit (0-3) instead or as well.
* Set up AHI prefs so that microphone is available. (Input option near the bottom)
stereo++ allows the audio piece to be placed anywhere and the left-right adjusted to sound positionally right
hifi best for music playback if driver supports this option
Load 16bit .aif .aiff only sample(s) to use not AIFC which can have the same ending. AIFF stands for Audio Interchange File Format
sox recital.wav recital.aiff
sox recital.wav −b 16 recital.aiff channels 1 rate 16k fade 3 norm
sox input.wav output.aiff bass −b 16 rate 48k
performs the same format translation, but also applies four effects (down-mix to one channel, sample rate change, fade-in, nomalize), and stores the result at a bit-depth of 16.
rec −c 2 radio.aiff trim 0 30:00
records half an hour of stereo audio
play existing-file.wav
24bit PCM WAV or AIFF do not work
*No stream format handling. So no way to pass on an AC3 encoded stream unmodified to the digital outputs through AHI.
*No master volume handling. Each application has to set its own volume. So each driver implements its own custom driver-mixer interface for handling master volumes, mute and preamps.
*Only one output stream. So all input gets mixed into one output.
*No automatic handling of output direction based on connected cables.
*No monitor input selection. Only monitor volume control.
select the correct input (Don't mistake enabled sound for the correct input.)
The monitor will feedback audio to the lineout and hp out no matter if you have selected the correct input to the ADC. The monitor will provide sound for any valid input. This will result in free mixing when recording from the monitor input instead of mic/line because the monitor itself will provide the hardware mixing for you. Be aware that MIC inputs will give two channel mono. Only Linein will give real stereo.
Now for the not working part. Attempt to record from linein in the AE4 record window, the right channel is noise and the left channel is distorted. Even with the recommended HIFI 16bit Stereo++ mode at 48kHz.
Channels
Monitor
Gain
Inout
Output
Advanced settings - Debugging via serial port
* Options -> Soundcard In/Out
* Options -> SampleRate
* Options -> Preferences
F6 for Sample File List
Setting a grid is easy as is measuring the BPM by marking a section of the sample. Is your kick drum track "not in time" ? If so, you're stumped in AE4 as it has no fancy variable time signatures and definitely no 'track this dodgy rhythm' function like software of the nature of Logic has. So if your drum beat is freeform you will need to work in freeform mode. (Real music is free form anyway).
If the drum *is* accurate and you are just having trouble measuring the time, I usually measure over a range of bars and set the number of beats in range to say 16 as this is more accurate, Then you will need to shift the drum track to match your grid *before* applying the grid. (probably an iterative process as when the grid is active samples snap to it, and when inactive you cannot see it).
AE4 does have ARexx but the functions are more for adding samples at set offsets and starting playback / recording.
These are the usual features found in DAWs...
* Recording digital audio, midi sequencer and mixer
* virtual VST instruments and plug-ins
* automation, group channels, MIDI channels, FX sends and returns, audio and MIDI editors and music notation editor
* different track views
* mixer and track layout (but not the same as below)
* traditional two windows (track and mixer)
Mixing - mixdown
Could not figure out how to select what part I wanted to send to the aux, set it to echo and return. Pretty much the whole echo effect. Or any effect.
Take look at page17 of the manual.
When you open the EQ / Aux send popup window you will see 4 sends. Now from the menu choose the windows menu.
Menus->Windows-> Aux Returns Window
or press F5
You will see a small window with 4 volume controls and an effects button for each. Click a button and add an effects to that aux channel, then set it up as desired (note the reverb effect has a special AUX setting that improves its use with the aux channel, not compulsory but highly useful). You set the amount of 'return' on the main mix in the Aux Return window, and the amount sent from each main mixer channel in the popup for that channel. Again the aux sends are "prefade" so the volume faders on each channel do not affect them.
Tracking
Effects - fade in
To add some echoes to some vocals, tried to add an effect on a track but did not come out. This is made more complicated as I wanted to mute a vocal but then make it echo at the muting point. Want to have one word of a vocal heard and then echoed off. But when the track is mute the echo is cancelled out.
To correctly understand what is happening here you need to study the figure at the bottom of page 15 on the manual. You will see from that that the effects are applied 'prefade' So the automation you applied will naturally mute the entire signal.
There would be a number of ways to achieve the goal,
You have three real time effects slots, one for smoothing like so
Sample -> Amplify -> Delay
Then automate the gain of the amplify block so that it effectively mutes the sample just before the delay at the appropriate moment, the echo effect should then be heard.
Getting the effects in the right order will require experimentation as they can only be added top down and it's not obvious which order they are applied to the signal, but there only two possibilities, so it wont take long to find out.
Using MUTE can cause clicks to the Amplify can be used to mute more smoothly so that's a secondary advantage.
Signal Processing -
Overdub
[[#top|...to the top]]
===Office===
====Spreadsheet Leu====
Support for some xlsx, and ods functions
====Spreadsheet Ignition====
; Needs ABIv1 to be completed before more can be done
File formats supported
* ascii #?.txt and #?.csv (single sheets with data only).
* igs and TurboCalc(WIP) #?.tc for all sheets with data, formats and formulas.
There is '''no''' support for xls, xlsx, ods or uos ([http://en.wikipedia.org/wiki/Uniform_Office_Format Uniform Unified Office Format]) at the moment.
* Always use Esc key after editing Spreadsheet cells.
* copy/paste seems to copy the first instance only so go to Edit -> Clipboard to manage the list of remembered actions.
* Right mouse click on row (1 or 2 or 3) or column header (a or b or c) to access optimal height or width of the row or column respectively
* Edit -> Insert -> Row seems to clear the spreadsheet or clears the rows after the inserted row until undo restores as it should be...
Change Sheet name by Object -> Sheet -> Properties
Click in the cell which will contain the result, and click '''down arrow button''' to the right of the formula box at the bottom of the spreadsheet and choose the function required from the list provided. Then click on the start cell and click on the bottom right corner, a '''very''' small blob, which allows stretching a bounding box (thick grey outlines) across many cells This grey bounding box can be used to '''copy a formula''' to other cells.
Object -> Cell -> Properties to change cell format - Currency only covers DM and not $, Euro, Renminbi, Yen or Pound etc.
Shift key and arrow keys selects a range of cells, so that '''formatting can be done to all highlighted cells'''.
View -> Overview then select ALL with one click (in empty cell in the top left hand corner of the sheet).
Default mode is relative cell referencing e.g. a1+a2 but absolute e.g. $a$1+$a$2 can be entered.
* #sheet-name to '''absolute''' reference another sheet-name cell unless reference() function used.
;Graphs
use shift key and arrow keys to select a bunch of cells to be graph'ed making sure that x axes represents and y axes represents
* value() - 0 value, 1 percent, 2 date, 3 time, 4 unit ...
;Dates
* Excel starts a running count from the 1st Jan 1900 and Ignition starts from 1st Jan 1AD '''(maybe this needs to change)'''
Set formatting Object -> Cell -> Properties and put date in days
;Time
Set formatting Object -> Cell -> Properties and put time in seconds taken
;Database (to be done by someone else)
type - standard, reference (bezug), search criterion (suchkriterium),
* select a bunch of cells and Object -> Database -> Define to set Datenbank (database) and Felder (fields not sure how?)
* Neu (new) or loschen (delete) to add/remove database headings e.g. Personal, Start Date, Finish Date (one per row?)
* Object -> Database -> Index to add fields (felder) like Surname, First Name, Employee ID, etc. to ?
Filtering done with dbfilter(), dbproduct() and dbposition().
Activities with dbsum(), dbaverage(), dbmin() and dbmax().
Table sorting -
;Scripts (Arexx)
;Excel(TM) to Ignition - commas ''',''' replaced by semi-colons ''';''' to separate values within functions
*SUM(),
*AVERAGE(), MAX(), MIN(), INT(), PRODUCT(), MEDIAN(), VAR() becomes Variance(), Percentile(),
*IF(), AND, OR, NOT
*LEFT(), RIGHT(), MID() becomes MIDDLE(), LEN() becomes LENGTH(),
*LOWER() becomes LOWERCASE(), UPPER() becomes UPPERCASE(),
* DATE(yyyy,mm,dd) becomes COMPUTEDATE(dd;mm;yyyy),
*TODAY(), DAY(),WEEK(), MONTH(),=YEAR(TODAY()),
*EOMONTH() becomes MONTHLENGTH(),
*NOW() should be date and time becomes time only, SECOND(), MINUTE(), HOUR(),
*DBSUM() becomes DSUM(),
;Missing and possibly useful features/functions needed for ignition to have better support of Excel files
There is no Merge and Join Text over many cells, no protect and/or freeze row or columns or books but can LOCK sheets, no define bunch of cells as a name, Macros (Arexx?), conditional formatting, no Solver, no Goal Seek, no Format Painter, no AutoFill, no AutoSum function button, no pivot tables, (30 argument limit applies to Excel)
*HLOOKUP(), VLOOKUP(), [http://production-scheduling.com/excel-index-function-most-useful/ INDEX(), MATCH()], CHOOSE(), TEXT(),
*TRIM(), FIND(), SUBSTITUTE(), CONCATENATE() or &, PROPER(), REPT(),
*[https://acingexcel.com/excel-sumproduct-function/ SUMPRODUCT()], ROUND(), ROUNDUP(), *ROUNDDOWN(), COUNT(), COUNTA(), SUMIF(), COUNTIF(), COUNTBLANK(), TRUNC(),
*PMT(), PV(), FV(), POWER(), SQRT(), MODE(), TRUE, FALSE,
*MODE(), LARGE(), SMALL(), RANK(), STDEV(),
*DCOUNT(), DCOUNTA(), WEEKDAY(),
;Excel Keyboard [http://dmcritchie.mvps.org/excel/shortx2k.htm shortcuts needed to aid usability in Ignition]
<pre>
Ctrl Z - Undo
Ctrl D - Fill Down
Ctrl R - Fill right
Ctrl F - Find
Ctrl H - Replace
Ctrl 1 - Formatting of Cells
CTRL SHIFT ~ Apply General Formatting ie a number
Ctrl ; - Todays Date
F2 - Edit cell
F4 - toggle cell absolute / relative cell references
</pre>
====Document Scanning - Scandal====
Scanner usually needs to be connected via a USB port and not via a hub or extension lead.
Check in Trident Prefs -> Devices that the USB Scanner is not bound to anything (e.g. Bindings None)
If not found then reboot the computer and recheck.
Start Scandal, choose Settings from Menu strip at top of screen and in Scanner Driver choose the ?#.device of the scanner (e.g. epson2.device).
The next two boxes - leave empty as they are for morphos SCSI use only
or put ata.device (use the selection option in bigger box below) and Unit as 0 this is needed for gt68xx
* gt68xx - no editing needed in s/gt68xx.conf but needs a firmware file that corresponds to the scanner [http://www.meier-geinitz.de/sane/gt68xx-backend/ gt68xx firmwares] in sys:s/gt68xx.
* epson2 - Need to edit the file epson2.conf in sys/s that corresponds to the scanner being used
'''Save''' the settings but do not press the Use button (aros freezes)
Back to the Picture Scan window and the right-hand sections.
Click on the '''Information''' tab and press Connect button and the scanner should now be detected.
Go next to the '''Scanner''' tab next to Information Tab should have Color, Black and White, etc. and dpi settings now. Selecting an option Color, B/W etc. can cause dpi settings corruption (especially if the settings are in one line) so set '''dpi first'''. Make sure if Preview is set or not.
In the '''Scan''' Tab, press Scan and the scanner will do its duty.
Be aware that nothing is saved to disk yet.
In the Save tab, change format JPEG, PNG or IFF DEEP. Tick incremental and base filename if necessary and then click the Save button. The image will now be saved to permanent storage.
The driver ignores a device if it is already bond to another USB class, rejects it from being usable. However, open Trident prefs, select your device and use the right mouse button to open. Select "NONE" to prevent poseidon from touching the device. Now save settings. It should always work now.
[[#top|...to the top]]
===Emulators===
==== Amiberry ====
==== Amiga Emu - Janus UAE ====
With Amibridge, AROS attempts to make the UAE emulator seem embedded within but it still is acting as an app
There is no dynarec m68k for each hardware that Aros supports or direct patching of motorola calls to AROS hardware accelerated ones unless the emulator has that included
Try starting Janus with a priority of -1 like this little script:
<pre>
cd sys:system/AmiBridge/emulator
changetaskpri -1
run janus-uae -f my_uaerc.config >nil:
cd sys:prefs
endcli
</pre>
This stops Janus hogging all the CPU time.
===Miscellaneous===
====Screensaver Blanker====
Most blankers on the amiga (i.e. aros) run as commodities (they are in the tools/commodities drawer). Double click on blanker.
Control is with an app called Exchange, which you need to run first (double click on app) or run QUIET sys:tools/commodities/Exchange >NIL: but subsequently can use (Cntrl Alt h).
Icon tool types (may be broken) or command line options
<pre>
seconds=number
</pre>
Once the timing is right then add the following to s:icaros-sequence or s:user-startup
e.g. for 5 minutes
run QUIET sys:tools/commodities/Blanker seconds=300 >NIL:
*[http://archives.aros-exec.org/index.php?function=showfile&file=graphics/screenblanker/gblanker.i386-aros.zip Garshneblanker] can make Aros unstable or slow. Certain blankers crashes in Icaros 2.0.x like Dragon, Executor.
*[ Acuario AROS version], the aquarium screen saver.
Startup: extras:acuariofv-aros/acuario
Kill: c:break name=extras:acuariofv-aros/acuario
Managed to start Acuario by the Executor blanker.
<pre>
cx_priority=
cx_popkey= ie CX_POPKEY="Shift F1"
cx_popup=Yes or No
</pre>
<pre>
Qualifier String Input Event Class
---------------- -----------------
"lshift" IEQUALIFIER_LSHIFT
"rshift" IEQUALIFIER_RSHIFT
"capslock" IEQUALIFIER_CAPSLOCK
"control" IEQUALIFIER_CONTROL
"lalt" IEQUALIFIER_LALT
"ralt" IEQUALIFIER_RALT
"lcommand" IEQUALIFIER_LCOMMAND
"rcommand" IEQUALIFIER_RCOMMAND
"numericpad" IEQUALIFIER_NUMERICPAD
"repeat" IEQUALIFIER_REPEAT
"midbutton" IEQUALIFIER_MIDBUTTON
"rbutton" IEQUALIFIER_RBUTTON
"leftbutton" IEQUALIFIER_LEFTBUTTON
"relativemouse" IEQUALIFIER_RELATIVEMOUSE
</pre>
<pre>
Synonym Synonym
String Identifier
------- ----------
"shift" IXSYM_SHIFT /* look for either shift key */
"caps" IXSYM_CAPS /* look for either shift key or capslock */
"alt" IXSYM_ALT /* look for either alt key */
Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del",
"up", "down", "right", "left", "f1", "f2", "f3", "f4", "f5",
"f6", "f7", "f8", "f9", "f10", "help".
</pre>
[[#top|...to the top]]
==== World Construction Set WCS (Version 2.031) ====
WCS is a fractal landscape software such as Scenery Animator, Vista Pro and Panorama. Open sourced February 2022, World Construction Set [https://3dnature.com/downloads/legacy-software/ legally and for free] and [https://github.com/AlphaPixel/3DNature c source].
Announced August 1994 this version dates from April 1996 developed by Gary R. Huber and Chris "Xenon" Hanson" from Questar
<pre>
Assign "WCSProjects:" "Volume:Dir/Dir/WCSProjects"
Assign "WCSFrames:" "Volume:Dir/Dir/WCSFrames"
</pre>
<pre>
Load projects .proj by accessing pull down menu Project -> Open then click on CanyonSunset.proj
OK to changing .par file and enlarge Status Log window to show what is happening
Render by pull down menu Modules -> Render with End equal 1 not 300 then click bottom middle button Render
</pre>
[https://www.youtube.com/watch?v=CxQDmf1ZWG0 Youtube walkthrough of above], [], [],
Also try working with the already built file ColoDemo - Then open with the drop-down menu: Project/Open, then WCSProject:ColoDemo.proj
Which allows you to use altimetric DEM files already included and Loading scene parameters from ColoDemo.par
Once this is done, save everything with a new name to start working exclusively on your project.
Then drop-down menu and select Save As ("NewName".proj name), then drop-down menu to open parameter and select Save All ( .par name)
After launching the software, there is a the Module Control Panel composed of five icons.
It is a dock type shortcut of the first few functions of the drop-down menu
*Database - Load (#?.proj), Append, Create, Edit, Save, Dir List (of WCSProject drawer),
*Data Ops - Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
*Map View - Database file Loader leading to Map View Control with option to the Database Editor
*Parameters - Editor for Motion, Color, Ecosystem, Clouds, Waves, management of altimeter files DEM, sclock settings etc
*Render - rendering terrain
These are more in the pull down menu but not in the dock
*Motion Editor
*Color Editor
*Ecosys Editor
Simple minimal workflow
*Load database (1st icon - 1st)
*Set parameters and save .par file (4th icon)
*Render scene (5th icon)
[https://www.youtube.com/watch?v=ZbTwwR2qcc4 Youtube], [],
<pre>
.proj new project name which creates a drawer of additional files
.binary array, ascii array .xyz , z buffer, DTED .dt0, vista 1990s dem, iff conversion
.Obj with .elev, .frd with .hdr maps, - digital elevation model (DEM) is a 3D representation of elevation data in various formats
USGS 7.5MinDEM,
.par
</pre>
Since for the time being no project is loaded, a query window indicates a procedural error when clicking on the rendering icon (right end of the bar). The menu is quite traditional; it varies according to the activity of the windows. To display any altimetric file in the "Mapview" (third icon of the panel), There are three possibilities:
* Loading of a demonstration project.
* The import of a DEM file, followed by texturing and packaging from the "Database-Editor" and the "Color-Editor".
* The creation of an altimetric file in WCS format, then texturing.
The altimeter file editing (display in the menu) is only made possible if the "Mapview" window is active.
The software is made up of many windows and won't be able to describe them all. Know that "Color-Editor" and the "Data-Editor" comprise sufficient functions for obtaining an almost real rendering quality. You have the possibility of inserting vector objects in the "Data-Editor" (creation of roads, railways, etc.)
The Map View (MapView) window
*Database - Objects and Topos
*View - Align, Center, Zoom, Pan, Move
*Draw - Maps and distance
*Object - Find, highlight, add points, conform topo, duplicate
*Motion - Camera, Focus, path, elevation
*Windows - DEM designer, Cloud (.cld) and wave (.wve) editor,
You will notice that by selecting this window and simply moving the pointer to various points on the map you will see latitude and longitude values change, along with the height.
Drop-down menu and Modules, then select MapView and change the width of the window with the map to arrange it in the best way on the screen. With the Auto button the center. Window that then displays the contents of my DEM file, in this case the Grand Canyon. MapView allows you to observe the shape of the landscape from above
ZOOM button
Press the Zoom button and then with the pointer position on a point on the map, press the left mouse button and then move to the opposite corner to circumscribe the chosen area and press the left mouse button again, then we will see the enlarged area selected on the map.
Would add that there is a box next to the Zoom button that allows the direct insertion of a value which, the larger it is, the smaller the magnification and the smaller the value, the stronger the magnification. At each numerical change you will need to press the DRAW button to update the view.
PAN button
Under Zoom you will find the PAN button which allows you to move the map at will in all directions by the amount you want. This is done by drawing a line in one direction, then press PAN and point to an area on the map with the pointer and press the left mouse button. At this point, leave it and move the pointer in one direction by drawing a line and press the left mouse button again to trigger the movement of the map on the screen (origin and end points). Do some experiments and then use the Auto button immediately below to recenter everything.
There are parameters such as TOPO, VEC to be left checked and immediately below one that allows different views of the map with the Style command (Single, Multi, Surface, Emboss, Slope, Contour), each with its own particularities to highlight different details.
Now you have the first basics to manage your project visually on the map. Close the MapView window and go further...
Let's start working on ECOSYSTEMS
If we select Emboss from the MapView Style command we will have a clear idea of how the landscape appears, realizing that it is a predominantly desert region of our planet. Therefore we will begin to act on any vegetation present and the appearance of the landscape.
With WCS we will begin to break down the elements of the landscape by assigning defined characteristics. It will be necessary to determine the classes of the ecosystem (Class) with parameters of Elevation Line (maximum altitude), Relative Elevation (arrangement on basins or convexities with respectively positive or negative parameters), Min Slope and Max Slope (slope). WCS offers the possibility of making ecosystems coexist on the same terrain with the UnderEco function, by setting a Density value.
Ecosys Ecosystem Editor
Let's open it from Modules, then Ecosys Editor. In the left pane you will find the list of ecosystems referring to the files present in our project. It will be necessary to clean up that box to leave only the Water and Snow landscapes and a few other predefined ones. We can do this by selecting the items and pressing the Remove button (be careful not for all elements the button is activated, therefore they cannot all be eliminated).
Once this is done we can start adding new ecosystems. Scroll through the various Unused and as soon as the Name item at the top is activated allowing you to write, type the name of your ecosystem, adding the necessary parameters.
<pre>
Ecosystem1: Name: RockBase Class: Rock Density: 80 MinSlope: 15 UnderEco: Terrain
Ecosystem2: Name: RockIncl Clss: Rock Density: 80 MinSlope: 30 UnderEco: Terrain
Ecosystem3: Name: Grass Class Low Veg Density: 50 Height: 1 Elev Line : 1500 Rel El Eff: 5
Max Slope: 10 – Min Slope: 0 UnderEco: Terrain
Ecosistema4: Name: Shrubs Class: Low Veg Density: 40 Height: 8 Elev Line: 3000
Rel El Eff: -2 Max Slope: 20 Min Slope : 5 UnderEco: Terrain
Ecosistema5: Name: Terrain Class: Ground Density: 100 UnderEco: Terrain
</pre>
Now we need to identify an intermediate ecosystem that guarantees a smooth transition between all, therefore we select as Understory Ecosystem the one called Terrain in all ecosystems, except Snow and Water .
Now we need to 'emerge' the Colorado River in the Canyon and we can do this by raising the sea level to 900 (Sea Level) in the Ecosystem called Water.
Please note that the order of the ecosystem list gives priority to those that come after. So our list must have the following order: Water, Snow, Shrubs, RockIncl, RockBase, Terrain. It is possible to carry out all movements with the Swap button at the bottom. To put order you can also press Short List. Press Keep to confirm all the work done so far with Ecosystem Editor.
Remember every now and then to save both the Project 'Modules/Save' and 'Parameter/Save All'
EcoModels are made up of .etp .fgp .iff8 for each model
Color Editor
Now it's time to define the colors of our scene and we can do this by going to Modules and then Color Editor. In the list we focus on our ecosystems, created first.
Let's go to the bottom of the list and select the first white space, assigning the name 'empty1', with a color we like and then we will find this element again in other environments... It could serve as an example for other situations!
So we move to 'grass' which already exists and assign the following colors: R 60 G 70 B50
<pre>
'shrubs': R 60 G 80 B 30
'RockIncl' R 110 G 65 B 60
'RockBase' R 110 G 80 B 80
' Terrain' R 150 G 30 B 30
<pre>
Now we can work on pre-existing colors
<pre>
'SunLight' R 150 G 130 B 130
'Haze and Fog' R 190 G 170 B 170
'Horizon' R 209 G 185 B 190
'Zenith' R 140 G 150 B 200
'Water' R 90 G 125 B 170
</pre>
Ambient R 0 G 0 B 0
So don't forget to close Color Editor by pressing Keep.
Go once again to Ecosystem Editor and assign the corresponding color to each environment by selecting it using the Ecosystem Color button. Press it several times until the correct one appears. Then save the project and parameters again, as done previously.
Motion Editor
Now it's time to take care of the framing, so let's go to Modules and then to Motion Editor. An extremely feature-rich window will open. Following is the list of parameters regarding the Camera, position and other characteristics:
<pre>
-Camera Altitude: 7.0
-Camera Latitude: 36.075
-Camera Longitude: 112.133
-Focus Attitude: -2.0
-Focus Latitude: 36.275
-Focus Longitude: 112.386
-Camera : 512 → rendering window
-Camera Y: 384 → rendering window
-View Arc: 80 → View width in degrees
-Sun Longitude: 172
-Sun Latitude: -0.9
-Haze Start: 3.8
-Haze Range: 78, 5
</pre>
As soon as the values shown in the relevant sliders have been modified, we will be ready to open the CamView window to observe the wireframe preview. Let's not consider all the controls that will appear.
Well from the Motion Editor if you have selected Camera Altitude and open the CamView panel, you can change the height of the camera by holding down the right mouse button and moving the mouse up and down. To update the view, press the Terrain button in the adjacent window. As soon as you are convinced of the position, confirm again with Keep. You can carry out the same work with the other functions of the camera, such as Focus Altitude...
Let's now see the next positioning step on the Camera map, but let's leave the CamView preview window open while we go to Modules to open the window at the same time MapView. We will thus be able to take advantage of the view from the other together with a subjective one.
From the MapView window, select with the left mouse button and while it is pressed, move the Camera as desired. To update the subjective preview, always click on Terrain.
While with the same procedure you can intervene on the direction of the camera lens, by selecting the cross and with the left button pressed you can choose the desired view. So with the pressure of Terrain I update the Preview. Possibly can enlarge or reduce the Map View using the Zoom button, for greater precision.
Also write that the circle around the cameras indicates the beginning of the haze, there are two types (haze and fog) linked to the altitude. Would also add that the camera height is editable through the Motion Editor panel.
The sun
Let's see that changing the position of the sun from the Motion Editor. Press the SUN button at the bottom right and set the time and the date. Longitude and latitude are automatically obtained by the program. Always open the View Arc command from the Motion Editor panel, an item present in the Parameter List box.
Once again confirm everything with Keep and then save again.
Animation
The animation part is not left-back and also occupies a window. The settings possibilities are enormous. A time line with dragging functions ("slide", "drag"...) comparable to that of LightWave completes this window.
A small window is available for positioning the stars as a function of a date, in order to vary the seasons and their various events (and yes...).
At the bottom of the "Motion-Editor", a "cam-view" function will give you access to a control panel. Different preview modes are possible. The rendering is also accessible through a window. No less than nine pages compose it. At this level, you will be able to determine the backup name of your images ("path"), the type of texture to be calculated, the resolution of the images, activate or deactivate functions such as the depth buffer ("zbuffer"), the blur, the background image, etc.
Once all these parameters have been set, all you have to do is click on the "Render" button.
For rendering go to Modules and then Render. Select the resolution, then under IMA select the name of the image. Move to FRA and indicate the level of fractal detail which of 4 is quite good. Then Keep to confirm and then reopen the window, pressing Render you will see the result. The image will be opened with any viewing program.
Strengths:
* Multi-window.
* Quality of rendering.
* Accuracy.
* Opening, preview and rendering on CyberGraphX screen.
* Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
* The "zbuffer" function.
Weaknesses:
* No OpenGL management
* Calculation time.
* No network computing tool.
====Writing CD / DVD - Frying Pan====
Can be backup DVDs (4GB ISO size limit due to use of FileInfoBlock), create audio cds from mp3's, and put .iso files on discs
If using for the first time - click Drive button and Device set to ata.device and unit to 0 (zero)
Click Tracks Button - Drive 1 - Create New Disc or Import Existing Disc Image (iso bin/cue etc.) - Session File open cue file
If you're making a data cd, with files and drawers from your hard drive, you should be using the ISO Builder.. which is the MUI page on the left. ("Data/Audio Tracks" is on the right).
You should use the "Data/Audio tracks" page if you want to create music cds with AIFF/WAV/MP3 files, or if you download an .iso file, and you want to put it on a cd.
Click WRITE Button - set write speed - click on long Write button
Examples
Easiest way would be to burn a DATA CD, simply go to "Tracks" page "ISO Builder" and "ADD" everything you need to burn.
On the "Write" page i have "Masterize Disc (DAO)", "Close Disc" and "Eject after Write" set.
One must not "Blank disc before write" if one uses a CDR
AUDIO CD from MP3's are as easy but tricky to deal with. FP only understands one MP3 format, Layer II, everything else will just create empty tracks
Burning bootable CD's works only with .iso files. Go to "Tracks" page and "Data/Audio Tracks" and add the .iso
====odf====
Every ODF file is a collection of several subdocuments within a package (ZIP file), each of which stores part of the complete document.
* content.xml – Document content and automatic styles used in the content.
* styles.xml – Styles used in the document content and automatic styles used in the styles themselves.
* meta.xml – Document meta information, such as the author or the time of the last save action.
* settings.xml – Application-specific settings, such as the window size or printer information.
To read document follow these steps:
* Extracting .ods file.
* Getting content.xml file (which contains sheets data).
* Creating XmlDocument object from content.xml file.
* Creating DataSet (that represent Spreadsheet file).
* With XmlDocument select “table:table” elements, and then create adequate DataTables.
* Parse child’s of “table:table” element and fill DataTables with those data.
* At the end, return DataSet and show it in application’s interface.
To write document follow these steps:
* Extracting template.ods file (.ods file that we use as template).
* Getting content.xml file.
* Creating XmlDocument object from content.xml file.
* Erasing all “table:table” elements from the content.xml file.
* Reading data from our DataSet and composing adequate “table:table” elements.
* Adding “table:table” elements to content.xml file.
* Zipping that file as new .ods file.
XLS file format
The XLS file format contains streams, substreams, and records.
These sheet substreams include worksheets, macro sheets, chart sheets, dialog sheets, and VBA module sheets.
All the records in an XLS document start with a 2-byte unsigned integer to specify Record Type (rt), and another for Count of Bytes (cb). A record cannot exceed 8224 bytes. If larger than the rest is stored in one or more continue records.
* Workbook stream
**Globals substream
***BoundSheet8 record - info for Worksheet substream i.e. name, location, type, and visibility. (4bytes the lbPlyPos FilePointer, specifies the position in the Workbook stream where the sheet substream starts)
**Worksheet substream (sheet) - Cell Table - Row record - Cells (2byte=row 2byte=column 2byte=XF format)
***Blank cell record
***RK cell record 32-bit number.
***BoolErr cell record (2-byte Bes structure that may be either a Boolean value or an error code)
***Number cell record (64-bit floating-point number)
***LabelSst cell record (4-byte integer that specifies a string in the Shared Strings Table (SST). Specifically, the integer corresponds to the array index in the RGB field of the SST)
***Formula cell record (FormulaValue structure in the 8 bytes that follow the cell structure. The next 6 bytes can be ignored, and the rest of the record is a CellParsedFormula structure that contains the formula itself)
***MulBlank record (first 2 bytes give the row, and the next 2 bytes give the column that the series of blanks starts at. Next, a variable length array of cell structures follows to store formatting information, and the last 2 bytes show what column the series of blanks ends on)
***MulRK record
***Shared String Table (SST) contains all of the string values in the workbook.
ACCRINT(), ACCRINTM(), AMORDEGRC(), AMORLINC(),
COUPDAYBS(), COUPDAYS(), COUPDAYSNC(), COUPNCD(), COUPNUM(), COUPPCD(),
CUMIPMT(), CUMPRINC(),
DB(), DDB(), DISC(),
DOLLARDE(), DOLLARFR(),
DURATION(), EFFECT(), FV(), FVSCHEDULE(),
INTRATE(), IPMT(), IRR(), ISPMT(), MDURATION(), MIRR(), NOMINAL(), NPER(), NPV(),
ODDFPRICE(), ODDFYIELD(), ODDLPRICE(), ODDLYIELD(),
PMT(), PPMT(), PRICE(), PRICEDISC(), PRICEMAT(), PV(), RATE(),
RECEIVED(), SLN(), SYD(), TBILLEQ(), TBILLPRICE(), TBILLYIELD(),
VDB(), XIRR(), XNPV(), YIELD(), YIELDDISC(), YIELDMAT(),
<pre>
</pre>
<pre>
</pre>
<pre>
</pre>
{{BookCat}}
4vu613d201954vjzxf38hvr40y8k5u5
Template:Modern Greek
10
240935
4672249
3294536
2026-09-25T00:24:35Z
It-is-Truly-Meet
3624460
4672249
wikitext
text/x-wiki
<div style="padding-top: 20px">
<div {{ Modern_Greek/Box style|type=contents|width={{{width|100%; max-width: 1000px}}} }}>
{{#ifeq: {{{compact|}}} | true
| <span {{Modern_Greek/Style|type=deemphasized-text}}>'''[[Modern Greek]]''' : </span>
| <div {{Modern_Greek/Style|type=header-heading}}>[[Modern Greek]]</div>
}}
<span {{Modern_Greek/Style|type=deemphasized-text}}>
[[Modern Greek|Contents]]<br />
[[Modern Greek/Lesson 01.1|Lesson 1]] • [[Modern Greek/Lesson 02.1|Lesson 2]] • [[Modern Greek/Lesson 03.1|Lesson 3]] • [[Modern Greek/Lesson 04.1|Lesson 4]] • [[Modern Greek/Lesson 05.1|Lesson 5]] • [[Modern Greek/Lesson 06.1|Lesson 6]] • [[Modern Greek/Lesson 07.1|Lesson 7]] • [[Modern Greek/Lesson 08.1|Lesson 8]] • [[Modern Greek/Lesson 09.1|Lesson 9]] • [[Modern Greek/Lesson 10.1|Lesson 10]]<br />
[[Modern Greek/Vocab Family|Vocab 1]] • [[Modern Greek/Vocab Professions|Vocab 2]] • [[Modern Greek/Vocab Food|Vocab 3]] • [[Modern Greek/Vocab Clothing|Vocab 4]] • [[Modern Greek/Vocab Body|Vocab 5]] • [[Modern Greek/Vocab House|Vocab 6]] • [[Modern Greek/Vocab Town|Vocab 7]] • [[Modern Greek/Vocab Colours|Vocab 8]] • [[Modern Greek/Vocab Weather|Vocab 9]] • [[Modern Greek/Vocab Countryside|Vocab 10]]<br />
[[Modern Greek/Lesson 1.7x|Alphabet]] • [[Modern Greek/Grammar Summary|Grammar]]<br />
[[Modern Greek/Credits|Credits]]
</span>
</div>
</div>{{BookCat}}
3jhaxf4tqznwu197qs1g9piviheiuoz
History of Western Theatre: 17th Century to Now/French Post-WWII
0
241489
4672171
4657102
2026-09-24T15:35:21Z
R. Henrik Nilsson
3395618
commited > committed
4672171
wikitext
text/x-wiki
=Jean-Paul Sartre=
[[File:Jean Paul Sartre 1967 (crop).jpg|thumb|Jean-Paul Sartre described conflicts arising between a German father and son and between brother and sister in the aftermath of the Nazi period]]
Jean-Paul Sartre followed up work from the previous period with "Les séquestrés d'Altona" (The condemned of Altona, more precisely Sequestered in Altona, 1959).
Sequestered in Altona "examines guilt: to determine where it begins, where it pertains, where (and if) it ends...This drama attempts to reconcile the life of conscience, of moral passion, with the simple fact that if any crime is pursued to its logical source, the criminal is not alone. There is always a reason, social or psychological or historical, behind every immoral act that leads back to another reason, and then back to others, away from the criminal himself. But, Sartre asks, if this is true, how are we to judge, as we must? How are we to know what good is? How are we to make life better, more bearable? The dramatic image that Sartre has chosen for his theme is striking" (Kauffmann, 2021, p 23). “Another preoccupation of Sartre’s which appears in ‘Les sequesters ‘Altona’ is the idea that the winner loses, and the loser wins. The father succeeds in seeing Franz only to discover that there can be no communication between them. Leni destroys the relationship between Johanna and Franz only to lose him altogether” (O’Connor, 1975 p 31).
“In the von Gerlach household...time has stopped, because of Franz...He never had to take the responsibility for decisive acts till one day at Smolensk when he tortured a partisan. He did so allegedly for his country’s sake but really to overcome a sense of impotence, affirm his independence of his father and manifest his personal power by a major act” (Jackson, 1965 p 64). “The characters are all perfectly aware that they are in bad faith and consciously choose to remain so...Bad faith consists in the substitution of a persona for personality to use...In Leni’s words...'Here, you know, we play the loser takes all’...She tries to make Franz face up to his past...She fails...[and] merely wants to act out her chosen role, she has no interest in effecting any change in the situation...Her attitude is summarized in her incestuous relationship...Leni has chosen to be...an unsuccessful rebel...[for] failure has only to be desired to be transmuted into success...Only if [Franz] maintains his self-sequestration can she use him as a weapon against her father in her nominal rebellion against all that the family stands for...The significance for Werner of Johanna’s relationship to Franz is that it is the final indignity, [which] depends less on Werner’s relationship with his wife than on the relationship of the two brothers to each other and to their father...He wants nothing better than to please his father...but he is constantly thwarted...Just as Leni and Werner choose to be failures, so does Johanna...Johanna’s wedding was the funeral of her quintessential beauty...However, she needs an audience for her martyrdom: Werner...The driving force in Gerlach’s life has been a belief in the rectitude of capitalist power...and [he] disregarded all normal objections to the nature of Nazi power...The justifiability of the capitalist way of life...is that there are no visible alternatives...[In suicide is] the possibility of choosing the manner of his own defeat...Why does Franz feel guilty about the murder and the torture?...[He] is disgusted because he was powerless to do anything else...He had conscience...but the dominant desire was for power...His plea is that the nature of the historical process is such that evil was the only possible result of human activity...He is implying his own guilt, and guilt posits freedom” (Palmer, 1988 pp 308-317). “Franz discovers not only his own unreality and impotence but experiences in an acute form the subjective state of being hammered into the ground. Only in one particular was he not a mere image of his father and that was when he used torture, so that death is the only means by which he can escape from an intolerable situation- the realisation that he tortured for nothing- and assert what little remains of his own reality” (Wardman, 1992 p 263).
"Frantz sequesters himself because of his past participation in war crimes and current participation in incest...Leni's love for her brother...thrives in the close atmosphere of her brother's more literal sequestration. It is to protect this intimacy that she has refused to be her father's messenger throughout the years. Leni is, moreover, aware that her love for her brother is part of her fanatical espousal of a certain code of tribal family life. 'Incest is my way of making family bonds tighter,' she says...Werner was born to jealousy. Rejected in favor of Frantz, Werner cannot give himself to any relationship unless it be an attitude of permanent courtship which he has adopted towards his father...The question is: why does he refuse to leave? He...is rooted in own conviction of inferiority...At first glance Johanna appears to be an energetic well-balanced woman, ready to fight for her husband...She is less an accomplice than the others and more of a victim...She has already progressed towards her own individual liberation...It is this that Werner does not understand in her and by his lack of understanding, he condemns her to the fictions which she has already abandoned...Old Gerlach had sequestered all...If he did so, it was because he himself is the greatest 'sequester" of all...His single ethical code was that the end justifies the means...He said of the Nazis: 'I serve them because they serve me...But they are fighting a war to find markets for us and I'm going to have trouble with them over a piece of land'...the source of Frantz's sequestration complex" (Pucciani, 1961 pp 23-30) "Fear was the only emotional rapport between the domineering patriarch and his children, and Johanna discovers that his incapacity of love caused the death of his wife. Rejecting his younger son emotionally and physically, the elder von Gerlach makes Werner the prime target of his sadistic humiliations. The same lack of sentiment sequesters him from the affections of his daughter" (Galler, 1971 p 179).
“The five characters exist primarily for Franz, whose sequestration has sequestered them as well...Gerlach’s collusion with the Nazis was based on the reality of Nazi power; to remain the boss was primary and to remain a boss during the war meant to collaborate with Hitler...When the play opens...Gerlach still owns the form but no longer commands it...Franz was conceived and raised to be just like his father, a boss, with his father’s pride and his father’s passions...For three years, his father has known that he was ‘the butcher of Smolensk’. Nevertheless, von Gerlach neither can nor wants to judge his son. Bound to Franz in whatever he is, von Gerlach rejects Franz’ acts but continues to love him totally. His paternal love, born of identity, makes judgment impossible. The identity of son with father is brought to its resolution when von Gerlach takes on Franz' responsibility for his crimes as butcher of Smolensk. Left with nothing, Franz allows his father to sanctify that nothingness” (McCall, 1969 pp 128-139). “Presumably, in Franz’ semi-lucid consciousness, the inhuman crustaceans [seen on the ceiling] represent the future inhabitants of earth, successors to a mankind that is about to bungle its last chance” (Parsell, 1986d p 1651).
"Frantz’ whole life has been falsified and his freedom robbed by his father’s choice to devote everything at his disposal, including his own children, to the creation of a vast capitalist empire” (Bradby, 1991 p 44). "The play's conclusion, in which father and son commit suicide by driving their Porsche off the Teufelsbrücke, points to the bankruptcy of the father's complicitous behavior and the son's ultimate moral impotence. However, the audience is also implicated because it is forced to listen posthumously to Frantz's pre-recorded speech- an analepsis created by a now dead protagonist but which is directed to the audience; yet another example of reaching back into the past to clarify the present and the future. In it, Frantz declares that 'this century would have been fine if man had not been pursued by his cruel, immemorial enemy, that carnivorous species that swore to destroy him, by that vicious hairless beast called man'. The play's final moments also share elements with 'The flies' (1943) and 'No exit' (1944). In a gesture similar to Orestes, Frantz assumes responsibility for this world and 'takes the century on his shoulders' while, as in the case of 'No exit', the play does not end abruptly. There is continuity...'Leni enters his room' and thus becomes the next prisoner of the von Gerlach enterprise, which will from now on be directed by Werner with the help of his wife Johanna (Van Den Hoven, 2012 pp 69-70).
Johanna “is the least sequestered of all, the most fearful of being a prisoner; she alone sees through sham, including her own former artificial identity as a movie tar. Werner, a fine physical specimen but weak in character, seems interested chiefly in trying to win from his father, tardily, the recognition he never received, as a younger son” (Brosman, 1983 p 95).
“Sartre’s play, one of his most complex if not his best, is marked by the extraordinary intelligence and eye for the crucial issues which are to be found in everything he writes. His theme cannot be stated succinctly; moving from morals to politics, from philosophical speculation to psychic inquiry, Sartre composes a new kind of tragedy, a black fable of human responsibility“ (Gilman, 2005 p 188).
=="Sequestered in Altona"==
[[File:ErnstHugo sartre.jpg|thumb|Leni and Frantz have a heavy love-hate relationship, played respectively by Margit Carlqvist and Ernst-Hugo Järegård at the Gothenburg City Theatre, Sweden, 1961]]
Time: 1940s-1950s. Place: Altona borough in Hamburg, Germany.
Text at ?
After learning he has only a few months left to live, an industrialist, von Gerlach, wishes his younger son, Werner, to take over his boat-construction business. He also requests that Werner, his wife, Johanna, and his sister, Leni, remain together in their 32-room family mansion, watching over his eldest son, Franz, who has been kept sequestered in the house for thirteen years. Werner and Leni agree to do so, but Johanna wants to move elsewhere alone, so that the father must explain why the three should remain together after his death. In 1941, he received an offer from Goebbel, Nazi minister, to sell his field and organize a concentration camp for Jews, which he accepted. During the persecution of the Jews, Franz was caught harboring a rabbi inside his father's mansion. The rabbi was killed before his face by SS officers and Gerlach forced to send his son away in the march towards Russia. Johanna suspects that her husband tipped off the SS. In 1946, American officers were invited at the mansion, where Leni was in the habit of enflaming their desires and then dashing them with insults. One day, an officer attempted to rape her. She was able to defend herself by hitting him on the head with a bottle. To protect her from being persecuted for that deed, Franz took the blame, and, thanks to a deal with an American general, was allowed to go abroad, but instead stayed home in hiding. Johanna hates that story. She does not change her mind, delivering an ultimatum to her husband: either to stay or follow her elsewhere. Over the years, Franz has refused even to see his father, only allowing Leni to enter his room. Gerlach tries to convince Johanna to speak with Franz, at least to let him know he is dying. Franz is not the humanist he first appeared from his father's anecdotes. Wearing an officer's uniform in shreds, he keeps Adolf Hitler's picture in his room and peppers it with oyster shells. Since the end of the war, he considers the entire country overrun with weeds, passing the time either drunk or engaging in an incestuous relation with his sister. Johanna obtains Leni's secret code from her husband to see Franz. She reveals to him that his father is dying and that she would prefer to see him either free or dead than living in such a manner. After learning that Johanna succeeded in seeing Franz, Gerlach asks to see him, too, but she refuses to help him, thinking it might lead to his death. Werner thinks his father's purpose is to place Franz as head of the business in his place. Eventually, Johanna changes her mind and informs Franz about his father's wish to see him, but cannot entice him back to a normal life. "I will abandon at once my life of illusions....when I love you more than my lies, when you love me despite my truth," Franz declares. He specifies that his sequestration is due not by something he did, but by what he failed to do, in passively permitting a fanatic in his troup of soldiers to torture some civilians. His confession, spurred on by a Leni jealous of her rival, repulses Johanna. Neither Johanna nor Leni are able to convince Franz to leave his room. Yet at the moment when Johanna backs off from the mutual love they began to feel for each other, he accepts at last to see his father. Franz has read in the newspapers of his father's financial successes, he who has always played the game of "whoever loses, wins". Gerlach is surprised to learn that Franz accepts to run the business. While reminiscing about the past, Franz reminds him of the time when they once drove a car together at great speed, both wishing to relive that experience. When they go out together, Leni becomes certain that they will die together.
= Henry de Montherlant=
[[File:Henry de Montherlant - photo Henri Manuel.jpg|thumb|Montherlant showed how a member of the order of Santiago considers abnegation the best way to counter modern tendencies]]
Henry de Montherlant (1895-1972) followed up the previous period with another noteworthy piece in the tradition of a realist rendering of history, "Le maître de Santiago" (The master of Santiago, 1948).
In "The master of Santiago", "a father refuses to take any steps to secure his daughter’s perfectly honorable marriage to a man she loves, because he rejects all compromise with life in complacently prosperous and power-minded Spain after the defeat of the Moors. His daughter, stirred by her father’s extreme honorableness, puts an end to the hoax that would have secured him riches and that would have enabled her to marry. The father is a remarkably well-drawn Don Quixote (without any ludicrous attributes, however), and his aversion to the conniving world and the enslavement of the American Indians by Spain rises to truly heroic proportions. The flame of idealism in this drama is all-consuming. One could wish only that it also had more human warmth. The knight’s almost superhuman purity of motivation is, no doubt, intended as a slap in the face of ordinary humanity- for which Montherlant had perhaps too much contempt to become a truly great dramatist" (Gassner, 1954a p 724). The grand scale of the play “takes the form of a resistance, expressed in fine language, to anything vulgar, mediocre, commonplace” (Cruickshank, 1964 p 110).
“Don Alvaro, whose mission is to convert the Indians of the new world, scorns the efforts he directs…In the end, [Mariana] is persuaded that the institution of marriage is an obstacle to grandeur and to salvation: is this not the very reason why Catholic priests are not permitted to marry and why members of contemplative orders are closest to God?” (Cismaru, 1986 pp 1353-1354). “No wealth in the new world for him, no marriage and happiness for her! It is a total refusal, urged on by a kind of sadistic romanticism for purity...The master...is not an example of a model Christian, for his egoism, cruelty, and all his actions have a dreadful inhumanity...The love of Alvaro is a love of extermination; he has a hardness which is only explained by his pride” (Lumley, 1967 pp 345-346).
“Even at his best, [Alavaro] is only half a Christian...because the Christianity he has to apply is incomplete...He feels with great force the first constituent of Christianity, its unworldliness, its scorn of earthly comforts and riches, its renunciation, but of the sense it gives of union with God he is wholly ignorant...Now the religion of Alvaro a consists almost entirely...in a consciousness of the infinite grandeur and distance of God…But the Incarnation? The tender union with Christ on the cross?...These things remain outside of Alvaro’s experience...The truly Christian character...is...Mariana, who eventually sacrifices herself in order to share his renunciation of the world“ (Hobson, 1953b pp 179-181).
“To many, Montherlant’s ‘Christian’ drama may appear to be the study of fanaticism devoid of saintly qualities, the sort of fanaticism that stops far short of godliness and is, at best, a narrow reaching beyond the self...Don Alvaro expresses a wish to isolate himself from all worldly commerce and concerns into a carefully planned isolation for the sake of contemplation, and to gain salvation...The world has become too much for him, he does not understand it, and he ceases to want to understand it...Mariana is depicted as an obstacle forever standing between her father and God. Her father has no interest in guaranteeing Marina’s happiness by permitting her marriage...The institution of family is condemned...The Order is the real family of elected spirits with common beliefs and noble concepts. It does not impose attachments...Mariana’s serious statement that she does not wish to be happy prepares the way for an eventual understanding with her father...The father uses the cape to cover both his shoulders and his daughter’s in a gesture meant to underscore their ecstasy and their oblivion- or else their madness and their surrender of life” (Johnson, 1968 pp 110-113).
=="The master of Santiago"==
[[File:Cross_Santiago.svg|thumb|The emblem of the Order of Santiago]]
Time: 1519. Place: Avila, Spain.
Text at ?
Members of the Order of Santiago meet at the house of their master, Don Alvero. Three of its members decide to try their fortunes in the new world. To Alvaro, the present times are rotten, compared to the famous times when Spain ousted the Mores from Spain at the battle of Granada, when he "contemplated God in his cloak of war". The supposed purpose of converting Indians in the new world is "impurity and excrement", because the passion of lucre, instead of sending Indians to heaven, sends Spaniards to hell. When his friends leave, Alavaro rejoices in his solitude. "O my soul, do you still exist?" he asks himself, "O my soul, at last you and me!" A friend, Don Bernal, has heard about the love-match proposed between his son, Jacinto, and Alvaro's daughter, Mariana. Because of Jacinto's expensive mode of living, Bernal suggests that he enrich himself along with others in the new world, a plan the master immediately and irrevocably refuses. Alvaro is not interested in acquiring money even for his daughter's sake, whom he best loves in the world. "You will not steal my poverty," he warns his friend. He harshly accuses his daughter of dishonesty in this matter, calling love "monkeyshine". "Is the father of a daughter a father?" he asks himself rhetorically. In an attempt to help the young lovers, Bernal asks the count of Soria to mislead Alvaro into thinking the king commands Alvaro's presence as an administrator in the new world, but Mariana, unable to deceive her father, ruins the plan by admitting the deception to him. Fed up with world affairs, Alvaro heads towards St Barnaby's convent, a place where Mariana can live, too. She accepts the offer. He covers her with the white robe of the Order of Santiago, and, with the snow falling outside, father and daughter seem ready to live buried in mystical snow.
=André Gide=
[[File:Gide 1893.jpg|thumb|André Gide showed that rumors in the Vatican can mislead both the faithful and the unfaithful, 1893]]
Another play based on a religious theme but in a more critical vein is "Les caves du Vatican" (The Vatican cellars, 1950) by André Gide (1869-1951), a close adaptation of his 1914 novel of the same title. The story derives from a historical event in 1893 (Ireland, 1970 p 252) when “a crooked lawyer, an unfrocked nun and a scandalous priest conspired at Lyons to spread the rumor that Leon XIII had been imprisoned by Freemason cardinals who had substituted a false pope in his place, and collected money from the faithful for his release” (Painter, 1968 p 67). The following critiques concern the novel, but is equally valid for the play.
“There are two main plots...the story of Lafcadio and the story of the conspiracy...linked by the relationship of the family...[The objective of the] Vatican swindlers...is to make a fool of society” (Painter, 1968 pp 66-67). “A pope on earth should, by definition, be a repository of infallible truth, divinely guaranteed. But of course the authenticity of the pope would, in turn, require to be guaranteed: one could have confidence in the infallibility of the pope’s pronouncement only if one could be infallibly certain that one is dealing with the one infallible pope” (Ireland, 1970 p 270).
“Protos divides humanity into two types: ‘the subtle’, to whom of course Protos belongs, are those whose Protean sensibility dictates a flexible and variable response to any given situation, those who, for whatever reason, do not present the same face to all people and in all places; they are the enemies of ‘the crustaceans’, the rigid, the insulated, the men of principle to themselves in all contexts...Protos...takes in all the aristocratic and bourgeois crustaceans...is the embodiment of escape- escape from society...one's self...one’s past, of evasion in its wildest Gidian sense, and in the sense of the perpetual mobile unrest of the creative spirit...Julius...is a novelist whose failure is due to the excessive logicality of his characterization...Lafcadio [is] turbulent and voluptuous [but] has imposed upon himself an austere discipline of self-control...to the extent of inflicting...penitential and admonitory stabs with a pen-knife for the slightest lapse in self-restraint” (Thomas, 1959 pp 157-161). “Lafcadio, a youthful vagabond...is both beautiful and amoral” (Pollard, 1991 p 365). Lafcadio’s “natural elegance and superior attainments make him a misfit in the lower classes of society, while the circumstances of his birth and the modesty of his condition exclude him from the higher” (Ireland, 1970 p 262). Each of the crustaceans, Julius, Anthime, and Amadeus, “changes his thoughts and habits, uprooting himself from all his past”, but, being crustaceans, lapse back to what they were (O’Brien, 1953 p 180).
Different though partially overlapping views have been presented on Lafcadio’s motive for murder, a seemingly gratuitous act. As a bastard, Lafcadio’s “unconscious need for recognition and parental love- it is irrelevant that he is too far gone to know what to do with them if had had them- has turned to equally unconscious need for revenge. In the mediocre bourgeois image of Fleurissoire, he pushes overboard the society that had rejected him” (Painter, 1968 p 72). “In ejecting Amadeus, Lafcadio was rebelling not only against the deeply rooted, intricately ramified family and the whole regime of the hard-shelled crustaceans, but also by implication against Wagner and Parsifal and all those who have made a cult of them...Lafcadio is a temperamental gambler who loves to play with sensations and emotions” (O’Brien, 1953 pp 185-186). He is narcistic, “eager for self-knowledge...deriving from a frantically impatient insensibility, a consuming lust for sensation of the most intense” (Thomas, 1959 p 162). “Bored and intrigued by his companion, Lafcadio allows his imagination to wander...It is precisely [the] apparent lack of motive that the interest of the proposition lies...It is about himself that he is curious” (Ireland, 1970 p 263).
=="The Vatican cellars"==
[[File:Basilique Saint-Pierre Vatican dome.jpg|thumb|People are misled into believing that the pope is imprisoned in the Vatican cellars]]
Time: 1890s. Place: Italy.
Text at ?
Anthimus, an atheist and a cripple, is angry at his wife, Veronica, for offering votive candles to the Virgin Mary meant to improve his health. To his surprise, alone in the dark, he hears the Virgin's voice and becomes cured, joyfully throwing away his crutches and converting himself to the Catholic faith. Anthimus' wealthy brother-in-law, Julius, a writer, is requested by his dying father, a count, to visit the father's bastard son, a youth named Lafcadio, whom he has never met. To obtain information on Lafcadio, Julius proposes him some work as a secretary. In his will, the father bequests to Lafcadio a large sum of money provided he promises not to bother other members of the family with his presence, so that he need not take the job offered him by Julius. On his way to Julius' house, Lafcadio saves two children from a house on fire, to the admiration of Julius' daughter, Jennifer. Lafcadio's description of his life-history to Julius is interrupted by news of the count's death. Meanwhile, Julius' other brother-in-law, Amadeus, hears a rumor that Pope Leo XIII has been abducted and kept in a dungeon at San Angelo's fortress, annexed to the Vatican, while an imposter takes his place. The rumor is false, perpetrated by Protos, a school-chum of Lafcadio, to obtain large sums of money from gullible Catholics for the purpose of freeing the pope. When Amadeus arrives in Rome, Protos, disguised as a priest, befriends him and takes him to Naples to an associate in crime, Bardoletti, pretending to be a cardinal, who requests him to change a bond of 6,000 Francs into ready cash. At the same time, Julius is also visiting Rome to request the pope a compensation for the loss of revenues suffered by Anthimus, no longer protected by freemasons he once counted on in his career. However, he is unsuccessful at this task. Amadeus reveals to him what he knows about the missing pope, but Julius finds it dificult to believe such a story. Nevertheless, he helps him retrieve the money from the bank and gives him a train ticket in his name. By coincidence, when Amadeus takes the train from Rome towards Naples, he encounters Lafcadio, neither knowing each other. Bored with his life but willing to dare fate to the utmost, Lafcadio throws him out the door to his death. He takes with him Amadeus' train ticket but not the 6,000 francs. While meeting Julius in Rome, Lafcadio is surprised to learn that the murdered man is Julius' brother-in-law. To tease his half-brother, he leaves on the table Amadeus' train ticket. On discovering this, Julius becomes extremely worried he may become the unknown murderer's next victim. Unknown to Lafcadio, his murder was observed by Protos, who proposes to his old friend that they blackmail Julius. Lafcadio refuses and discloses his crime to Julius, a conversion overheard by Jennifer. The murder makes her love the man even more. Lafcadio makes off with her, concluding: "Together, we'll know how to save ourselves."
=Jacques Audiberti=
[[File:JacquesAudiberti-1939-Harcourt.jpg|thumb|Audiberti depicted the troubles of lovers in a surrealist kingdom, 1939]]
A bridge links Jarry's "Ubu the king" (1888) with Dadaist and Surrealist movements of the 1920s and the Theatre of the Absurd of the 1950s. An example of a Dadaist play is Tristan Tzara's "The gas heart" (1921) where nonsense prevails. Examples of Surrealist plays include "Victor, or the children come to power" (1928) and "The mysteries of love" (1927) by Roger Vitrac. The playwrights of both movements seek to overthrow middle class conventions with dream images. Surrealists show interest in replacing dominant conventions with a new society, including a communist one, whereas Dadaists show little desire to replace them with anything. A bridge also bonds existential drama and the Theatre of the Absurd in Jacques Audiberti's (1899-1965) "Le mal court" (Evil runs, 1947), also showing affinity in the past, including Georg Büchner's "Leonce and Lena" (1836) and Alfred de Musset's "Fantasio" (1834).
In Evil Runs, "the plot and the themes are deliberately conventional, bathed in the glow of fairy tale magic. The characters mostly bear functional names...and are devoid of psychological substance. They tend to talk in abstract terms...but their make-believe world is never troubled by doubts or questions from outside” (Bradby, 1991 p 188). "The plot is unimportant in itself, serving only to illustrate the theme, which is that of the omnipresence and inexorable force of evil. Audiberti uses a conventional fairy-tale plot: beautiful young princess, daughter of an impoverished king, goes to marry rich young king; wicked cardinal intervenes and prevents marriage for political reasons; beautiful young princess heartbroken, etc...Audiberti carries his classic fairy-tale formula only up to a point: the rich young king does not throw the wicked cardinal into an oubliette so that he can marry the beautiful young princess at the end. Instead, the princess, Alarica, finds as the play proceeds that she is and always has been ringed around with evil and deceit. Her illusions about the goodness of life and the decency and trustworthiness of people drop from her one by one in a series of painful shocks. She discovers that her projected marriage has been secretly abandoned a long time ago and that she is being used as a decoy so that the young king can make a politically more advantageous match. Even her old and faithful nurse is in the plot. There is absolutely nobody she can trust. Everyone is self-seeking, corruptible, and dishonest because everyone is living and ordering his life within the context of an artificial and corrupt society. As the series of shocks which she is obliged to undergo bludgeon her into an awareness of the true nature of the world, Alarica realizes that she must make her compromise with it if she is to survive as something other than a pawn. She determines to fight evil with evil- to let 'the evil run'. She deposes her amiable, bumbling old father, disregarding his pleas for filial respect, and resolves to rule with complete ruthlessness. If everything is evil, then the most evil wins" (Wellwarth, 1962 p 336).
=="Evil runs"==
[[File:Jacques Audiberti, Iz zla se zlo rodi, Slovensko ljudsko gledališče Celje.jpg|thumb|Played by Minu Kjuder (1942-?), a harassed Alarica decides to follow her lover, a king revolting to marry the Spanish king's daughter. Czechoslovakian production, 1968]]
Time: 1940s. Place: Fictional country of Shortland.
Text at ?
Alarica, princess of Shortland, must marry for political reasons Perfect, king of Occident. She hears a knock at the door and a voice stating that the king has arrived. While the princess and the supposed king confer, her lieutenant discovers that the man is an imposter. As the intruder, Ferdinand, tries to leave, the lieutenant shoots him but lets him live. While Alarica and her governess discuss the case, a second knock is heard, stating once again that the king has arrived. This time it is the genuine king, who finds the princess attractive, but the cardinal in his company reveals that their marriage prospects have been annulled, as it is more in their country's interest for the king to marry the Spanish king's daughter. "We will marry Spain and make her pregnant," the cardinal affirms. However, during his absence, the king proposes marriage to Alarica and is accepted. They set off for Occident, but when the subject of what to do with Ferdinand arises, Alarica proposes that he share their bed. The king is stunned at this suggestion and no longer knows what will become of him. Although Alarica and Ferdinand sleep in the same bed, they find it difficult to agree. "All that you deserve is for me to let you wade among your ideas like a comb in soup," he says. Meanwhile, the king of Shortland, Celestincinc, demands to know what a stranger is doing in his daughter's bedroom. She behaves more and more strangely to the point that Celestincin suspects his daughter has gone mad. "Evil runs. A ferret! A ferret! At all costs let it run," she says. Celestincinc orders Ferdinand's arrest. Alarica disapproves of this decision. Her life has only served so far to "mask the present tornado of my ferocity," she says. Inspired by Alarica, Ferdinand proposes great improvements in the land of Shortland, to the astonishment of the marshal, who finds his plans "totally prodigious". Alarica proposes that the lieutenant and the marshal abandon fidelity towards her father and submit themselves entirely to her and her husband as queen and king of Shortland. They agree. "Evil runs," Alaracia happily concludes.
=Arthur Adamov=
[[File:Arthur Adamov (1908-1970).jpg|thumb|Arthur Adamov described the turmoils of a writer trying to interpret the writings of a dead friend]]
Arthur Adamov (1908-1970) is another Surrealist playwright with a claim to fame, especially in presenting the problems of a writer in "L'invasion" (The invasion, 1950).
“At the very least we can say that Pierre's life, and to a lesser extent the lives of the others, is invaded by the indecipherable legacy of Jean. There is a real question, however, as to whether Jean even knew what he was writing. Thus it seems to me that we are entirely justified in seeing the manuscript as a symbol of the undiscernable meaning which invades life at its core...Pierre thus becomes a type of the modern man who is caught in the task of trying to discover the meaning of life, which remains obscure, and who is at the same time unable to leave off the struggle. Pierre's strategy is to forsake all communal efforts and pursue a kind of ascetic way alone. His personal quest thus takes on much of the character of the religious quest which is pursued in hermitic isolation. He refuses to speak to anyone while he is alone in his room apart. His mother brings his food on a tray but does not converse with him...Agnes' presence always represents possibilities for renewal. In the first scenes she is the one who works at the typewriter, an instrument of communication. The room is messy when she is around but the feeling is one of creative possibilities within the mess. However, as Pierre increasingly withdraws from his relationship with Agnes, these possibilities are reduced. Agnes' sexual significance is then transferred to the first man who comes along when Pierre retires into isolation, and Agnes leaves with her new man. We learn when she comes back for the typewriter that the first man who comes along has taken sick, and she is left with trying to hold his business together. Thus, perhaps, disintegration as well as renewal are symbolized in her, but so far as her relationship to Pierre is concerned renewal remains a possibility. Such a possibility is underlined when Pierre comments to his mother at the end that if only Agnes had had more patience, the two of them could have made a new beginning on the manuscript, an April renewal if you will. But this possibility had been finally frustrated by the mother, and Pierre's doom is sealed" (Sherrell, 1965 pp 401-403).
“Pierre, Agnès and Tradel, their friend and collaborator, are in disagreement among themselves and unable to achieve a collective resingularization that would enable them to effectively resist the invasion of the mother and her accomplices...The mother is an invader. She takes up residence in her son’s apartment and gradually imposes her own standards of order upon it...The room is neatly ordered and immigration has been stopped. As the scene progresses, Pierre disappears to his room and dies alone. Whether he commits suicide or not is unclear, but by encouraging Agnès’s exit and then blocking her return, The mother certainly contributes to his death...Pierre, Agnès and Tradel are unable to connect and devise a strategy to resist the conservative forces because they do not appear to realize their shared interests. The audience can see the power grab of the mother, but it is not visible to those who will suffer most from it” (Chamberlain, 2015 pp 154-155).
“The dead man’s papers represent for Pierre both an occupation and a search for meaning, despite ironic suggestions throughout the play that there may well be less to Jean’s legacy than meets the eye…Agnès herself appears to stand for disorder; it is, after all, through her that Pierre has become involved with her brother and his papers...The Invasion casts serious doubt upon the validity of work, as well as that of love and friendship; such, Adamov seems to be saying, is the eventual result of all human endeavor: futility” (Parsell, 1986a p 15).
“The Invasion stresses the relative nature of truth in a world wherein absolute truth is impossible to attain. The title refers to an unfinished manuscript which intrudes into the life of the family and friends of its deceased author. The laborious struggle of these people to decipher the handwriting and clarify the work ends in a dismal stalemate for, in addition to disagreeing among themselves, they individually find different interpretations for each word until no one is certain of the real meaning” (Bishop, 1997 p 56).
"There is wide disagreement about the transcription and meaning of certain key passages. Pierre’s struggle to put his friends work in order fails; he loses his wife, his friends and even his own sense of identity in the process...Pierre’s crisis occurs when he can no longer feel the living force of language...When he says that language has lost the quality of spatial existence, he is saying that thought is no longer possible and hence that his very existence is in jeopardy” (Bradby, 1991 pp 83-84).
In The Invasion, “a play about an author who disappeared under mysterious circumstances evoking deportation, anti-refugee sentiment is explored and interrogated: the mother complains about the failure of the authorities to prevent refugees from coming to seek work and the play’s ending coincides with her wishes being met” (Morin, 2025, p 115).
=="The invasion"==
[[File:Hand-writing-exam-classroom.jpg|thumb|Peter attempts to decipher a text left by his brother-in-law, but his efforts are interrupted by the invasion of his family]]
Time: 1950s. Place: France.
Text at ?
Peter works hard in trying to decipher writings left by the dead brother of his wife, Agnes. While he slowly makes way in assembling the texts, she types them up. They are helped by a friend, Tradel, but the two men do not agree on the best method of proceeding. Peter believes in obtaining the most accurate word-for-word version, while Tradel believes in obtaining an approximate version completed by their instinctive knowledge of what was meant. Because of this disagreement, Peter works alone, though Tradel warns that they must hurry, because the dead friend's family is seeking legal means of obtaining the documents for their own use. Peter thinks they can do nothing about that. An unknown man shows up to buy the apartment next door. The stranger takes pity on sad-looking Agnes, almost totally ignored by her preoccupied husband. Unable to pursue his work, Peter decides to quit for awhile and live inside a secluded room in their apartment, to be bothered by no one. "I will not have peace so long as things do not show a certain perspective," he affirms. Agnes and Tradel consider this a bad idea. Peter's mother will bring him meals as usual, but he warns her never to utter a word to him. With Peter ensconced in the little room, the stranger loses no time in declaring his love to Agnes. They go off together, to the amusement of Peter's mother, who laughs and slaps her thigh at this event. When emerging from the room, Peter is ready to assume an ordinary life. He tears the papers he spent so much time on and then learns his wife has left him. He expresses understanding of her decision in view of their disordered life together, but his mother blames her for the disorder. As Peter leaves the room, Tradel returns to reveal that Agnes' family is ready to remove the papers from off their hands, but then discovers all of them torn up. Unexpectedly, Agnes comes back, but only temporarily, since her friend is sick. After brief exchanges, the mother pushes her out. When Tradel looks for Peter, he discovers him dead. "I will never forgive myself," he declares. The mother looks stunned and unable to move.
=Jean Genet=
[[File:JeanGenet-HansKoechler1983-cropped.jpg|thumb|Jean Genet wrote plays which realistically and ritualistically depict the ordeals of the downtrodden, 1983]]
Another main dramatist of this period is Jean Genet (1910-1986) with "Les bonnes" (The maids, 1947) and "Les nègres" (The blacks, 1958).
“The opening of The Maids is one of the most brilliant scenes of the contemporary theater. Dispensing entirely with exposition, it plunges us straight into the heart of what we will eventually understand to be a ritual enacted regularly by two servant sisters. Initially disconcerted by the bizarre behavior of a mistress and her maid, the spectator discovers the stylized game of domination that links them…The sisters’ daily excursion into structured fantasy is their way of surviving their stifling reality. Their staged revolt against ‘madame’ relieves them of the necessity of revolting against the real ‘madame’...The fact that the real ‘madame’, when we see her midway in the play, is clearly not the tyrant the ritual makes her out to be changes nothing in the maids’ perception. Their need to revolt is real, but their desire to revolt is undermined by their fascination of ‘madame’. Thus, they content themselves with a mock revolt, aimed as much at one another as at ‘madame’, a stylized enactment of revolt deliberately circumscribed to end just short of murder” (Bishop, 1997 pp 125-127). From the start of "The maids", Solange plays her mistress' role as “domineering and insulting...The response of the maids to madame is ambivalent, a compound of hate and affection, of envy and admiration, with hate and envy predominating...The dramatic conflict in ‘The maids’ is between the condition, status, or role of servantdom and that of madamedom“ (Jacobsen and Mueller, 1976 pp 138-143). "The two maids are linked by the love-hatred of being each other's mirror images...At the same time, in the role of the lady, Claire sees the whole race of servants as the distorting mirror of the upper class. Thus what they hate seeing reflected in each other is the distorted reflection of the world of the secure masters, which they adore, ape, and loathe" (Esslin, 1974 p 174). “The dramatic dialogue at first appears strangely directionless– they just seem to be talking about themselves, their situation and how they want to change it– but the audience gradually begins to understand the dramatic drive underlying their discussions: they are trying to talk themselves into a state of transformation where they can escape their constricted existence and become what they are not: free agents. For in Genet’s theatre, the function of representation is not to show the world as it is, but rather to show the exaggerations and distortions through which our imaginations try to construct the desired image of ourselves and the forces that shape those imaginary selves...The maids’ repeated protestations of devotion to madame can be seen to be the product of their desperate longing to share the existence that is hers, rather than the expression of simple human affection. They are painfully aware of how Madame patronizes them and treats them just as it suits her changes of mood, with no consideration for their feelings, but they still see that her existence is deeply desirable, relative to theirs” (Bradby and Finburgh, 2012 pp 35-36). "Because they hate their place so much, they also hate each other and themselves. As Solange says, ‘grime does not like grime’. The servants fail in their quest because of this hatred. As Malraux and Sartre mentioned, 'revolutions are possible only when the victims of oppression can look upon their present condition as a possible source of future dignity'...Solange and Claire have no alternative value to offer...They would like to possess madame’s qualities themselves, and although their fury at being unable to do so may express itself in dreams of murder, they finally only punish themselves” (Thody, 1968 pp 165-167). “When madame arrives, she is not the ogre we have been expecting, but a fairly ordinary, rich, over-romantic, superficial woman of the world...Claire now realizes that their first move against madame must be to kill in themselves the elements of madame they so hate- her hypocritical superiority and her self-importance...Solange’s final speech is, for the first time, honest and calm” (Gascoigne, 1970 p 191). Henning (1980) argued that "when Madame returns, the cycle is apparently completed after all. But this, too, remains merely an image. The employer herself is not the genuine Bourgeois Mistress she first seems, nor really a Faithful-Woman-Suffering-for-the-Man-She-Loves. She, too, is only playing a role. Her actions even appear derisory copies of the maids' opening ritual gestures. She is herself but another surrogate monarch...Claire does assume the behavior of their mistress, but during the maids' private ceremony, it is Solange, not Madame, who plays the servant's part. The ritual reversal of roles is thus only partially achieved, and the servants can only degrade themselves" (pp 80-81). "The maids, wearing alternately their uniforms and their mistress' clothes, have a dual identity in several respects: humiliated drudges and triumphant vindicators, prisoners and imaginary voyagers, creators of beauty and slaves to the kitchen range, to which they add still another form of duality, that of the child and grown-up...When Claire puts on her mistress' dress, it has to be pinned up considerably for she is far too little to fit in adult attire. That Claire and Solange may not be fullgrown is further suggested by the fact that they sleep in folding cots. Although they dedicate their lives to revenge, they recite prayers in their room in the manner of pious children. They adorn their attic with fetiches, including Madame's bouquet, a behavior which is indicative of the child's refusal to part with any possession" (Hubert, 1969 pp 204-205). “The maids emulate madame because they desperately desire to be integrated into the aristocratic echelon of society...Claire and Solange have no identity of their own except in relationship to madame; therefore, they want to possess the only person who defines their existence...Madame is beautiful, kind, wealthy, and a magnet for men; the maids are ugly, vicious, indigent, and have no male acquaintanceships. Frustrated by their inability to alter their social or economic status, Claire and Solange envy and thus despise madame whose patronizing attitude toward her servants only exacerbates their desire for vengeance. The maids resent being subservient, feel unable to speak honestly to their ‘patronne’ and are increasingly sexually repressed around madame, whose essence is defined by her sexual prowess. Claire and Solange engage in a ritualistic rite designed to destroy the spirit of ‘madameness’ so that the outcasts...can transcend their inferior statuses in defiance of the established ruling class” (Plunka, 1992 pp 176-177). "Madame is, of course, a kept woman and as such bears a curious relationship to the maids themselves. She is actually a member of another sub-world, a higher sub-world than that of the maids, to be sure, but a sub-world nonetheless. And so she too, to a certain extent, lives by fantasy and imagination. We see this at once in the way she dramatizes the arrest of Monsieur. She is not really herself, but alienated, like the maids, in her being. And we see further that the role she plays in her relationship with Monsieur is actually the prototype for the role of the two maids. She recounts now the story of his arrest, the anonymous letters and above all the heroic role which she plays in the whole affair. Solange tries to reassure her. She says that Monsieur is innocent and will be acquitted. 'He is, he is,' answers Madame. And yet a false note creeps in. We gather that Madame rather enjoys her role of martyr and saint. She will be faithful to Monsieur whatever happens. She will follow him from prison to prison. She will give up her elegant life, her beautiful dresses made to order by Chanel, her furs. She has a moment even of false sympathy for her two servants. They will all retire to the country together. They will be faithful to her and she will take care of them" (Pucciani, 1963 p 53). “This extraordinary play, with its perfect one-act structure, its overwhelming dramatic tension, and its density of thought and symbolism, is rightly considered one of the masterpieces of the contemporary theater. It is a play about masks and doubles, about the evanescence of identity” (Coe, 1986b pp 682-683).
“The blacks” “is an ironic howl at and mockery of every thing the paleface thinks, says and, in furtive guilt and repressed aversion, fails to say against the dark-skinned peoples...It is all done with a grin which has little humor, though it will provoke a frightened laugh” (Clurman, 1966 pp 74-75). “Rejecting the ‘white’ value of universal love, the participants in the rite must struggle to discover absolute hatred. At its centre is the re-enactment of the murder of a white woman by Village. The catafalque placed centre-stage supposedly contains her corpse, and there is lengthy discussion about whether Village was attracted to her or not. This is important to Archibald, in charge of the rite, since he has to determine whether the crime was committed out of pure hatred: ‘His crime saves him.’” (Bradby and Finburgh, 2012 p 75). “The principal question...is whether Village committed the murder from the right motivation and in the right spirit. Was his deed executed in a way that would do full justice to the very soul of blackness?...Accordingly it becomes necessary for Village to re-enact the murder...Archibald reminds them of the desired goal: ‘we must deserve their reprobation and get them to deliver the judgment that will condemn us’...They must live up to the concept of blackness as defined by the whites. But [afterwards] the blacks have moved toward...the determiners of their own actions...The judge...aghast that no murder has been committed, sees the evaporation of his role...The possessed...must stop short of murder...for [that] would deprive [them] of possession” and so the roles become reversed (Jacobsen and Mueller, 1976 pp 158-162). “In relation to each other, Village and Virtue are powerless; both are Black and their Blackness is negation, is nothing but a function of White. Its only chance of self-realization is to reverse the roles of Figure and Reflection. Only by destroying-conquering, dominating or absorbing-White, by asserting its own values against those of the conquerors, will Black become the Figure, and White be re- duced to the part of Image-in-the-Mirror” (Coe, 1968 p 292). There is a tight relation between stage events and the uprising behind the scenes. “The play performed for the audience is a deception that masks the underlying motive of the blacks onstage: a ritualistic self-immolating and subsequent exorcism of white values, producing a rite of passage to a new identity...The whites in the audience are at ease to see blacks imitating white culture...The blacks are associated with the white 19th century colonialist view of Africa as a savage primitive world...The court, played by blacks in white masks, represents white society, or at least a stereotyped black view of what white society represents...Dispossessing themselves from white authority and power, the blacks establish their own identities and begin to make their own judgments which are manifested by the offstage trial of a black traitor...Diouf, as Marie, gives birth to five dolls representing the white court...[signifying] the murder of the white race” (Plunka, 1992 pp 226-233). “The ritual is designed to disintegrate the white image, the uprising to disintegrate the whites” (Brustein, 1964 p 408). "All the whites in Genet's play are uniformed and stand for more than themselves. They are, in fact, symbols of authority. In colonial Africa native secret societies and social clubs often gave their officers the costumes and titles of queen, governor, judge, and missionary, thus both emulating the whites and challenging their monopoly of the symbols of authority" (Graham-White, 1970 pp 210-211). “The court is made up of blacks wearing white masks. These masked beings secretly long to reverse the order of things and become the oppressors, the voice of authority. Yet they know very well that they belong to the black unprivileged race...The members of the white court want to assume their obligations, which indicates a certain faith in the future; however, they do not want to assume their functions as whites but as blacks” (Knapp, 1968 p 137). “The court in this play is ineffective. It is the blacks who must try one of their own. Part of the ineffectiveness of the white court is the fact that they cannot keep up a normal conversation. Their speech is marked by random outbursts that lead the trial nowhere. One reading of this can be that a white court cannot understand and make sense of a black crime...Another reading can be that...justice is impossible to the blacks” (Bennett, 2011 p 82). "The destruction of the whites as they appear is seen as the only way to better their condition. The blacks fight the whites in their purpose to obtain political independence and be able to enjoy emotions other than hatred" (Thody, 1979 p 199). "'The blacks' begin by dancing a minuet to a Mozart melody around a catafalque which occupies center stage. Even though the element of parody is apparent in their movements, the minuet signifies the enslavement of the blacks to white culture. That enslavement is both the starting point and the ending of the play" (Oxenhandler, 1975, p 422). "The actors enter in two groups...but the final stage image is one of solidarity: 'all the blacks- including those who had been the court, now without their masks- stand about a coffin draped in white...The traditional values of white society are scorned, belittled, and reduced to playing 'a tune by Charles Gounod', knitting 'balaclavas for chimney-sweeps', singing 'at the harmonium' and praying on Sundays...The actors are working themselves up into a state of excitement in anticipation of the 'murder' of Diouf (disguised as a white victim), when Village halts the action. Up until this point, Village has painstakingly tried to explain his actions to the audience in repeated asides, but now the whole ceremony is going to move beyond the comprehension of the audience as narrative gives way to magic...Throughout Diouf's recitals, the court integrates itself with the players in the ceremony. They applaud and laugh at the mimed gestures as though they were real. Meanwhile, the white spectator marooned on stage, his hands tied, so to speak, by holding the knitting, can do nothing but look on...The action of the play does not aim to resolve the conflicts of the initial situation; rather, it tends to exacerbate them" (Webb, 1969 pp 455-458). "The Missionary...proudly states, to the tacit agreement of white believers and the bemused rejection of the black ones, that God is white, a belief used over the centuries to keep God-fearing blacks from seeking to reach too far up the ladder of equality. 'For two thousand years God has been white. He eats on a white tablecloth. He wipes his white mouth with a white napkin. He picks at white meat with a white fork.' The blacks realize that their eventual mental liberation cannot be achieved until they are able to reject and revise color symbols such as used by the whites. Thus, Felicite, toward the end of the play, states that 'everything changes. Whatever is gentle and kind and good and tender will be black. Milk will be black, sugar, rice, the sky, doves, hope, will be black'...The blacks in the play derive utmost pleasure from emphasizing precisely those ideas or views that society has held against them...From the very beginning, blacks proceed with a black-is-beautiful ritual, never missing an opportunity to emphasize their blackness and being chided if they appear not to do so. Archibald, who keeps the action moving along...advises Neige: 'You wanted to be more attractive- there's some blacking left'" (Warner, 2014 pp 201-203). "The whole play is a hymn of hatred: the loathing of blacks for whites deliberately played upon and gloried in...the catafalque remains throughout the play visually at the centre of the stage. It is thus precisely one of the deepest of all racist fears that Genet plays on, namely interracial sexual jealousy" (Martin, 1975 pp 519-522). “However much his white audience may disapprove of what the negroes are doing, they are not seeking evil for its own sake, but for political aims that can be rationally formulated: independence, freedom, self-respect” (Thody, 1968 p 200).
Antonin Artaud prefigured Genet’s theatre in its myth-creating goals, the use of language as incantation, communicating emotions rather than exchanging ideas, and the use of visual and auditory aids in the form of “music, dance, plastic art, pantomime, mimicry, gesticulation, intonation, architecture, scenery, and lighting” (Artaud, 1938). “Genet pulls his myths from the depths of a totally liberated unconscious, where morality, inhibition, refinement, and conscience hold no sway; at the basis of his work is that dark sexual freedom which Artaud held to be the root of all great myths" (Brustein, 1964 p ). "All Genet’s plays present us with anti-societies. The worlds of prison, brothel, blacks or rebels are all defined by opposition to traditional, habitual, right-thinking society. The people inhabiting these worlds are all aware that their existence and, more profoundly, their very consciousness is conditioned by the contempt of others. But Genet’s plays do not therefore, like some absurdist dramas, dissolve all social distinctions in a vision of nightmarish horror. Instead, they investigate with precision the levels of interdependence that link the oppressor to the oppressed and they present ceremonies of metamorphosis in which the oppressed, by accepting and exaggerating their condition, hope to turn their shame into pride, to change the rules of the game so as to turn the tables on their oppressors“ (Bradby, 1991 p 179).
=="The maids"==
[[File:Jean_Genet,_Služkinji,_SNG_v_Mariboru.jpg|thumb|Solange and Claire hate their employer but wind up destroying each other. Bogdana Bratuž (1934-?) as Solange (left) and Milena Muhič (1937-2014) as Claire (right) in a 1969 Czechoslovakian production]]
Time: 1940s. Place: France.
Text at https://web.mit.edu/jscheib/Public/phf/themaids.pdf https://pdfcoffee.com/genet-jean-the-maids-amp-deathwatch-grove-1954pdf-2-pdf-free.html
Claire commands her servant, Solange, to dress her up in all her finery. Her constant recriminations incite Solange to fury. She strikes Claire and threatens worse until the alarm-clock rings, at which point Claire cries out: "Let's hurry. Madam will come back." Claire is a servant as well and they have only been play-acting. Claire blames her sister for always being late, so that they never reach the moment of their mistress' murder. Despite frustrations inherent in their servile state, Claire is nevertheless of the opinion that at heart their mistress loves them. "Yes," Solange comments sarcastically, "like the pink enamel of her latrine." To avenge themselves of their lot outside of play-acting, Claire has written an anonymous letter to the police, accusing her mistress' lover of robbery and leading to his arrest. Solange intends to go further, revealing that she was once tempted to kill their mistress as she slept, but her courage failed her when she moved. "She will corrupt us with her softness," she warns. To their consternation, Claire learns from a telephone call that the man was set free on bail. Claire blames her sister all the more for failing to kill her. Now they well may be denounced as false accusers and imprisoned. "I have enough of being the spider, the stem of the umbrella, the sordid and godless nun with no family," Claire says despondently. They whip up further accusations against their mistress but to no practical avail. "Yet we can't kill her for so little," Solange admits. She suddenly changes her mind again, and suggests dissolving barbiturates in their mistress' lime-blossom tea. Their mistress enters, distressed about her lover's state, ready to follow him to a far-away prison. "I will have newer and more beautiful dresses," she decides. She gives Claire her silk dress and Solange her fur-coat. Then she notices the telephone off the hook. Solange blurts out that her lover called. She is led on to reveal that her mistress is to meet him at a restaurant. The mistress wants to join him at once and leaves before drinking the tea meant to poison her. "All the plots were useless. We are damned," Claire concludes. Solange suggests that they should escape, but Claire finds the suggestion impractical, both being poor with nowhere to go. They uselessly curse their servile state. In despair, they resume play-acting, Solange this time in the mistress' role asking for her tea. But then Claire resumes the mistress' role again to swallow the poisoned tea while Solange's hands cross themselves as if already handcuffed.
=="The blacks"==
[[File:John Breck The Blacks 001.jpg|thumb|Archibald Absalon Wellington is the master of ceremonies who advises Mary before her rape and murder at the Citizens Theatre, Glasgow, Scotland, 1980s]]
Time: 1950s. Place: White-colonized Africa.
Text at ?
A group of black people present the murder of a white woman on a stage in front of a court composed of other black people thinly disguised as whites, including a queen, a governor, a judge, a missionary, and a servant. Archibald Absalon Wellington is the master of ceremonies, guiding the spirit of the presentation towards greater hatred of white colonization. Before a hearse, Archibald asks Village what happened that morning, who answers he strangled a white woman named Mary with his own hands. On hearing of this event, the queen grieves. "Be confident, your majesty, God is white," the missionary consoles her. When some of the blacks are distracted from contributing to any worthwhile cause, Archibald reminds them that they must merit the court's reprobation. In their stage presentation, Mary's role is played by Diouf, a vicar, Mary's mother's role by Felicity, a whore, and a man named Bobo her neighbor. While Mary speaks to her eventual rapist and murderer, the mother constantly cries out for her "pralines and aspirin" and reminds her it is time for prayers. The neighbor copmes over to remind Mary that her eyes may be ruined if she continues to work in the dark. During the course of the evening, Mary plays the piano, an art approved of by the queen: "Even in adversity, in a debacle, our melodies sing out," she declares enthusiastically. Unexpectedly, Mary is about to give birth. The neighbor arrives as the midwife and takes out from beneath her smock dolls representing the five members of the court. She is then murdered and the court convenes for the condemnation of the murderer. The missionary considers that the victim should be beatified, but the queen is uncertain whether that idea is wise. "After all, she was sullied, defending herself to the last, I hope, but she may remind us of her shame," the queen considers. During the court proceedings, the black people rebel and the five members of the court must escape their fury. To ease their fatigue on their way along roads and fields, the missionary approves of the use of alcoholic drinks. However, they get drunk. "Dances occur only at night, none of which do not intend our deaths. Stop. It is a frightening country. Each brushwood conceals a missionary's tomb," the missionary warns them. The judge succeeds in re-organizing the court in session, whereby the members of the black population begin to tremble, but one of their leaders, Felicity, arises to challenge the queen. Another of the black leaders, Ville de Saint-Nazaire, reveals that a traitor in their midst has been executed, but that a new leader of the rebellion is found. The court-members are surrounded, yet the queen admonishes them to courage amid adversity. "Show those barbarians that we are great by our attention to discipline and, to white people looking on, that we are worthy of their tears," she declares. Despite this encouragement, one by one the members of the court are executed.
=Eugène Ionesco=
[[File:Eugene Ionesco 01.jpg|thumb|Eugène Ionesco was the initiator of the Theatre of the Absurd, 1993]]
The Theatre of the Absurd originated in France in the 1940s, the first of whose main proponents is Romanian-born Eugène Ionesco (1909-1994) with "La cantatrice chauve" (The bald soprano, more precisely the bald primadonna, 1948) and "Rhinocéros" (Rhinoceros, 1959). "Both Ionesco and Beckett are concerned with communicating to their audiences their sense of the absurdity of the human condition" (Esslin, 1960 p 671). "If a good play [in the Realist style] must have a cleverly constructed story...[Absurdist plays] have no story or plot to speak of; if a good play is judged by subtlety of characterization and motivation, these are often without recognizable characters and present the audience with almost mechanical puppets; if a good play has to have a fully explained theme, which is neatly exposed and finally solved, these often have neither a beginning nor an end; if a good play is to hold the mirror up to nature and portray the manners and mannerisms of the age in finely observed sketches, these seem often to be reflections of dreams and nightmares; if a good play relies on witty repartee and pointed dialogue, these often consist of incoherent babblings" (Esslin, 1974 pp 3-4) "The convention of the absurd springs from a feeling of deep disillusionment, the draining away of the sense of meaning and purpose in life, which has been characteristic of countries like France and England after the Second World War. In the United States, there has been no corresponding loss of meaning and purpose” (Esslin, 1974 p 266). Unlike Camus’ essay, “The myth of Sisyphus”, and Sartre’s novel, "Nausea", both of which treating rationally of irrationality, Ionesco and other members of the Theater of the Absurd treated irrationality in an irrational manner. “An irrationalist theater is not merely a theater that attacks the idols of rationalism, indefinite progress towards happiness through science...it is, above all, a theater which is meant to be a genuine expression of the irrational” (Doubrovsky, 1973 p 12). In the 1950s to the 70s, absurdist plays or plays with absurdist elements dominated to the extent that, in the view of Fuegi (1986), “it is only the absurd drama that is not absurd” (p 204).
The Bald Prima Donna, "the picture of the human condition...is cruel and absurd (in the sense of devoid of meaning). In a world that has no purpose and ultimate reality the polite exchanges of middle-class society become the mechanical, senseless antics of brainless puppets. Individuality and character, which are related to a conception of the ultimate validity of every human soul, have lost their relevance...The audience knows no more about the mcaning of the mechanically senseless dialogue than do the characters themselves. What is involved is a savage satire (which is by no means the same as irony) on the dissolution and fossilization of the language of polite conversation and on the interchangeability of characters that have lost all individuality, even that of sex. Such characters lead a meaningless, absurd existence.... My contention is that the source of...laughter is not to be found in any irony but in the release within the audience of their own repressed feelings of frustration. By seeing the people on the stage mechanically performing the empty politeness-ritual of daily intercourse, by seeing them reduced to mechanical puppets acting in a complete void, the audience while recognizing itself in this picture can also feel superior to the characters on the stage in being able to apprehend their absurdity- and this produces the wild, liberating release of laughter- laughter based on deep inner anxiety" (Esslin, 1960 pp 671-672). The play “is almost in its entirety an exaggerated depiction of the hollowness of bourgeois life through the use of caricature...What is frightening...is how closely it resembles the banal conversations that go on in middle-class homes night after night...The characters hide their boredom and their dislike for one another behind the clichés of polite speech and the routines of conventional behavior. So mechanical have their lives become that they are incapable of learning anything” (Abbott, 1989 p 159). “The dialogue is mainly in the form of self-contained statements that attempt little interlay...When the dialogue is initiated...conversation is little more than sense destruction...[When] the Martins are introduced...the dialogue...grows out of their mutual wonder over the coincidence of their parallel existence. This process is the reverse of the incongruity that fails to surprise; here it is the expected that evokes stereotyped amazement” (Grossvogel, 1962 pp 53-54). "The bald primadonna" presents "characters...already devoid of humanity...who do not possess even a memory of propitious times, who are the same at the falling of the curtain as they were at the beginning, and who seem unconcerned with any possible release from their imprisoned circumstances- indeed...are unaware of any imprisonment...lack any tragic sense of their condition...The incredible elicits little surprise, [as when the fireman rings the doorbell], the ordinary is greeted with incredulity” [as when Mrs Martin describes a man tying his shoelace in the street]" (Jacobsen and Mueller, 1976 pp 46-54). The conversations between the Smiths and Martins derive from instruction manuals to master a new language (Hayman, 1976 p 17). “The Martins...are so lost in their individual solitude that after years of married life they do not recognize each other. Their life together has been one of mechanical repetition. People are so interchangeable, so anonymous, that at the end of the play the Martins may take the roles assumed at the beginning by the Smiths” (Pronko, 1959b p 35).“The dislocation of everyday language in the play is progressive, passing through several phases. At the beginning of the play, the language is remarkable primarily for its sheer inanity...The second stage in Ionesco's assault on language encompasses most of the rest of the play; it begins when Mr Smith starts to speak and continues until the departure of the fire chief (scene 10). As soon as the monologue becomes dialogue, it is apparent that the logic governing the world of this play has nothing to do with that of the spectator's world. In this part of the play, the forms of polite conversation are left largely intact, but their content is skewed and zany” (Lane, 1994 pp 31-32). “The Smiths and the Martins...are devoid of identity. The characters mimic each other for lack of imagination, parroting contemporary clichés and boilerplate remarks because they are so eager to please they have lost any semblance of self outside the herd” (Krasner, 2012 p 308). “The Martins’ problem is that, even though they have been introduced to us as man and wife, they don’t know each other...we see a typical couple, married for some years, who do not know each other” (Wellwarth, 1971 p 62). "No sooner have the chimes struck seventeen times than Mrs Smith announces that it is nine o'clock. A joke? Of course it is a joke. But it also reveals that the specific time of day is meaningless, because from hour to hour and day to day, their lives are essentially the same. It is also noteworthy that the couple is named Smith: a perfectly conventional, nondescript, middle-class name for conventional, nondescript, middle-class people...The uniformity, as well as the lack of vital life in the lives of the members of the bourgeoisie, is revealed when the Smiths discuss Bobby Watson...There is no difference in the pattern of existence between one bourgeois and another...Ionesco frequently employs a grotesque reversal of the usual. He accomplishes this by taking a familiar situation, injecting into that situation a single element which renders it completely improbable, and then writing the scene as though the improbable element were not there. Such a scene occurs when Mr and Mrs Martin enter...and Ionesco presents not only a brilliant satire on cocktail party conversation, but- and more to the point- on the bourgeois preoccupation with inconsequentials. At first, each of the characters gropes for something profound with which to impress the others. The result is a plethora of banalities...Mr Smith goes to the door and returns with the fire chief...[The explanation of the doorbell matter] satisfies all concerned, for it is the classic bourgeois manner of settling controversies: choosing the middle path between two extremes...Enter the Maid, who turns out to be the fire chief's sweetheart. Here, too, passion is extinct, for, as the fire chief declares, 'it was she who extinguished my first fires'...When the fire chief leaves, Ionesco presents another illustration of the dull routine of these people's lives. The party conversation becomes a series of clichés: 'to each his own,' 'an Englishman's home is truly his castle,' 'charity begins at home'- [which] follow each other with no logical continuity"(Dukore, 1961 pp 176-177). Lane (1996) enumerated the disruptions of logical discourse include pseudo-explanations (the patient died because the operation failed), false analogies (a conscientious doctor must die with his patient like the captain of a sinking ship), contradictions (the Smiths have had dinner until the maid enters), specious reasoning (when the doorbell rings, it is because no one is there), surprise at the obvious (why newspapers never print the age of newborns), unreliability of proper names (the Watsons), aphasia (a woman is asphyxiated because she thought the gas was a comb), word-action contradiction (the fire chief says he will take off his hat but not sit whereas he does the reverse). The characters lack any discernable motivations, rationality, or internal life, rather they are like puppets...Undifferentiated from each other and indistinguishable from their surroundings, they are traversed by language which uses them rather than the other way around” (pp 32-39).
Rhinoceros “fuses fantasy and reality, using the outrageous convention of turning characters into rhinoceroses in order to make a strong political point and comment on the nature of social oppression. Rhinoceros even goes so far as to play with the line between fiction and reality by having one of the characters ask Berenger if he’s read any of Ionesco’s plays, blurring any distinction between the representation and the real” (Saddik, 2007 p 31). “The acute paralysis of will, vacuity of imagination, bureaucratic corruption, vicious authoritarianism, self-serving interests, demonstrative self-congratulatory pandering, and primarily the need to please at all costs to one’s individuality are for Ionesco symptomatic of modern culture’s predicament. The cacophony of demands from both left and right extremists is symbolized by the barrage of noise in the thundering herd of rhinos trumpeting through the town. The rhinos epitomize an excess of power bereft of vision; for Ionesco, we live in tragic times...because our power to change circumstances has reached an aporia” (Krasner, 2012 pp 313-314). “Fatalism and indifference become common sense...What is so compelling and convincing about Ionesco’s presentation of the rhino mentality...is that it is reinforced by kinship patterns...Family feelings override what should have overridden family feelings” (Hodgson, 1992 p 135). “When the first rhinoceros upsets the decorum of the community, their comments are entertainingly inadequate...Unable to grasp the significance of the new invasion, the characters run off into irrelevancies that flatter their egos...Their minds are too static. They have no principles. Their imaginations are sluggish. They can only repeat the clichés from the normal periods of their lives. And it should be remarked that the only human being who refuses to become a rhinoceros is the one with the most commonplace mind and the least personality” (Atkinson and Hirschfeld, 1973 pp 272-273). “Berenger...is an unlikely hero: he is hungover, dishevelled and directionless. His unheroic disposition makes him an Everyman, somebody who could be, or inspire, anyone. Although average, he is exceptional. By resisting the rhinoceroses, he is the only person to preserve his singularity and, in literal terms, not to become dehumanized by conformity. Moreover, he not only prioritizes his own individuality, but also respects that of others, showing conciliation and compassion towards friends and colleagues before they metamorphose. He is thus the only character with psychological depth” (Finburgh, 2015 pp 119-120). Berenger “changes from a listless slouch to an ardent defender of an irreplacable set of human values” (Gaensbauer, 1996 p 102). “His aversion to the rhinoceroses is visceral. ‘Just the sight of them upsets me,’ he says. Inarticulate, he counters John’s defense of rhinoceroses not with argument but with feeling” (Lane, 1996 p 114). “Berenger is...weak confused, fearful, alcoholic. Yet he will not yield” (Bloom, 2005a p 248). “What the play conveys is the absurdity of defiance as much as the absurdity of conformism, thc tragedy of the individualist who cannot join the happy throng of less sensitive people” (Esslin, 1974 p 151). "We find little in Berenger's life that would appear to be worth defending. Early in Act I he confesses to his friend Jean that he is bored and tired and unsuited to the office job that he nonetheless performs dutifully...The other characters in the play are no more successful than Berenger in creating, through their lives, a form of humanity that would appear worth struggling to preserve...If meaningful thought is the necessary criterion for being, the logician has a minor but memorable role as the master of the false syllogism, less alive than anyone on stage. Confidently ignoring the logical limits premises, he concludes that four-pawed creatures are necessarily cats...It is a mark of Berenger's lack of discernment that he is favorably impressed by the logician...As a final example of the intellectual atrophy with which the supposedly characters of Rhinoceros are afflicted, consider the mental activity of the schoolteacher, Botard. Like the fanatics who refused a few years ago that men had actually walked on the moon, Botard adamantly rejects...newspaper accounts of the presence of rhinoceroses...When Botard later denounces academe he is in effect rendering an accurate self-assessment: 'what University people lack are clear ideas, the sense of observation, common sense'...All that remains of human civilization in the play is an almost unintelligible human-like verbal debris, unconnected fragments of logic, hollow figures posing as human beings...Understandably, then, Berenger is in an awkward position when he works away gradually, in the famous long speech that concludes the play, into a posture of resistance, on one hand, and defense of mankind...How will he communicate with the rhinos?...Right or wrong, they are in his view attractive and he ugly in contrast...His final words are less heroic or courageous than silly in their recalcitrance...[The play's lesson might be:] individualism in defense of non-humanity is no virtue...bestiality as an alternative to unreasoning human existence is no vice" (Danner, 1979 pp 210-214). "Jean, who is admonishing Bérenger for his moral laxity, and the professor, who is conducting a logical argument on another part of the stage, end up saying exactly the same lines, echoing one another in perfect unison although their intended meanings are entirely different...The inarticulate roars of the rhinoceros, however, are able to communicate directly with those who are beginning to feel tempted to join them” (Bradby, 1991 p 76). Berenger is the only character who changes. “He alone is unwilling to take them for granted. His moving from apathy to engagement, and from near death to life, is charted as he debates with one character after another about the blandishments of rhinoceritis” (Jacobsen and Mueller, 1976 p 66). In contrast, Dudard considers rhinoceritis a mark of a ‘community spirit triumphing over anarchic impulses’ (Hayman, 1976 p 110). John is “intent on keeping up appearances...the most hypocritical and self-righteous...fastidious, boastful of his imagined superiority over Berenger...The first to surrender his humanity...Botard is the most arrogant, stubborn, and unreasonable...He at first categorically rejects the story of the rhinoceroses...but...shares a strong sense of duty...to adhere to whatever or whoever is in power...Dudard is a relativist. He responds calmly....urging that the best course is simply to ignore the beasts and acclimatize oneself to the changing times...Daisy...opts for the ‘natural’ life, calling the rhinoceros ‘real people’” (Jacobsen and Mueller, 1976 pp 42-46). “Botard is just as narrow-minded and pedantic as the young arriviste Dudard. Skeptical and obstinate, Botard is convinced that the plague of rhinoceritis is a right-wing conspiracy, sustained by the press, and consumed by the masses. Denying the existence of rhinoceros in the town, Botard calls it an instance of ‘your propaganda’ and an ‘infamous plot’, part of what he deems to be a capitalist ploy to make money. Botard accuses the journalists of fabrication: ‘they don't care what they invent to sell their wretched newspapers and please the bosses they serve’” (Quinney, 2007 pp 46). “The play, despite the central figure’s defiance of bestiality, is essentially anarchic, bitter, very nearly hopeless. The rational mind and logic are absurd, Ionesco tells us; they have little relation to the truth (which is the chaos) of life” (Clurman, 1966 p 86). In contrast, Bennett (2011) proposes that “much of the success of totalitarian regimes is the complacency of the masses. But rhinos have no known predators (except humans) and are probably one of the last animals one would think could be herded...Different species can display remarkably different social traits, ranging from solitary to gregarious...How does one maintain individuality within a group that needs to act as one?...Berenger takes on a Sisyphian purpose...We can make our lives meaningful through our revolt and creating a purpose by which we can live by” (pp 95-98). “The earlier heroes feel that they are working for something greater than themselves and that hope sustains them in their quest. In Ionesco’s universe, no cosmic or religious meaning is given to Berenger’s refusal to capitulate” (Abbott, 1989 pp 165-166). “Rhinoceros thus emerges as a chilling portrayal of man in society, any society, ostracized by his fellows for reasons that he cannot fully comprehend” (Parsell, 1986c p 1002). “In drama, as in fiction, the sign of...debilitation is currently an unwillingness (arising, I suspect, from an incapacity) to create characters. A certain anti-humanism is connected with this quality, and one may sense its presence even in a work that presents a concern over the dehumanization of mankind as explicitly as Rhinoceros does” (Gassner, 1968 p 502). “The meaning of the play is clear: man is only too inclined to forget his humanity, his individuality and independence; following the pressure of the times, he becomes like everyone else. The rhinoceros are an amusing-and at the same time frightening-symbol of man giving in to his animal nature” (Pronko, 1961 p 69).
“Ionesco is a formidable parodist, a sardonic skeptic, and an almost irrepressibly gay nihilist; he is as effective in comedy as in pathos. He is capable of challenging reflection while outraging sensibility or tickling our funny bone with his clowning, and of depressing and amusing us almost in the same breath” (Gassner, 1960 p 261). "When his characters experience lightness, joy, evanescence, it is always a solitary emotion. They cannot derive joy from togetherness with others. In fact, it is almost always the pressure and intrusiveness of social existence that destroys their inner sense of bliss” (Bradby, 1991 p 81).
=="The bald primadonna"==
[[File:Theatre_Huchette.jpg|thumb|Something strange and absurd is occurring in a house with two couples, a servant, and a fireman. Poster of the play at the Theatre de la Huchette, 2006]]
Time: 1950s. Place: London, England.
Text at https://macaulay.cuny.edu/eportfolios/smaldone2011/course-readings/
While Mrs Smith prattles about domestic affairs, Mr Smith clicks his tongue. He reads in the newspaper a mention about Bobby Watson's death. Mrs Smith specifies that it is his wife, Bobbie Watson, that she is now thinking about. The Smiths suggest that the Watson children, Bobby and Bobbie, may be taken care of by an uncle and aunt, Bobby and Bobbie Watson, respectively, so that the widow may remarry. "Has she anyone in mind?" Mrs Smith asks. "Yes, Bobby Watson's cousin," Mr Smith affirms. "Who? Bobby Watson?" his wife queries. "Which Bobby Watson are you talking about?" he queries back. "The son of old Bobby Watson, other uncle to the dead Bobby Watson," she answers. "No, not that one," he says. "Bobby Watson, son to the old Bobbie Watson, Bobby Watson's aunt." After settling that matter, their invited guests arrive, a man and a woman who do not know each other. While conversing, the two guests are astonished to discover that they many things in common until realizing they are man and wife. The doorbell rings. Mrs Smith gets up to see who it is, but there is no one. The same thing happens twice more, until an angry Mr Smith gets up and sees a fireman at the door, who has been waiting there for 45 minutes. Interrogated on the subject of how can that be, the fireman reveals that he had seen no one when the bell had rung the first two times, but it was he who had rung the third time, then hid, as a joke. He recites experimental fables, such as The dog and the Bull: 'another bull asked another dog: why did you not swallow your trunk?- Sorry, the dog answered, it's because I thought I was an elephant.' Their talk is interrupted by the Smith's maid, Mary, who wishes to express her own anecdote, but the two couples are affronted that a mere servant should do so. The maid is recognized by the fireman as a long-lost love of his, a woman who "extinguished my first fires," he says, and Mary agrees to have been "his little fountain". When she attempts to recite at least a poem entitled "The fire" the Smiths push her out of the room. Before leaving, the fireman asks about the bald primadonna. "She covers herself as usual," Mrs Smith responds. After the fireman leaves, the two couples have an increasing amount of difficulty in understanding each other, then run about confusedly.
=="Rhinoceros"==
[[File:Rhinoceros.png|thumb|For some absurd reason, human beings are transformed into rhinoceros]]
Time: 1950s. Place: Paris, France.
Text at https://archive.org/details/in.ernet.dli.2015.167320 https://archive.org/details/in.ernet.dli.2015.58383
John scolds his friend, Berenger, for his excessive drinking and disordered life. Unexpectedly, their conversation is interrupted by a rhinoceros running in the streets. They discuss where the animal could possibly have come from, but each suggestion seems more implausible than the other. Berenger's fellow office worker, Daisy, comes over to talk about the same subject. Once again, the conversation is interrupted by a rhinoceros, this time running in the opposite orientation. A housewife comes over to moan over the fact that the rhinoceros crushed her cat. John, Berenger, and Daisy discuss whether it is the same rhinoceros or a different one. A grocer thinks it is the same, but John disagrees, explaining that the previous one had two horns, therefore an Asian one, whereas the second one had only one, and thus of African origin. Taking into consideration the speed with which they were running, Berenger casts doubt on whether his friend could reliably count the number of horns. "In addition, it was covered with dust," he adds. In his view, John is a pretentious pedant. John is offended. An old man intervenes to ask whether the one-horned rhinoceros is truly African? John and Berenger quarrel about that subject as well. According to Daisy, both are wrong. "The Asian rhinoceros has one horn, the African one, two, and vice versa," the grocer pronounces. After John leaves angrily, Berenger has qualms about his own attitude, along with that of his friend. "The least objection makes him froth at the mouth," Berenger declares. A logician comes over to say that even if the first rhinoceros had two horns and the second only one, there is still no conclusive evidence that the two are different, because the first one might have lost one. In the office where Berenger works, there is a difference in opinion concerning the existence of the rhinoceros. His fellow-worker, Botard, considers them an invention, an opinion that offends both Berenger and Daisy. In contrast, another office worker, Dudard, in love with Daisy, believes her eyewitness account. "He does not even know how many he saw," Botard says of Berenger. After viewing a rhinoceros in the street, another office worker, Mrs Beefsteak, rushes in panic. One rhinoceros damages the staircase in the office building so that the workers are unable to get out. Yet Botard continues to deny their existence until he sees one of them himself. Mrs Beefsteak recognizes one rhinoceros at the door as her husband. Berenger sees one animal with two horns, but is still unsure whether it is Asian or African (unaware that the latter is true if it is white or black). Meanwhile, the department head, Butterfly, encourages all of the workers to return to work while Daisy telephones for help. Mrs Beefsteak seizes the opportunity of running away with her rhino-spouse by jumping from the elevated floor directly on its back. Botard pretends to know what is behind the arrival of the rhinoceros, but is unwilling to divulge it at the moment. In the emergency, firemen arrive to usher the workers out of the building. Feeling qualms about their dispute, Berenger visits John's home to apologize, but is horrified on seeing his friend turn into a rhinoceros before his very eyes. Butterfly and Dudard follow the same pattern with the growing crowd, as does Daisy, especially after hearing their voices on the radio. Against the transformation at all costs, Berenger resists the temptation to turn into one of them.
=Samuel Beckett=
[[File:Samuel Beckett 01-2.jpg|thumb|Samuel Beckett's plays depict the terrible and humorous side of tragedies, 1970]]
Samuel Beckett (1906-1989) continued or perfected, some would say, the Theatre of the Absurd with "Waiting for Godot" (1952), "Endgame" (1957), and "Happy Days" (1961).
Waiting for Godot “marked a clear break with the dramaturgy of the 1940s and...established a new frame of reference for contemporary theatre...Where ‘Waiting for Godot’ seemed initially incomprehensible to its first...audiences...its meanings are now self-evident” (Innes, 2002 p 307). The play’s “structure emphasizes mythical or ancient time: the cycle of the day, the year and the seasons, inscribed in nature’s movements (the planets, stars, etc). It challenges the validity of linearity as the accepted structural model of modernity by undermining ideas such as certainty and progress” (Toribio Vazquez, 2022 p 161). “Who...is the unseen Godot? To some, he is death, to others, life, to a few, nothing...one could probably settle on Godot as standing for God...His absence does not signify negation...but...infinite possibility” (Bennett, 2011 pp 27-43). “Vladimir and Estragon...are clearly derived from the pairs of cross-talk comedians of the music hall...Vladimir remembers past events, Estragon tends to forget them as soon they have happened. Estragon likes to tell funny stories, Vladimir is upset by them. It is mainly Vladimir who voices the hope that Godot will come and that his coming will change their situation, while Estragon remains skeptical throughout” (Esslin, 1974 pp 26-27). “Vladimir thinks more, he is more cultured, his anguish is more intellectualized, he is more hesitant and demanding in his choice of words. Estragon is more spontaneous and more lethargic, he is more childish, he sulks more, he is more eager for protection, he is more egoistical and more obstinate, he holds to his own vocabulary and refuses Vladimir’s nuances. Vladimir is more restless, more active, Estragon more inert. Vladimir has the responsibility: he is in charge of the carrots, radishes, and turnips that constitute their meals. Estragon is more the victim: he is kicked by Lucky. While Vladimir tries to make conversation with Pozzo and to seem well-bred, Estragon listens only because he is threatened or ordered to; otherwise, he independently follows the flow of his own thoughts” (Guicharnaud, 1967 p 236). "Didi is the contemplative, the listener, the seeker, the one expecting messages, the ascetic, the one who suppresses his physical side, while Gogo is the active, the non-reflective, the one who tries to wipe the tears from the eyes of sufferers, who must eat when he is hungry, and who bellows when he is hurt. Neither can do without the other" (Baxter, 1965 pp 10-11). “Estragon, who's nickname is Gogo, is of the earth. His name is French for ‘tarragon’, an aromatic herb used as a seasoning in pickling. His obsession with his ill-fitting boots that cause him pain indicates that he is close to or of the earth. Gogo also goes and comes. He is the wanderer who always stumbles back to his companion Didi. He can be sarcastic and skeptical, but mostly he is resigned to an inevitably unhappy fate. Vladimir, whose nickname is Didi, continually looks and feels into his hat, seeking cooties or some other irritant, just as Gogo is tormented by his ill-fitting boot. He is more rational and less emotional than Gogo. Vladimir seems more in touch with the outside world and more aware of his immediate world. He is better spoken than Gogo, and he sings in both acts. He is the leader of the pair, and, significantly, he is the one who most believes in Godot...Pozzo is a sadist, enjoying his power over his slave, Lucky, but he is also weary of the relationship. After all, a master is always tied to the slave who serves him…Pozzo stands for capitalism exploiting the worker, Lucky. The derby or bowler hat enforces this consideration. Pozzo is all materialism, concerned about his baggage, his comfort, his food, his pipe, and his watch. Lucky has nothing but his hat and his burdens. Lucky is a slavish masochist who does not want relief from his pain and thus attacks Estragon. The fact that he does not take advantage of Pozzo's blindness in act 2 to escape or kill his enslaver indicates that he has need of the relationship and even the punishment. Lucky is not only a symbol of the exploited worker in a capitalist society but also the tormented intellectual made ineffectual by that society. It may be that Pozzo and Lucky are yin and yang in their relationship: part of one personality or entity” (Sternlicht, 2005 pp 54-55). “Serious subject matter is presented in music hall form...Much of the surface is taken up with farcical satire of conventional social behavior. Pozzo, for example, is unable to take a simple action like sitting down without an attendant barrage of ceremony, and the two tramps are always trying to strike up what will pass for a polite conversation, using catch-phrases like Vladimir’s: ‘this is not boring you, I hope?’” (Gascoigne, 1970 p 186). "What makes the play more than just a pastiche of clown and music hall comedian is partly the philosophical overtones and partly the self-conscious elements...The characters watch themselves act, reflect at the very moment of acting on the significance, or absence of significance, of those actions” (Bradby, 1991 p 59). “Beckett’s extraordinary feat of blending pathos and comedy is accomplished by the relationship of the human characters who are, despite their bloviated portentousness and inane banter, filled with enormous charm. They are hilarious as they are tragic, exquisite amalgams of clownishness and grandeur. They can be pompous and stubborn, yet just as quickly brought down to earth with humility and despair” (Krasner, 2012 pp 343). According to Durán (2009), The play "reflects Albert Camus' 'The myth of Sisyphus' (1942)...For Camus, the absurd issues from the clash of two contradictory phenomena: rational man and an irrational world...It soon becomes clear that Vladimir and Estragon live in a world wholly devoid of reason. The characters engage in pointless acts, the dialogue abounds in non-sequiturs and contradictions, and memories are short. Characters often forget whom they know or what they know. In Beckett's play, things happen not according to any logic or order, but as a result of sheer fortuity...Vladimir and Estragon thus find themselves disoriented and alienated from the irrational world they inhabit...Consequently, the two characters spend most of their time and energy devising ways to fill the emptiness of their mundane lives...Camus explains that one continues to live this type of absurd existence largely out of habit...But Camus warns that the protective walls of habit can unexpectedly fall away making one suddenly aware of life's absurdity...Thinking poses a danger because it can expose one to that 'suffering of being' provoked by a consciousness of the absurd...Suicide affords one means of escape...After learning from the young messenger that Godot will not come that day, Estragon gazes at the tree and laments... He asks Vladimir to remind him to bring a rope the next day and recalls a past attempt at suicide...The rejection of suicide still leaves the possibility of eliminating the other opposing term: an irrational world. Despite all evidence to the contrary, one may choose to view the world as truly rational. Camus calls this strategy 'the philosophical suicide'...By adopting systems of belief such as religion, philosophy, astrology, or what have you, one imposes a false logic and order on this world...Lacking the courage to commit physical suicide, Vladimir and Estragon find solace in philosophical suicide. They see their hope in the coming of a Godot, someone who will satisfy all their wants and needs...No matter what occurs, Vladimir and Estragon cling tenaciously to their hope in Godot's appearance...As a result, the two tramps end up doing nothing...Camus believes that an authentic response to the absurd resides in neither physical nor philosophical suicide...Rather than elude the absurd, one must not only accept but also sustain its truth, constantly confronting its reality through what Camus calls a metaphysical revolt...In the final pages of his essay, Camus illustrates his concept of 'revolted man' through the character of Sisyphus...[who] chooses instead to embrace his fate, fully conscious of all that that implies. [But the tramps] incarnate, in fact, the exact opposite of Sisyphus. Rather than embrace their reality, the two tramps use every means available to evade it" (pp 982-989). “Vladimir and Estragon play the game of waiting for an entity that they have invented to save them from the unknowable. They have even hired a boy/priest to reassure them at regular intervals that they are not waiting in vain. Meanwhile they eat, sleep (and have nightmares), engage in futile philosophical discussions, and otherwise parody human existence” (Wellwarth, 1986 p 71). "In Waiting for Godot, auditory and visual scenic means convey the tension between comedy and tragedy to the audience. Act Two ends in nearly an identical way to Act One. Estragon and Vladimir discuss suicide and separation. A tree, the only permanent prop in the play, has sprouted four or five leaves. However, what might signify the meaningful fullness of life the participation of humanity in a scheme of things larger than itself, a metaphysical reality capable of supporting the form of tragedy is reduced to mere occurrence" (Como, 1989, pp 68-69). Brater (2003) emphasized the movement of the play from the particular to the universal, as in Vladimir's following comments to his fellow tramp: 'let us do something while we have the chance. It is not every day that we are needed. Not indeed that we are personally needed. Others would meet the case equally well, if not better. To all mankind they were addressed, those cries for help still ringing in our ears! But at this place, at this moment of time, all mankind is us, whether we like it or not. Let us make the most of it, before it is too late'" (p 145). “The clearest statement of Beckett’s belief in the uselessness of thought is in the tremendously effective scene of Lucky’s tirade in Waiting for Godot. Beckett here implies that it is only in modern times that man has become impotent in thought and action” (Wellwarth, 1971 p 46). Lucky’s tirade "is one magnificent moment when a bestially slave-driven underdog bursts into an incoherent speech which gives an extraordinary Joycean impression of overcharged meaning" (Williamson, 1956 pp 69-70). “We have no superficial allegories and personifications of abstractions, but characters who are both symbolic and real in a situation which is a metaphor of the human condition...This is the true metaphysical Pascalian and Kierkegardian absurdity and nonsense of life without God or purpose and it is something which is very remote from the dehumanized, incoherent world of Ionesco...The Pozzo-Lucky relationship is the mirror of human degradation and shallowness. Pozzo hides his insignificance and hollowness under a cloak of ritual gestures and ceremonies which are part of the social apparatus of power...Lucky is merely an object, a thing, and his life is reduced to mechanical reactions; he not only serves Pozzo, he has also to think for him; he is therefore materially and spiritually Pozzo’s slave and has no individual existence” (Chiari, 1965 pp 68-74). The tramps “appear as a social unit outside society...like prisoners free to amuse one another...It is as though they ad lib for their very lives...The play takes up themes of many kinds- religious, philosophical, psychological- without any of them to become the drama’s motif, and with a fierce comic opposition to their pretensions...Pozzo and Lucky are emissaries from the realm of time and from the life of society, with its institutionalized relationships, its comforts and delusions, above all its thirst for hierarchies...the principles of human power and exploitation, delusory, ultimately disastrous, but maintained by them as the foundation of their lives...Whenever a character appears to be feeling some definite emotion or to have entered some decisive area of commitment, it is all undone by an opposite remark, a corrosive scornfulness, a physical jape” (Gilman, 1999 pp 242-250). “The word ‘divine’, used three times in the play, is spoken not by the seekers for Godot but by the slave commanded to ‘think’, the broken-down scholar, Lucky, in his wild meditation on the existence of ‘a personal God [including] referring to the ‘divine Miranda’, which points us to Shakespeare’s heroine in The Tempest, someone able to suffer ‘with those who for reasons unknown but time will tell are plunged in torment’. That she could so feel for total strangers understandably makes her ‘divine’ for the maltreated Lucky” (Worth, 2006 p 239). “Sober expression of misery is rare in this nearly wholly stichomythic play whose words are never allowed to inflate the period. The words remain simple, idiomatic, slangy” (Grossvogel, 1958 p 329).
Endgame "reveals a singleness of tone and a tenacity of purpose that commands respect and bafflement...Nothing happens in Endgame and that nothing is what matters...The bitterness matters...the sense of entrapment matters...the intensity of Hamm’s contempt matters...the elegiac mood matters” (Gassner, 1960 pp 256-258). “Hamm is paralyzed and can no longer stand. His servant, Clov, is unable to sit down...some great catastrophe, of which the characters in the play are or believed themselves to be sole survivors, have killed all living being...Hamm is untidy. Clov is a fanatic of order. Hamm's parents are grotesquely sentimental imbeciles” (Esslin, 1974 p 41). Hamm might be an abbreviation of hammer, Clov might reflect “clou” or nail, from which may be derived Nell (or nail) and Nagg from the German translation “Nagel” (Mendelson, 1977). "Nagg and Nell in their dustbins appear to be pawns; Clov, with his arbitrarily restricted movements ('I can't sit') and his equestrian background ('And your rounds? Always on foot?' 'Sometimes on horse') resembles the Knight, and his perfectly cubical kitchen ('ten feet by ten feet by ten feet, nice dimensions, nice proportions') resembles a square on the chessboard translated into three dimensions. He moves back and forth, into it and out of it, coming to the succor of Hamm and then retreating. At the endgame's end the pawns are forever immobile and Clov is poised for a last departure from the board, the status quo forever menaced by an expected piece glimpsed through the window, and King Hamm abandoned in check" (Kenner, 1961 pp 156-157). "Constant reference is made to the question of game, of play and theatre. Hamm opens his first and last monologues with the words, ‘Me- [he yawns]- to play’. To Clov’s question ‘what is there to keep me here?’, he replies, ‘the dialogue’. Hamm acts with knowledge of the underlying theatrical conventions and rules of performance, ‘Since that’s the way we’re playing it...let’s play it that way’. He teaches Clov: ‘An aside, ape! Did you never hear an aside before? [Pause] I’m warming up for my last soliloquy’. He begins and ends the play theatrically: at the beginning he makes the curtain rise (‘he removes the handkerchief from his face’ and at the end he lets it fall (‘he covers his face with handkerchief’" (Fischer-Lichte, 2002, p 331). This type of self-consciousness is the epitome of the post-modern style in literature, in contrast with the lack of self-consciousness of previous periods. "Hamm’s concern for all the actions of the day to be carried out precisely, and especially his obsession with being placed at the dead centre of his room, bear the shape of a man trying to establish his own dignity and importance, an attempt that is made absurd by his setting” (Bradby, 1991 p 70). “The tension between entropy and order, between strength sapped and the tenacity of will, between physical restraints or incapacities and the energy to play- the tension of a play of impasse- is central in Endgame. This tension is objectified in the relationship between Hamm and Clov. Finally dying...Hamm asks for ‘a few words’...Clov’s answer is a vision of the beauty of art and order...Hamm cannot match it and he concedes defeat...Clov says he is leaving the cell, the structure, but we see him silhouetted in the shadows...his eyes fixed on Hamm till the end...Hamm...thinking himself alone in the structure, dies alone” (Rosen, 1983 pp 275-276). “Nagg and Nell are a side bar commentary on the action of the main characters. Nagg and Nell represent an even more dysfunctional clown pair than Hamm and Clov. They are given space to do routines, but are prevented from achieving any clownish physical action because they are confined to ash cans. As a result, they are reduced to telling jokes” (McManus, 2003 p 79).
”Happy days" "is another Beckett threnody on the sorry lot of mankind reduced to an absurd stalemate from which man can only decline into a worse one...At the same time, one encounters another tribute to human endurance and the determination to shore up inner defenses of faith or delusion against failure, never yielding an inch to sentimentality, against which the writer defends himself with sustained irony, so that human heroism also appears to be a ridiculous capacity for self-delusion” (Gassner, 1968 p 504). "On the one hand it is tragic that Winnie should be so cheerful in her terrible and hopeless predicament, on the other it is funny; in one sense her cheerfulness is sheer folly and the author seems to make a deeply pessimistic comment on human life; in another sense, however, Winnie's cheerfulness in the face of death and nothingness is an expression of man's courage and nobility, and thus the play provides a kind of catharsis, Winnie's life does consist of happy days, because she refuses to be dismayed" (Esslin, 1974 pp 59-60). "Winnie...buried to the waist and later to the neck, maintains a logician's, a grammarian's detachment from her plight...Though the earth now turns so slowly that through the intensely hot day she feels her body menaced by spontaneous combustion ('oh I do not mean necessarily burst into flames"), yet she considers with some agitation whether the hairs or hair one brushes and combs are properly styled 'them' or 'it' ('Brush and comb it? Sounds improper somehow'), and feels it outweighs the day's miseries to have learned the proper definition of 'hog'" (Kenner, 1961 pp 93-94). “Winnie’s strangest characteristic is her happiness...Winnie is resigned, eager to devour any old untruth, even poetry, to make use of any “pillow of old words” for her head...Winnie is a victim, a victim of the human condition...She has the usual consolations of existence: she tells herself stories, she has her bag, her hoard of miscellaneous possessions…Nevertheless, her most formidable weapon of defense against the absurd is her indifference” (Coe, 1986a pp 163-164). In Winnie’s song, the banal words of The Merry Widow waltz are lifted, by its lilting tune and the shocking contrast between the song and the brutally immobilized singer, into another dimension where the dance might go on forever, like the memory of the wedding day and the words of love once spoken” (Worth, 2006 p 242). “Human beings are sinking even as they embrace the illusion of love and mutter worn-out words. Winnie and Willie’s companionship is absurd, futile, grotesque, and pathetic, yet it is also somehow touching, for what else is there?” (Sternlicht, 2010 p 109).
“For all its intellectual game-playing and intertextual referencing, Beckett’s theatre of failure is rigorously non-conceptual. The aim is not so much to make us think as to make us feel, to produce evocative atmospheres that get under the skin and produce intense, dislocating experiences” (Lavery, 2015 p 28).
=="Waiting for Godot"==
[[File:En attendant Godot, Festival d'Avignon, 1978 f22.jpg|thumb|Estragon (played by Rufus) and Vladimir (played by Georges Wilson) are anxious about whether Godot will ever arrive. Avignon Theatre Festival, 1978]]
Time: 1950s. Place: France.
Text at https://resources.saylor.org/wwwresources/archived/site/wp-content/uploads/2011/01/Waiting-for-Godot.pdf
Two vagabonds,Vladimir and Estragon, expect to meet a man named Godot on a country road, who promised to be there, but has not yet arrived. While waiting, the two friends attempt to amuse themselves. Yet time passes and still Godot does not show up. Why? Have they mistaken the agreed-on day? Are they at the right place? Estragon is hungry but it is Vladimir who takes out a carrot and eats most of it. "I'll never forget this carrot," he remarks amid his almost constant state of boredom. Their waiting is interrupted by the arrival of Pozzo and Lucky, the latter appearing to be Pozzo's servant if not slave and led along by him with a rope. This relation seems scandalous to Vladimir and Estragon, but they do nothing to interfere. Worse than this, Vladimir and Estragon begin to inflict the apparently mute Lucky with the same abominable treatment he receives from his master. But Lucky is not mute. He eventually bursts out with an unpunctuated monologue, incoherent in many parts and leading to nothing, after which he leaves with Pozzo. A young boy appears suddenly, sent by Godot to say he will drop by tomorrow. Vladimir is under the impression of having once experienced this event, but the boy denies it. The next day, nothing has changed except a tree has grown some leaves where they were before. Similar vaudeville-style exchanges are repeated to no avail. Although Vladimir mentions their waiting at the same place on the previous day, Estragon does not remember it. Pozzo and Lucky enter and soon fall down, but are not helped by either tramp, though Vladimir says it is necessary to do so and Estragon is willing to in exchange for money. Pozzo is now blind and Lucky mute, though the former does not remember when that misfortune occurred. They go on their way. The boy returns and leaves with the same message as the day before, without remembering what he had said on the previous day. As the only one seeming to remember, Vladimir's existence seems all the more futile. The two friends decide to hang themselves on the tree. If so, they will have an erection. Estragon takes off his belt and, vaudeville-like, his pants fall down. The belt snaps off before they get a chance to try it out. They give up. They decide to go but do not move.
=="Endgame"==
[[File:Chess tablebase query.png|thumb|An endgame in chess occurs when the importance of pawns increase]]
Time: 1950s. Place: France.
Text at https://pdfcoffee.com/endgame-by-s-beckett-pdf-free.html https://edisciplinas.usp.br/pluginfile.php/3346220/mod_resource/content/1/ENDGAME%20BY%20SAMUEL%20BECKETT.pdf
Hamm puts off a bloody handkerchief from his face. Blind and unable to stand, he is served by Clov, sighted but unable to sit. While yawning, Hamm wonders: "Is there misery loftier than mine?" Hamm is frightened at the thought that perhaps he has not made Clov suffer enough, but is relieved on being assured that he has. Hamm's father, Nagg, lives in a trash-heap and asks for his pap. "Accursed progenitor!" Hamm cries out in anger. He commands Clov to give him a biscuit. Hamm despairs that nature has forgotten them, but Clov corrects him by saying there is no more nature. After lifting up the cover of his trash-heap, Nagg tries to kiss his wife, Nell, in the bin next to his, but is unable to. When Nagg laughs at Hamm's miseries, Nell scolds him. "Nothing is funnier than unhappiness, I grant you that, but-" she remarks but is unable to finish. Suddenly, Hamm decides he wants to be placed in dead center of the room. With great difficulty, Clov at last accedes to that desire. Hamm next requires him to look outside with a telescope, but the only thing visible is a grey landscape. Hamm has another frightening thought. "We're not beginning to mean something?" he wonders aloud. When a crablouse bothers Clov, Hamm commands him to kill it at once. "Humanity might start from there all over again," he warns. He next asks for a catheter to expel urine, but before Clov can obtain one, urinates on himself. He then asks Clov to set the correct position of an imploring black toy dog. Soon after, Nell dies, at which Nagg weeps. After asking Clov several times whether it is time for his pain-killer, Hamm discovers there is none. It is useless to go on any further. Clov goes away. After whistling for him with no response, Hamm throws down the whistle and puts a bloody handkerchief over his face.
=="Happy days"==
[[File:Sketch of scene in Happy Days (play) by Samuel Beckett.jpg|thumb|Though half-buried in a sand-heap, Winnie tries ot get by. Sketch by an anonymous artist, 2011]]
Time: 1960s. Place: France.
Text at https://archive.org/details/happy_days_a_play_by_samuel_beckett
Winnie lies half-buried upright on a mound of earth. A bell from an unspecific source is the signal to start her day, in which she takes out comb, toothbrush, toothpaste, handkerchief, lipstick, nail file, appetite stimulant, glasses, and revolver. After taking them out, she kisses the revolver. Her husband, Willie, lives in a cave behind the mound, reading newspapers and postcards and pouring a soothing solution on his penis. She hears but does not see him. Under a parasol to protect her from excessive sunlight, she goes about her usual routine of the day, such as singing a song at exactly the same hour. As she chatters, Willie does not appear to be listening, so that she must strike him sometimes to get his attention. Music from an unspecified source is heard, at which she rejoices. Willie does not contribute much, but at least he manages to define the word "hog" for her. It is hot. Eventually, the parasol ignites from the excessive heat, but she remains optimistic that the day may yet end well. At the end of the day, the bell sounds again, at which time she puts each item back inside the bag except the gun. Winnie is content with little. “This will have been another happy day," she concludes. On a subsequent day, started by the same wakening bell, she now lies buried up to her neck and so can no longer manipulate any of her objects, though still confident this will yet be another of her happy days. She has not heard Willie for quite a while but believes he can still hear her, or, if not, to her he remains there in any case. "Oh, no doubt you are dead, like the others, no doubt you have died, or gone away and left me, like the others, it doesn’t matter, you are there," she says. Unexpectedly, Willie shows up at last, heading towards her, or else towards the gun, but before reaching it, he falls off the mound. He manages to call out her name, at which she rejoices. "Win! Oh this is a happy day, this will have been another happy day! After all. So far," she concludes for herself.
=Fernando Arrabal=
[[File:Fernando Arrabal.jpg|thumb|Fernando Arrabal's three major plays describe unusually frantic behaviors]]
Another proponent of the Theatre of the Absurd is the Spanish-born Fernando Arrabal (1932-?), notable for "Le cimetière des voitures" (The automobile cemetery, 1959), "Guernica" (1959), and "Le grand cérémonial" (The grand ceremony, 1963). As with the British Kitchen Sink school, the better plays seem to arise early in the dramatic careers of absurdists. He is also a proponent of Panic Theatre incorporating in Arrabal's own words "chance, memory, and the unexpected" to undermine official writing (Drumm, 2009 p 437), "named for Pan and founded on the principle of the domination of the Dionysian" (Farmer, 1971 p 155). “Homeric hymn 19 entitled ‘To Pan’ provides the most complete description of this god from whose name is derived the term ‘panic’ used by Arrabal. Pan was the god of shepherds, living in the high mountains...[Unlike Apollo’s sweet music, Pan plays] “primal matter...barbaric tunes on his rustic reeds” (Arata, 1982 pp 7-8).
In "The automobile cemetery", “the cemetery becomes a symbol of the wreckage of civilization, of the moral destructiveness of technological society” (Podol, 1978 p 46). “The central visual image that gives shape to the micro-cosmos in which these characters struggle to cope with the senselessness of life on a day to day basis is the graveyard itself, filled with wrecked cars, a symbol of the destructive nature of modern civilization” (Podol, 1988 p 134). “Original goodness and the passion it leads to are the subject matter of The Automobile Graveyard, where, with great imagination, Arrabal peoples the stage with a miserable and actively sexual community lodged in the graveyard’s heaps of disabled cars. In their pitiful and comic midst, there appears a good trumpet player, accompanied by two other musicians. The hero is of course a slaughterer whenever he feels the urge, but he is called Emmanou, is eventually betrayed and beaten up, and at the end is carried across the stage tied to a bicycle, a woman wiping his face with a cloth. The transposition of the passion of Jesus is far too obvious, and the naivety of the symbol lessens the power of the play, which otherwise is rich in invention and meaning” (Guicharnaud, 1967 p 186). "Perhaps more a visionary than a dramatist, [Arrabal] has the merit of being faithful to what he sees: his anonymous language- correct but without style, very similar to Adamov's- makes it impossible for him to cheat. He has seen the automobile graveyard, its characters, their gestures and their shapes; but when he bludgeons us with the Emanou-Christ symbolism, the effect is destroyed" (Guicharnaud, 1962 p 119). "The cyclic pattern is established in the dialogue from the opening moments of the play. The automobile junkyard, Arrabal's microcosm of contemporary life, is filled with abandoned cars, each housing an unseen clientele. As the guests settle down for the night in Act I, they are embraced by the maid Dila as usual, and we soon learn that the police 'are returning once more' in search of the three musicians who will escape as always...The circular structure found in the dialogue is carried over to the non-verbal aspects of the play. Continuously crossing the stage, the movement of the track runners and the cops and robbers is another component of the spatial dialectic. What we are witnessing here is an unresolved pilgrimage, unresolved because there is no center to this circle, no solution, no final destination. The runners Lasca and Tiossido are engaged in an empty peregrination which leads nowhere...Two opposing forces pursue each other: the pure and innocent on the one hand, the corrupted and the compromised on the other hand. The latter group, like Lasca and Tiossido, submit without question to regimented order, to forms filled out in triplicate, to rigorous training and discipline. They are committed to maintain the status-quo. Even the outcasts who live in the junkyard belong to this world, imitating its rituals which become grotesque parodies through the solicitous care of Milos. They are united with the strong to oppose the purity of an Emanou. It would seem that for once a truce has been proclaimed between the dominated and the dominants of the world under the egis of conformity...Dila plays the role of mediator in this world. She alone is lucid; she alone understands both the purity of Emanou and the degradation in which she lives. She too 'wants to be good', and hungers for purity, but she knows it is too late...She defends Emanou, hides him from the police, refuses to betray him for the reward. Yet she is impatient with his idealism and his blindness" (Luce, 1974 pp 33-35). “The derelicts...are all adult children, innocent murderers, voyeurs, and exhibitionists. They like to urinate and make love. They hate the police but are constantly pursued by them...When we first meet Dila, she goes around like a great mother obliging all the inhabitants to bed down for the night. Then she gives herself to any male who desires her...Dila cynically reminds Emanou that that being good in such a world only causes trouble...and she is right...When he feeds some people in the crowd a few sardines and some bread, the others become jealous. Eventually his subversive activities lead to his pursuit by the police and his betrayal by one of his friends...Through Emanou, Arrabal...debunks the basic Christian ethic of charity and love...His good actions have little effect on his community and, we are to assume, no lasting effect whatsoever” (Donahue, 1980 pp 12-15). Emanou is meant to represent a shortened form of Emmanuel, Jesus Christ. His antecedents are similar, being born in a manger, son of a carpenter and Mary, feeding people in the crowd with fish and bread, remembered by a food item, betrayed by a kiss, and exposed in a crucified-like position. “The characters in the play become modern biblical figures...in the tradition of medieval mystery and miracle plays...Lasca and Tiossido...become Roman soldiers (policemen) who will arrest Jesus, Tiossido also impersonates Pilate, miming the moment when he washes his hands, Fodère...enacts the role of Peter, voicing the triple denial of Jesus, Dila...first resembles Mary Magdalen and later turns into Veronica as she washes Jesus’ face, Tope...impersonates Judas Iscariot, and Milos...finally turns into Simon, the Cyrenian who helped Jesus carry the cross” (Arata, 1982 pp 33-34 and p 68). “Milos generally dominates Dila; on several occasions he punishes her, once for not proffering sexual favors and, irrationally, another time for doing exactly that. Dila, however, aggressively threatens a cowering Milos with chastisement at another moment in the play. The drama’s circular structure derives from the physical movement of Lasca and Tiossido. Those two characters begin and conclude the work by seeking a new world record, but in reverse roles. Their relationship reflects the indomitable will of the ambitious mother and the male’s need to assert himself physically in response to the feelings of inferiority he experiences when he compares himself to the female. Lasca and Tiossido also represent the oppressive nature of the state. At the plays end, the absurdity of their confining, suffocating route is affirmed, and their potential to metamorphose into police serving the system remains unchanged...Emmanou commits murder and other socially unacceptable acts. He is convinced that he will be pardoned, however, because he has memorized the meaning of goodness...If Christ can be thought of as love, then both he and that emotion are abrogated by the mechanized, dehumanized world of the automobile graveyard. The graveyard itself constitutes a central, visual symbol of the wreckage of civilization” (Podol, 1986a pp 125-126). Arrabal’s play “is certainly an impressive piece of theater, full of wild energy and black humor, bitterness, mockery, and terror, and an innocent despair of the kind felt by children, who cannot fathom either the suffering they undergo or which they themselves cause” (Gilman, 2005 pp 179-180)
In "Guernica", “Fanchou and Lira are at once innocent victims of the Spanish civil war and of all wars and representatives of the human weakness and insensitivity leading to destructive quarrels...Fanchou’s reluctance to exert himself to extricate Lira, his rebukes directed at her ignorance of the nature of war, Lira’s references to Fanchou’s sexual impotence and her utilization of the silent treatment are both humorous and disquieting in the context of the desperate situation” (Podol, 1978 p 51). “Lira’s entrapment in the toilet during the bombing of the Basque spiritual capital in 1937 creates the sort of tension between the horrifying and the comic that characterizes the grotesque. Her dialogue with her husband, Fanchou, which alludes to his sexual insufficiency and reveals their mutual selfishness and lack of true empathy indicts them without diminishing the horror of their plight and of the air attack itself. The villains of the work are the novelist and reporter, who demonstrate no concern for their country and its people and who seek to exploit the situation for their own professional gain...At the very end, encapsulation and pessimism are countered by the symbol of the balloons which cannot be shot down by the soldiers who have just killed Fanchou and Lira. Visually, Arrabal utilizes vertical movement for the purpose of affirming hope and liberation” (Podol, 1988 pp 134-135). "When the town of Gernica, the ancient capital of the Basque people, was destroyed by the German air force on April 26, 1937, the officer in charge of the attack, Wolfram von Richthofen, and his entourage were watching from a nearby mountain. As is well known, an underlying interest of this assault, and, in general, of German participation on the side of the Nationalist forces during the Spanish Civil War, was to test new technologies of warfare. Von Richthofen and the audience gathered on Monte Oiz witnessed the staging of the first blitzkrieg style of intense bombing that would become central to Nazi strategy during WWII. The destruction of Gernica, from its first horrific moments, was a theatricalized event in which the largely civilian victims were unwitting actors...When the journalist appears, "Arrabal presents a clear indictment of those who would benefit from an artistic rendering of the destruction of a civilian population: literary style subsumes any intent to depict accurately what has happened; the focus is placed not on the people who suffer but on the voice that presumes to tell their story" (Drumm, 2009 pp 427-436).
In "The grand ceremony", the protagonist “who whips dolls and murders a young girl is maintained in his psychotic state by the presence of an authoritarian and machiavellian mother” (Guicharnaud, 1967 p 185). The name of the protagonist, an anagram of the great lover, accentuates the strong note of grotesque deformation. Despite these parodical elements...The play also manages to capture the intense anguish of the protagonist...Cavanosa suffers from a complex caused by a fixation on the mother figure which does not allow him to integrate his two parents in his psyche or develop an independent personality and ego...Cavanosa’s reprehensible treatment of Sil is really a reaction to his growing fear of realizing his repressed desires. Death, violence, and eroticism intermingle; the mother’s incestuous longing for her own son takes the form of a wish to die by his hand and helps to explain the warped nature of Cavanosa’s own feelings of love, evidenced by his treatment of his dolls and Sil. Physical torture becomes an expression of internal strife, and physical deformity the externalization of psychic anguish. While these forces dominate, the play’s atmosphere remains subsumed by the world of the subconscious...Lys emerges as Sil’s alter-ego (affirmed by their common names which are palindromes of each other); she finds Cavanosa lovable and attractive because she has not had contact with other men...If his words introduce a note of ambiguity by suggesting that love is still only possible as a destructive act ending in death, his tender kissing of Lys and the fact that he speaks dreamily to her justify, at least partially, the feeling of hope for the protagonist’s liberation from the imprisoning influence of the archetypical devouring mother” (Podol, 1978 pp 65-66). “Not recognizing a moral standard, living in a world of his own obsessions, Cavanosa encounters with every entrance into the other world of the park a way of being and acting that is the very contradiction of his own...All of Cavanosa’s actions are the opposite of what one would expect: love brings forth only his scorn, any affection shown him incites him in anger, any kindness offered him produces a cruel reaction...The result is a character not only different from the others, but one who realizes he is different and is able to observe himself functioning with ironic distance...Unlike Sil, who had to be told what was necessary to please Cavanosa, Lys instinctively knows...Lys is the woman-child prostitute who is familiar to the early plays of Arrabal...[The worlds of Cavanosa and Lys] coincide. She was tied to her mother physically just as Cavanosa is tied to his mother emotionally; she makes whips, and he uses them; she paints dolls, and Cavanosa ‘loves’ them. Cavanosa’s mother is authoritarian, sadistically cruel, and classically vindictive. The power she exercises over her son is slowly failing, and she knows that she will soon be replaced by one of the girls Cavanosa meets in the park during his daily ritual...What is more, she knows that her son wants to kill her...She knows that her son does not have the strength to kill her, and consequently she ever so tenuously maintains control over him...His fear of impotency is in part allayed by his masturbatory activities with his life-sized dolls, and his oedipal anxieties are in part allayed by the daily wooing and murder of a girl he meets in the park. Cavanosa, however, is not able to distinguish between the fantasies and reality. In effect, his fantasies are his reality...until he meets Lys, who is able to participate in his fantasy world turned reality. Lys, of course, is only a replacement for his mother and his dolls. She allows him once and for all to externalize the relationship that he has imposed upon his mother and that she in turn has imposed upon him” (Donahue, 1980 pp 17-21).
"Considering his plays as a corpus, one can classify the Arrabaldian universe by extracting eleven primary features:
1. A half-dreamed, half-mythical realm of youthful reverie, sometimes childish; a sort of playful quasi-paradise where children's naughty games turn into handcuffed and chained torture, even to unrepentant murder.
2. Unexplained co-existence of nostalgic, simple-minded childlikeness with adult ambiguities. (A mother-fixated hero, with tendencies to misogyny, is prototypical of this double nature).
3. Obsessive tension of victims confronting torturers, dramatized mythically.
4. Rapprochement of mirth and fright; similarly, grotesque to-and-fro swings of opposite emotions.
5. Role-multiplying or androgynous characters.
6. The police-state metaphor: inquisition, torture, despair, violent death, betrayal of one family member by another.
7. Inverted Christianity, mystic emblems, blasphemy, erotic sensationalism, bizarre ceremonies and rituals, alliance of wild eroticism and death; simultaneity of devout and sacrilegious motifs.
8. Fundamental counterpoint of illusions within illusions.
9. An impetuous, sometimes patchy style; an uneven, coursing, or savage dramatic rhythm dependent on extravagant shock effects.
10. Outlandish visual imagery: dwarfs, giants, hunchbacks, huge balloons, a robot chess player, whips, coffins, nude and voluptuous cadavers.
11. Mythical or metaphorical substructure, interconnecting various esoteric patterns of coherence" (White, 1971 p 99).
=="The automobile cemetery"==
[[File:AUTOMOBILE GRAVEYARD - NARA - 545545.jpg|thumb|Conflicts arise in a junkyard inhabited by people]]
Time: 1950s. Place: France.
Text at ?
An energetic Lasca encourages an exhausted Tiossido to jog around a junkyard, while an elegant-looking butler, Milos, takes orders for next morning's breakfast among assorted people living inside old and discarded automobiles. Lasca also encourages his wife, Dila, to kiss her customers. On noticing her reluctance, he smacks her on each hand with a ruler. As Dila, heads towards various car occupants to offer sexual favors, she meets Emanou, born in a manger, son of a carpenter and a woman named Mary, who expresses a desire to lie with her. "We will turn about, embracing, like two underwater squirrels," he proposes. She accepts. The next morning, Emanou announces that police officers are out to arrest him for playing the trumpet to the poor. Incensed on seeing Dila with a man, Milos grabs her by the hair and throws her down. On this day, the roles of Lasca and Tiossido are reversed, the latter appearing more energetic. When Emanou's friend, Topé, learns there is a reward out for his arrest, he offers to betray him to Lasca and Tiossido with a kiss. Undisturbed, Emanou offers Topé and Dila almonds from a bag. "If ever the cops capture you, we'll eat the almonds in memory of you," Dila declares. When Topé kisses Emanou, Lasca and Tiossido promptly arrest him. After Tiossido wipes his hands of this event, they take Emanou out to be whipped. He is next seen on a bicycle with his arms stretched out, on which Dila wipes the sweat off his face before he is taken away. The next day begins as any other, with Milos and Dila at their regular chores.
=="Guernica"==
[[File:Bundesarchiv Bild 183-H25224, Guernica, Ruinen.jpg|thumb|Guernica, Spain, in ruins after being bombed, 1937]]
Time: 1930s. Place: Guernica, Spain.
Text at ?
On her way to the bathroom, a bomb fell on the building, so that Lira lies buried under mounds of rubble from which her husband, Fanchou, cannot extricate her. He seeks to encourage her, but a fall of stones hurts her arm, which bleeds profusely. A writer and a journalist arrive to survey the damage caused by bombardments throughout the city of Guernica. "Add that I am preparing a novel and perhaps even a film on the civil war in Spain," the writer declares. To help pass the time with his wife, Fanchou suggests he tell her a story. "Do you want the one about the woman who was in the bathroom and who remained buried under mounds of rubble?" he asks. To amuse her further, he grimaces like a clown, but Lira is unable to see him. She asks whether the tree nearby is still intact; he answers that it is. While seeking yet again to save her, Fanchou is pushed by an army officer, who impedes his progress and then leaves without a word. Unable to accomplish anything further, Fanchou gives her a child's balloon. A woman and a little girl pass by, the former pushing a wheelbarrow containing dynamite. The balloon bursts, leaving Lira to complain about her condition. The army officer returns, who laughs while eating a sandwich, then goes away again. Fanchou asks Lira why she never had lovers. "That would be chic," he asserts. "You never think of me...When I take off your clothes in front of my friends, you always look disgruntled." When suggesting she would perhaps be comforted by the presence of a priest, she reminds him that they are atheists. "Who, us?" asks a surprised and frightened Fanchou. The woman and the girl return, the woman carrying on her back armements of various kinds. Fanchou becomes all the more frustrated at being unable to help his wife. "It's your fault. Such a mania you have, reading in bathrooms!" he blurts out. The woman and the girl pass by a third time, pushing a cart containing old guns. Now Fanchou suggests that Lira might write down her will. While attempting one last time to save her, he is buried underground himself, a victim of yet another bombardment. The woman returns, this time without the little girl, carrying a coffin. Two balloons rise heavenward. The officer tries to shoot them down, but is unable to. The voices of Fanchou and Lira are heard above, laughing.
=="The grand ceremony"==
[[File:Life Size Doll at AVN Adult Entertainment Expo 2009.jpg|thumb|A modern Casonova collects life-size dolls to present to himself the grand ceremonial]]
Time: 1960s. Place: France.
Text at ?
A hump-backed Cavanosa type meets by chance a woman named named Sil in a public park. Alhough he appears rough, she agrees to stay with him. Her boyfriend, kind and considerate, shows up to take her away, but she prefers to stay with the rude stranger, until he tells them both to go away. She does so but then returns armed with a whip. He nevertheless becomes even ruder, kicking her and trampling over her. Then he asks her to wait outside his house for a light signal, where she may help him remove his mother's body, whom he says he has recently murdered. However, his mother is not dead. She begs him to avoid women, who would only steal his money. He sits on her knee, then brings her as a gift a small coffin containing a doll. She calls him a monster, which he deprecates. She next asks to see his knife and then requests him to strike her with it, but he cannot. They appear to be reconciled somewhat. Then she bites him on the mouth and starts to reminisce. "Another time, when you did not want me to go out without you, you nailed your hand on the door leading outside, threatening to stay like that until my return," she reminds him. She notices legs protruding from beneath his bedcovers, which he explains as being one of his dolls he is in the habit of caressing. When the mother leaves, Sil knocks and enters the room. When Cavanosa dresses her up as a Christ-like figure, she agrees to die for him. She also notices the legs beneath the bedcovers. It is not a doll but a dead woman dressed exactly as she is, whom she helps to carry behind a screen. Sil's boyfriend shows up again, to whom Sil explains what she has done in the room, but when she sets aside the screen to show the carcass, it is no longer there. Cavanosa suddenly appears and grabs the boyfriend, ties him up, and threatens him, but, in the end, lets him go. The mother returns and watches outside the window while police officers take away a body, explained by Cavanosa as the one he killed the day before yesterday. "I told you not to leave her in the cellar," she reproaches him. Cavanosa wants Sil to go away, but she insists on staying until he agrees to turn her into her mother's slave. The next night, he meets another woman named Lys, with a similar disposition as Sil's. He is rude to her also, but yet she still wants to remain with him, retrieving for him a whip taken out from beneath her skirt. He decides to take a doll out from his car and go away with her.
=Jean-Claude Brisville=
In post-absurdist theatre, there are several trends of note, including the return of history plays, though largely imagined in the case of "L'entretien entre M. Descartes avec M. Pascal le jeune" (The dialogue between Mr Descartes and the young Mr Pascal, 1985) by Jean-Claude Brisville (1922-2014), based on the single meeting of the two mathematicians and philosophers in 1647. Brisville also wrote two other history plays: "The supper" (1989), based on the conflict between the 19th century statesman, Talleyrand, and the minister of the police, Joseph Fouché, and "The antechamber" (1991), based on the relation between Marie, marquise du Deffand, and Julie de Lespinasse. Her eyes failing, the marquise brings over to her house a bastard daughter of her brother, Julie, as her reader. The marquise's house first attracts intellectuals of all sorts until she distances herself from the most liberal ideals taken up by Julie, whose antechamber draws jealousy from her protectress, from whom she is forced to leave.
=="The dialogue between Mr Descartes and the young Mr Pascal"==
[[File:Frans Hals - Portret van René Descartes.jpg|thumb|Portrait of René Descartes (1596-1650) from a drawing by Frans Hals (1580-1666)]]
[[File:Blaise pascal.jpg|thumb|Drawing of Blaise Pascal (1623-1662)]]
Time: 1647. Place: Paris, France.
Text at ?
René Descartes meets Blaise Pascal, two mathematicians and philosophers with a particular interest in religion. Descartes admits that so far, knowing the dangers inherent in expressing opinions about religion, he has "advanced masked". Unlike Descartes and despite his achievements in mathematics, Pascal is beginning to lose interest in science, because he is looking for certainties only religious faith can supply. Pascal is outraged at Descartes' faith in numbers. "Can a Christian reason thus?" he asks rhetorically, "Don't you see that reason will make God superfluous to you?" Descartes denies that. Fearing God and his swaying lack of faith, Pascal wishes to work only for his salvation, while Descartes is confident of that while at the same time working on scientific subjects. Pascal asks him to write a letter in support of a fellow Jansenist unjustly accused by Jesuits, the dominant movement of the time. Descartes refuses, for he has no wish to be involved in superfluous religious quarrels. Pascal is disappointed and accuses him of cowardice, which the other denies. Another subject of controversy is Madame de Sablé's decision of dancing the night on the same day she had received communion, which Descartes considers a trivial matter, to Pascal's astonishment. Pascal further alienates his fellow philosopher by declaring that he welcomes tribulations, for physical pains "unite me with Christ," he says. Dismayed at Pascal's austerities, Descartes described an anecdote about a man who once saved his life when he was trapped beneath a horse and likely to freeze to death. That man, despite his charity and goodness, later lost his position as an ecclesiastic because of Pascal's accusations of his eccentric beliefs and has now become a pauper: is this serving God? Descartes concludes by opining that matters relating to the dangers of damnation are debatable and that no certainty is possible. Pascal does not agree. "The all I aspire to is beyond mathematics," he affirms.
=Bernard-Marie Koltès=
Also of note in the post-modern period stands Bernard-Marie Koltès (1948-1989) with "Le retour au désert" (Return to the desert, 1988).
In Return to the desert, “although Koltès’ play does not explicitly state it, Mathilde and her children are ‘pieds-noirs': French settlers in colonized North Africa. Numerically weak but economically and politically powerful, the ‘pieds-noirs’ were an ethnic minority but belonged to the dominant colonial class. By the end of the war 90 per cent- around one million- uprooted and repatriated to France owing either to the conflict or to the fact that they were no longer welcome in an Algeria seeking independence…Mathilde exiled herself to Algeria after being shamed by her family and the French authorities for a liaison during the Second World War with a German soldier, which presumably produced her son Édouard, born around the time she left...Mathilde’s daughter Fatima is presumably of Algerian parentage, given her Arabic name” (Delijani, 2024 pp 370-374).
"Mathilde’s arrival "disturbs everything in the upper bourgeois household: the relationships within the household, where Adrien is kept in a state of dependency and where his second wife, Marthe, is drunk most of the time, as well as the relationships outside the town, where a clubby contacts with the local powers will be upset. Mathilde provokes this revolution partly out of sheer cussedness, partly because she wants to regain her part of the inheritance and partly because she is genuinely upset at the death of a first wife, Marie...Mathilde and Adrien can only relate to one another through activities of barter and exchange, and their children become commodities just as much as the house and factory that they have inherited from their father” (Bradby, 1991 pp 276-277). "Violence simmers in every scene, from the very beginning when Mathilde Serpenoise, returning from Algeria to her ancestral home, is unable to greet her respectable bourgeois brother, Adrien, without the pair insulting one another. This scene is comic because of the ironic distance set up between Adrien's pretensions to middle-class dignity and the vicious dog-fight that in fact breaks out between him and his sister. The violence in this play is constantly viewed in an ironic perspective. Towards the end of the play, the city fathers (including Adrien) are involved in a successful plot to plant a bomb in an Arab café. At the time when the bomb explodes, Adrien's own son is inside, seeking sexual adventure, and when he staggers home, bleeding, to confront his father, all Adrien can do is to slap him for being out of the house without permission" (Bradby, 1994 pp 377-378).
“Exiles, foreigners, and outsiders are [strangers] who inhabit Koltès’ dramatic landscapes. So many of his characters are on the run so to speak, having left the homeland for a country where their difference is both visible and audible. Mathilde questions her homeland in Return to the Desert. ‘What country do I belong to?’ she asks. ‘Perhaps your home is the place you're not at?’...Mathilde is condemned to wander a landscape where she hovers between foreigner and native. She first appears as a refugee from the escalating conflict in Algeria; she left Metz fifteen years earlier having been publicly humiliated by her brother and his cronies she leaves Metz for a second time again at the end of the play with her bickering brother in tow...For Mathieu...families are simply about inheritance; coercive structures where misogyny is passed from father to son, children are raised through ‘kicks and wise precepts’, and fathers trapped forever in a destructive adolescence, a life spent with school friends indulging in conspiratorial games...Masculinity is exposed, wounded, embattled, and threatened in the worlds created by Koltès. In Return to the Desert , it is articulated by Adrien's impressionistic son as ‘slapping other people's faces...mates to drink with and fight with...enemies to kill and defeat.’ Its workings are exposed and ridiculed as the farcical camaraderie of the town officials (represented by the prefect of police, solicitor, prefect of the department, and Adrien) in scene 9, plotting behind closed doors against those who question their excesses” (Delgado, 2011 pp 28-31).
“Koltès’ plays are distant from narrative-driven traditions of contemporary dramatic writing. The behaviour of his characters is constantly surprising, resisting the operation of psychological cause and effect that lies at the heart of much realistic playwriting. Koltès’ plays celebrate unpredictability and that which lies unsaid; they have an antipathy to the realistic depiction of character habitually associated with method acting” (Delgado and Bradby, 2015 p 141).
=="Return to the desert"==
[[File:Dunes of Algeria.jpg|thumb|After spending 15 years in Algeria, Mathilda discovers an even worse desert in France. Photo of dunes in the Algerian desert]]
Time: 1960s. Place: France.
Text at ?
After fifteen years of absence in Algeria, Mathilda returns to France with her daughter, Fatima, and her son, Edward, in the house left occupied by her brother, Adrian, who assumes she has returned for only a brief stay. Not so, as she specifies from the start. She intends to remain in the house that belongs to her, just as the factory belongs to him, as decided when their parents died. Adrian is upset, being responsible for the improvements he has made to the house, and so to some extent rightly his as well, but nevertheless forced to accept. When his son, Matthew, insists on continuing to have a room of his own instead of sharing it with Edward, he smacks his face. Fatima confesses to her mother she has met someone in the house garden, but when asked who it is, she refuses to tell. In the garden, Adrian catches Matthew trying to leave the family grounds to join the French army in the Algerian war of independence (1954-1962). "I do not want to inherit," the frustrated Matthew declares, "I want to die uttering beautiful phrases." Adrian prevents it. On seeing a police commissioner called Planters in the house, Edward jumps on him and immobilizes him. The bewildered man asks Mathilda about meaning of such an act. She answers that fifteen years ago, the man was one of those responsible for her exile, when he accused her of indecency for bearing a child out of wedlock. To humiliate him, she cuts his hair off. On seeing him thus exposed, Adrian suggests that the humiliated police commissioner may avenge himself by spying on Fatima and locking her up as a madwoman, all the more so because she pretends to have seen the apparition of his dead wife, Mary. Confronting each other with their separate needs, Adrian and Mathilda quarrel on several subjects. Adrian is especially worried about how Edward encourages Matthew to follow him in Arab cafes. Adrian strikes Mathilda who strikes him back. They are separated by Edward and a servant, Aziz. In the garden, Matthew tries to engage in amorous relations with Fatima, who repulses him. Unaware of this aspect, Mathilda encourages Matthew to continue friendly relations with both her children. A distraught Fatima points towards what seems to her as Mary's ghost, but her mother sees nothing. At night together in bed, Mathilda tells her daughter she feels she is in danger in her brother's house. She would particularly like to know how Mary died. Adrian enters to say that Matthew has been recruited in the army. He has no confidence that his son will come out of the war alive. When Fatima expresses her wish to return to Algeria, Mathilda does not answer. Adrian meets Planters and a lawyer, Borny, late at night to await developments about the bomb they planted at an Arab cafe. To their consternation, the explosion kills Matthew and Aziz. Adrian and Mathilda decide to move to Algeria, away from this desert of a house.
=Yasmina Reza=
[[File:Yasmina Reza at XIII Prix Diálogo - Ceremonia de entrega.jpg|thumb|In Reza's "Art", men’s friendship is put to the test when one of them appears to have made a bad purchase]]
Still in the post-absurdist tradition, Yasmina Reza (1959-?) wrote "Art" (1994). “On one level, the play is a satire of the modern art market, [on the other] merely a pretence to explore the trials and tribulations of friendship” (Glynn, 2020 p 266).
“Reza probes the ambiguities of art and affection in scenes that are taut, ingeniously structured, and often hilarious...Does an art work have inherent value, or is value created by the market, or the era- or by a spectator's caprice? Is there such a thing as disinterested friendship?...Reza gauges the temperaments of her characters with a surgeon's precision, and the script's ever-changing currents of anger, resentment, and sympathy create astonishing suspense in a play that is basically one long discussion. The dialogue has the paradoxical versatility of an optical illusion: Serge, Marc, and Yvan criticize each other by criticizing art, and each betrays himself when attacking the other guy. And their quibbles over words and concepts (is it the white in the painting, or the idea of whiteness, that is so upsetting?) could admit them to a deconstructionists' convention” (Wren, 1998 p 2).
“Serge sees something worthy in that which Marc finds worthless. And this threat- ens their friendship…One of the earliest conceptions of friendship in Western thought is Aristotle’s notion of what he calls the friendship of character or character friendship. This is not the only type of friendship there is- there are also friendships based on such things as expediency- but, for Aristotle, character friendship is the highest sort. This is the type of friendship that obtains between equals, people of equal virtue and excellence...Aristotle suggests that without friends, friends who are our equals, we have no way of objectively assessing our own qualities, no objective measure of assessing whether or not we are virtuous or excellent. Genuine self-knowledge requires an outside viewpoint to validate it…Now if we suppose that the friendship between Marc and Serge is of this sort, then it is easier to understand the violence of Marc’s response. Serge’s incomprehensible appreciation, from Marc’s point of view, of the painting implies that Serge and Marc are not alter egos, and this, of course, threatens Marc’s and then Serge’s sense of who they are... If Marc and Serge are to sustain their friendship, they must in some way re-establish a shared sensibility. Marc must come to see something of value in Serge’s painting. And this, of course, happens, though through a very odd chain of events...Speaking figuratively, friendship has prompted Marc to see something in a new light, to find value where Serge does, though not exactly in the way that Serge does, and this makes possible a renewal in their friendship, underscoring the potential of art not only to confirm the existence of friendship, but the potential of friendship to expand the excellence, in this case of the sensibility, of the other self” (Carroll, 2002 pp 200-206). Although Marc may be sincere in his new perception of the painting, his new opinion can also be interpreted as the “renunciation in the desire for power” to secure a friendship (Karwowski, 2009 p 78).
"Dermatologist Serge harbours artistic and intellectual ambitions; aeronautical engineer Marc is more down to earth and finds the purchase of the painting, which he describes in no uncertain terms as 'that piece of shit', risible. The two men, each of whom has been successful in his chosen career, drag the third character, Yvan, into their argument. For his part, Yvan sells stationery and is a rather clumsy procrastinator. Clearly, the play’s success is not entirely due to its plot, with its various questions: whether the friendship will endure despite personal stubbornness or social divides, whether or not the Antrios can be classified a work of 'art', or whether these 'single men' (one is divorced, one is experiencing marital problems, and the other is about to get married- his wedding takes place off-stage in the course of the play) can manage to construct a durable relationship. And neither is the play the sum total of its constituent themes, albeit ones that will be familiar to audiences on both sides of the Atlantic: the fragile nature of friendship, snobbery, money, social climbing, solitude, the pursuit of happiness, and the seditious role of modern art" (Jaccomart, 2013 p 234).
The play “is fashioned around revelations about the power dynamics and the emotional contortions of modern male friendship. As the plot progresses, the characters all heavily criticize each other’s sexual partners, careers and familial failings. Throughout, the battle is conducted with a constant eye on the painting until Serge invites Marc to vandalize it with one of Yvan’s pens. Their relationship, ‘destroyed by word and deed’, is renewed on what Serge calls a ‘trial basis’- the play ends where Marc looks afresh at the painting and instead of seeing a sea of white, sees ‘a man who moves across a space and disappears’. The play explores in part the paradox of both the divisive and the conciliatory power of art: through the disagreement about the painting the men deconstruct and then reconstruct their relationships with sharpened wit and, at one point, physical as well as verbal violence” (Gale, 2015 pp 197-198).
=="Art"==
[[File:Edmond_Boissonnet_-_La_toile_blanche_n°2.jpg|thumb|Friends are puzzled after Serge’s purchase of a painting depicting white lines on a white background. “White painting no 2” (1985) by Edmond Boissonnet (1906 -1995)]]
Time: 1990s. Place: Loiret region, France.
Text at https://pdfcoffee.com/art-yasmina-rezapdf-pdf-free.html http://pvp.org/Play%20Reading/ART%20by%20Yasmina%20Reza.pdf
https://kupdf.net/download/art-the-play-yasmina-reza-english-pdf_59f0c2bbe2b6f598324f005f_pdf
Serge has bought an expensive painting by Antrios consisting of whitish lines on a white background. His friend, Marc, is devastated at his lack of judgment. To make light of the situation, he laughs. Serge does not. When Marc announces the purchase to his other friend, Ivan, the latter is much less upset. Ivan even says to Serge he likes the painting. Serge laughs light-heartedly, accompanied by Ivan. Serge tells Ivan that Marc's laugh was "sardonic, without charm." When Ivan reports their talk to Marc, the latter specifies that Serge laughed just to please him, in no way for the right reason, because the painting is ridiculous. Serge reports to Marc that Ivan likes the painting. Marc reports he has had somewhat a change of heart, asking himself the question: "Is the yielding to this incoherent purchase not a highly poetic gesture?" Ivan is soon to be married but is in conflict with his girl-friend over the invitation card to the wedding. She wants her stepmother to be included on the card, but since Ivan detests his own stepmother, he refuses to have her included. Marc and Serge agree that he should cancel the wedding. But Ivan says he cannot, because his boss is her uncle. Marc is exasperated by Ivan's attitude, "because he is a little courtesan," he says, "servile, fooled by money, bluffed by what he thinks is culture, culture that I definitely vomit away, moreover." At this point, Serge challenges Marc. "Who are you to impose the law?" he asks belligerently. On his part, Marc is unable to come to terms that Serge likes the purchased painting while the latter is indignant that Marc is never hurt by his opinion. Serge specifies that he never voiced the negative opinions he holds about Marc's girl-friend. When Marc insists that his friend reverse his opinion of her, he refuses. They fight. In the scuffle, Ivan is inadvertedly hit on the ear. They stop to attend him. Marc at last reveals the main reason he is so upset about the purchase, that he can no longer represent himself as Serge's mentor in measuring all things by his opinion. To prove he considers their friendship more important than the painting, Serge permits Marc to damage it with a felt-tip pen, to Ivan's horror. Marc’s rendering changes his perception of the painting. He now sees value in that abstract work of art, though different from Serge’s view, which draws them closer. Serge and Marc are able to repair the damage. When asked whether he thought that the potentially damaged painting could have been repaired, Marc admits he did not think so it could. Serge lies by saying that he did not think so either.
=Jean-Marie Besset=
[[File:Jean-Paul Besset Europe Ecologie 2009-06-03.jpg|thumb|Besset showed conflicts arising between students at a prestigious business school. Photograph of the author, 2009]]
“Grande école” (The best of schools, 1995) by Jean-Marie Besset (1959-?), written in a more traditionally realist style, concerns student interactions at a prestigious school of commerce.
=="The best of schools"==
[[File:Escp-Paris.jpg|thumb|Superior School of Commerce, Paris]]
Time: 1990s. Place: Paris, France.
Text at ?
Late at night, Agnes prepares tea for herself as Paul joins her. She suspects that Bernard, Louis-Arnault, and Vieux, roommates of his, conspired to leave the apartment during the week-end so that he could get her to bed. In particular, she guesses that Louis-Arnault suggested that he call her up. She proposes a deal: which among the two will first be able to seduce Louis-Arnault? If she wins, she and Paul will live together in their own apartment; if he wins, she will leave him. Later, while Agnes and her friend, Emeline, await the arrival of the male students, they argue over the interpretation of a current event regarding murder. Emeline leaves as, laden with a heavy package, Bernard steps in to explain that Louis-Arnault lags behind because he is jogging. To their horror, Louis-Arnault enters with his side covered with blood. Paul joins the two in helping their friend head for the hospital. While Bernard and Paul study, the former is unable to concentrate and leaves the room because the latter can only philosophize about what happened to Louis-Arnault. When the latter enters in his bath-robe in a fevered state, he, too, dismisses Paul’s thoughts as devoid of originality. Nevertheless, Louis-Arnault attempts to help Paul in his school-work. “What would really help me,” Paul says, “is that you handle the case and that you put my name on it,” to his friend a bewildering idea. At 3 AM, Louis-Arnault is startled to see Agnes enter their apartment, the door being carelessly left unlocked. Agnes reminds Louis-Arnault of the tender feelings he expressed towards her on his hospital bed and that it was she, not his friend, Emeline, who visited him at the hospital. As they are about to kiss, Emeline startles them by entering from the next room, sleeping there alone as a temporary replacement for Vieux, the absent roommate. “I thought that we had between us a certain form of intimacy,” Emelin declares. “Which does not give you the right to make a scene,” he responds. “Sex binds but does not fixate,” Agnes declares. “I am not talking to you,” Emeline retorts and leaves on seeing Louis-Arnault uninterested in pursuing the discussion. He leaves and then returns with money so that Agnes can head back home, but she declines the offer. He tears up the bills and throws them on the floor. She picks them up. When Bernard returns to the apartment to pick up forgotten lecture notes, he discovers the presence of a stranger, Mecir, Paul’s apparent bedmate. As Mecir leaves to take a shower in their apartment, Louis-Arnault asks Paul whether he will join Agnes to a Saturday night party at her school, having been invited, but Paul is unsure whether he himself is invited. Louis-Arnault suddenly backs off and lifts a chair in self-defense on seeing Mecir come out from the bathroom, for Mecir was the man who stabbed him and now quick to disappear. Later, Emeline informs Paul that Louis-Arnault is leaving his apartment to live somewhere else. When Louis-Arnault shows up to take out his stuff, Paul sarcastically enumerates the advantages of his future business career. Instead of responding, Louis-Arnault heads out to Emeline’s apartment along with her. Agnes tells Paul that she almost consented to sleep with Louis-Arnault; in turn, Paul tells Agnes that he himself succeeded in sleeping with Louis-Arnault. She thinks he may be lying, but,in any event,leaves him.
=Gildas Bourdet=
[[File:Recueil. Photographies. Portraits de Gildas Bourdet. Festival d'Avignon. 1983 - Fernand Michaud - btv1b531264622 (5 of 8).jpg|thumb|Bourdet disclosed troubles arising in an unserviceable service station. Photographs of the author, 1983]]
Still in the realist style, Gildas Bourdet (1947-?) wrote “Une station service” (A service station, 1985). Bourdet also wrote “The spitting of the moon” (1986). Like Behan’s The Hostage, the action takes place in a brothel-bar with a conservative owner, a soldier, and two homosexuals. Réglo, a pimp, threatens to send his whore surnamed Princess to an even worse place and as a result she tries to kill herself by slitting her wrists. A soldier worried about missing a train-boat connection to head overseas with his squad, a failed rock artist, Banana, who comments in a detached way on the action, a rich and crazed trouble-maker, The Belch, who challenges everyone, and a whore protected by a separate pimp, Paquita, form part of the unsavory lot. Unlike the general late 20th century vogue of presenting realistic dialogue in a non-realistic play structure where, for example, characters speak directly to the audience, Bourdet presents realistic dialogue in a realistic play structure.
== “A service station”==
[[File:Closed Gas Station - panoramio.jpg|thumb|Madeleine wants to sell her poorly attended service station, but is distracted by her husband’s return after an 18-year absence]]
Time: 1980s. Place: Near an airport, France.
Text at ?
At a service station on a road recently blocked, a garage mechanic, Samson, repairs a Peuguot car while Tut-Tut, the mentally defective teenage son of Theresa, a schoolteacher and eldest of Madeleine’s three daughters, is urinating in the corner. Unfortunately, the stream reaches Samson lying under the car. A biker, Winnock, expects Doris, the youngest among the daughters, to accompany him outside of France, but being under age, she needs her mother’s consent. With 15 days till examination time, she is unwilling even to ask her. A stranger to Samson next appears for permission to use the telephone, a man named Humbert, who wishes to speak to Madeleine, his wife, owner of the gas station, rather than show up barefaced after abandoning her 18 years ago, explaining to her that he has one month to live with a cancerous growth in his lungs and therefore wishes to settle their finances before his death. In the meantime, Madeleine’s second daughter, Maud, once divorced, discusses marriage plans with her fiancé, Thomas, a medical student, yet immediately after he leaves, she calls up another man for a secret rendez-vous. Maud and Doris meet their father, who repeats that he came back to avoid legal difficulties after his death. To Maud and Theresa, Humbert specifies that he left home to become a painter, now possessing 100 potentially valuable paintings to bequeath. While he is alive, Madeleine is unable to sell the gas station without his consent. With nowhere else to go, he heads for Tut-Tut’s cabin in the woods. The next morning, Maud wakes up next to her lover, Richard, inside the Peugeot car, no one noticing except Samson, who sarcastically hangs her panties and hose on the car’s antenna. Doris informs her mother that she wants to leave home before Maud’s wedding. After a night in the forest, Humbert adds another reason to explain his absence, the discovery 18 years ago of his wife’s letters from her adulterous lover. Surprised but remorseless, she repulses his wish to stay at her place until his death. Winnock returns irate because Doris failed to show up at their proposed meeting place, though gladly holding her father’s written consent, enabling them to leave for a rock concert at San Sebastian, Spain. However, Madeline declines to give hers until Doris obtains her high school diploma. Richard comes back to recover his missing wallet and knife, left in the car. Unaware that the man is her sister’s lover, Theresa hops into his car to buy her sister’s wedding present. The night before their wedding day, Thomas comments favorably on Maud’s wedding dress, but once again as soon as he leaves, she calls up Richard, only she can only reach his answering machine. “It’s me again,” she says on the phone. “I long for you, for us. I need you, we must see each other.” She is startled when he suddenly shows up with news of his intention to join a friend, owner of a video store in Tahiti. Nevertheless, he still wants her, and, after some hesitation, so does she, until Pinnock interrupts their tête-à-tête, ready to head towards Spain. But, surprised to see Richard, whom she saw a while ago in Theresa’s company, now in Maud’s, Doris has no wish to follow Pinnock at the moment. Maud worries about what Richard was doing with Theresa. As a result, she drinks pastis in excessive amounts, then wobbles off into the woods to see her father. In the meantime, Samson has repaired the car. On the wedding day, Thomas is distressed to find only Richard on the premises, Theresa’s invited guest, as well as a large number of abstract paintings hung on the walls throughout the place. Thomas recognizes Richard’s car as the one that recklessly shot in front of his a few days ago. Fifteen minutes late, the entire family shows up to head for city hall, except that Maud’s wedding dress is torn and dirty and Humbert’s clothes are muddied from lying in the woods. Exasperated, Thomas grabs Maud, at which she calls Richard for help. When Thomas wonders why she would call a wedding guest for help, she blurts out that Richard has been her lover for a few months, at which Theresa is stunned. Threatened by Thomas, Richard takes out his knife, Thomas a drive shaft while an overexcited Tut-Tut pours petrol over Richard and Madeleine takes out a lighter to stop the fight. Disgusted over the entire situation, Thomas throws his ring at Maud’s feet and leaves. Intending to close up shop, Madeleine offers Samson the Peugeot, but he needs to think it over before accepting. Richard leaves open the possibility of Maud joining him. Theresa considers that comment indelicate towards her, but yet finds the man irresistible while Doris is still uncertain about whether to follow Pinnock.
{{BookCat}}
2085jobrovmwnudu43o4smkijvoh95n
MINC/Future/Actions201102
0
249138
4672163
4388959
2026-09-24T15:32:12Z
R. Henrik Nilsson
3395618
commited > committed
4672163
wikitext
text/x-wiki
=Initial List of action items to improve MINC=
==Make list of code/programs/packages available==
We need to generate a list of all software tools written with MINC that have been created (in the BIC or elsewhere). For each item in the list, we need to know at least
* the name of the software
* a short description of what is does, list of functions, list of parameters
* who is the author of the software
* who maintains the software
* is the software publicly available? and if not, can if be made available?
* is documentation available? and if so, where is it
* is the software stable or still in development (if the former it could potentially be in a massive MINC bundle).
* what are the software's dependencies
* minc1/minc2 compatibility
* need makefile for all of minc tools (Vlad has a build all makefile)
* need makefile to build minc library only (subset of Vlad's makefile)
an initial [[/minctoollist/|list of minc tools]] is here
==Make a list of documentation available==
For each piece of documentation,
* what software or process does it document
* who wrote the doc, who maintains the documentation
* user doc or tech doc
* rating for the documentation (quality control, reviewed by pro)
==Need plan for future documentation==
* wiki.bic.mni.mcgill - should be open to the outside (I think)
:: I am not adverse to using a BIC hosted site for documentation but would prefer a most "neutral" hosted site to encourage others to contribute. - AJ
:: If we are to use NITRC as the main host of MINC, why not use the NITRC wiki as a developer's wiki for technical stuff, early stubs of documentation and discussion pages like "the future of MINC". I suggest that the MINC wiki book should be reserved to clean, stable and user-oriented documentation. BTW, it would be good to be able to produce a PDF as well. - PB
* need examples of good documentation to use as a guide
:: FSL has good docs
:: SPM on wikibooks - http://en.wikibooks.org/wiki/SPM - AJ
:: Check out the NIAK pdf overview - http://www.nitrc.org/frs/downloadlink.php/2726 - PB
:: any other examples?
* API docs vs USER guides
:: they serve very different purposes. users could be engaged to write user manuals
* need to find out what documentation already exists
* Training / courseware
:: a first step would be a workshop for existing minc users & developers. I volunteer to help set that up in June soon after or before HBM (probably after). We would probably need better documentation and a clear idea of what softwares can be considered part of the MINC suite before organizing an actual minc course, but this clearly could happen in the near future. - PB
* need a good MINC preamble
:: why is MINC worth the trouble? what makes it so good?
:: there are two "introduction" and "history" section on the wiki book. It might be better to merge those. - PB
== Evaluate NITRC as a host of MINC tool development ==
We need to evaluate NITRC ( http://www.nitrc.org ) to host the MINC development project. We need to know
* does NITRC use a distributed version control system
:: Yes, GIT. I have already done a little test project with mincmorph and it works well. GIT is not yet integrated into their source code viewer thing but it is planned. At least with GIT you can clone to multiple repositories. (https://github.com/andrewjanke/mincmorph)
* does it allow a forum? a wiki?
:: Yes and Yes. And the wiki on NITRC would be a very good place to host discussions like this -AJ Agreed - PB
* any licensing issues?
:: Not that I can see. In addition, there is no restriction on the license you use for your own package -AJ
* does it have a long future?
:: I have been recently involved in a conference call re the future of NITRC. They are definitely going to be around for the next couple of years. It seems that the NIH is not ready to support them fully in the long term, but they are actively working on an alternative economic model (maybe involving fees or ads) for the future. They are apparently very much committed to exist as a long-term resource. - PB
* any issues wrt NeuroDebian ( http://neuro.debian.net )
:: None, you will note a number of MINC packages in there already (N3, mni_autoreg, minc, classify?) I helped Michael with these many years ago and have always meant to get back to it in deference to my own packaging. I see neurodebian as the way forward for minc packaging at least for debian/ubuntu. My plan was then to use alien to convert these to RPM's for the distro impaired. (CentOS, RedHat, Fedora) - AJ
== Basic strategy for MINC tools development ==
* development of code / potential need for coding guidelines
* documentation for code
* testing suite
* packaging
* MINC1 vs MINC2 support
== Multiplatform development ==
* Platforms to be supported
** Linux (ubuntu, debian, redhat?, what else?)
** MAC
** Windows (see below, next item)
:: I dont think native windows packages are worth the pain they invoke. It's all fine to get the core packages working but we will suddenly find ourselves re-packing parts of CPAN for ActiveState Perl (Perl on windows) to make all the various perl scripts work. That and things like grid engine is just not possible. The only real alternative here is Cygwin, but the packaging system leaves things to be desired. For one there is no way to automate an install with a script, it HAS to be point and click in the first instance. You can then install apt-cyg manually and script the rest from there. The approach of other major packages has been to suggest that windows users use a virtual machine. Most CPU's are now plenty powerfull enough to do this and it will make things a LOT easier for us. We can also piggyback on the neurodebian efforts in this area. -AJ
* how to achieve multiplatform support
** CMAKE? Cpack?
:: MINC already supports CMAKE, I will admit its a bit of a pain to keep both CMakeLists.txt and Makefile.am/Configure.ac up to date in parallel but I have been doing it. -AJ
** what are the options?
:: None. automake/CMAKE is the choice. I still prefer automake as it integrates with deb a whole lot better. -AJ
::: If you want to support Windows, to any extent, CMake is a much better choice, because you only need to maintain the one CMakeLists.txt file, and from that CMake can generate Visual Studio project files (and Xcode projects on Mac OS X). --anon
* resulting packages must be easy to install
* resulting packages must not conflict with existing software
:: On this note, there are other packages out there (I'm looking at you freesurfer) that install a whole minc "distribution" as part of their install and cause all sorts of grief for users as they often contain older versions of the MINC. We have no real way of controlling this. The only "fix" is to add /usr/local/bic/bin after freesurfers path. Still perhaps if we make our own install a whole lot easier then freesurfer would just use our packages. -AJ
== Evaluate pertinence of a MINC Windows .dll ==
* basic MINC API should be supported on windows
* we probably don't have the resources to support windows
* Bert has already done this. See Makefile.msvc-win32 in MINC CVS. It still works with Visual Studio but with Bert now gone I dont see us having the local expertise. (Bert was an ex-windows programmer, we did what we could for him). Still I question the motive of getting the minc API working in Windows. The only use I can see is so that a windows viewer could load MINC files. -AJ
:: re use of minc in windows : if we want minc to be widely used as a file format, it should be easy to interact with on a variety of plateform. For Matlab, it's either I have access to mincheader, rawtominc and minctoraw, or I code something directly based on netcdf/hdf5, which raise some concerns about full compliance to the MINC API.
==Determine how CBRAIN fits in==
I can't speak for Alan, but I would rather say that MINC fits in Cbrain. Cbrain offers a distributed platform for neurimaging analysis. MINC-based pipelines should be available in there (CIVET already does, NIAK fmri pipelines soon will). But Cbrain is not limited to the MINC tools (SPM for example is already integrated to some extent, maybe PLS and NPAIRS too, I am not sure. There are some talks about FSL-based pipelines). I believe there may be ways in which the Cbrain infrastructure could contribute in the future to the development of MINC-related software. This will depend very much on the type of funding that will be found to continue supporting Cbrain, and this is not settled at this stage. - PB
==Evaluate level of NIFTI support within MINC API and MINC Tools==
We need to evaluate the pros and cons of supporting NIFTI files within the MINC environment
points:
* need to verify/test nii2mnc to make sure floats properly supported
* do we want to read NIFTI files with MINC{1,2} API
* conversion nii->mnc and mnc->nii is not a serious overhead; but still a pain for some click&point users
pros:
* could give minc access to lots of users
* There is already a stub function in volume_io to do this.
cons:
* issues with file compatibility in intensity mapping
* issues with spatial coordinate mapping
* MAJOR issues with user understanding of how they can control L-R neuro/radio mapping in their files. I do not want MINC to enter or indeed even entertain the thought of entering this world of pain and gnashing of teeth. I already have users telling that they "dont like MINC because the images display 'funny'". ie: in neuro orientation.. -AJ
{{BookCat}}
sz1bmqd150pz20aahez09wr7iscl0kr
Fractals/Iterations in the complex plane/siegel
0
257183
4672208
4469373
2026-09-24T19:41:20Z
WereSpielChequers
248949
typo
4672208
wikitext
text/x-wiki
'''The problem is that we are exploring environments based upon irrational numbers through computer machinery which works with finite rationals !''' ( Alessandro Rosa )
[[File:Rotational vortex.gif|thumb|right|Rotation around fixed point]]
[[File:Sturmian-sequence-from-irrational-rotation.gif|thumb|right|Irrational rotation]]
[[File:Bad dyadic approximation.svg|thumb|right|Real numbers with no unusually-accurate dyadic rational approximations. The red circles surround the real numbers that are approximated to within error <math>\tfrac16/2^i</math> by a dyadic rational of the form <math>n/2^i</math> For numbers in the fractal Cantor set outside the circles, all dyadic rational approximations have larger errors.]]
"A Siegel disk is a (maximal) domain on which a holomorphic map is conjugated to a rotation, whose angle divided by one turn is called the rotation number." A Cheritat<ref>[https://www.math.univ-toulouse.fr/~cheritat/Exposes/Banff.pdf About Zhang’s premodels for Siegel disks of quadratic rational maps. by Arnaud Cheritat CNRS, Univ. Toulouse Feb. 2011]</ref>
For '''Siegel disc''' <ref>[[w:Siegel disc|wikipedia : siegel disc]]</ref><ref>[http://www.encyclopediaofmath.org/index.php/Siegel_disc encyclopedia of math : Siegel disc ( see discrete case )]</ref> parameter c :
* should be on boundary of hyperbolic component of Mandelbrot set ( internal radius = 1)
* internal angle should be [[Fractals/Mathematics/Numbers|irrational number]] between 0 and 1 .<ref>[https://sites.google.com/site/fabstellar84/fractals/irrational More Fun With Irrational Internal Angles by Faber McMullen]</ref>
Because set of irrationals is uncountable<ref>[[w:Irrational number|wikipedia : Irrational number]]</ref> so the number of Julia sets with Siegel disc is infinite.
=Definitions=
<gallery>
File:Critical orbit 3d.png | Critical orbit tending to weakly attracting fixed point.When point c goes from center to boundary along internal ray for irrational internal angle then critical orbit changes from one point thru spiral to circle surranding fixed point alpha.
File:Critical Orbit for Golden Mean Quadratic Julia set.svg|Critical Orbit, Inner and outer circle for Golden Mean Quadratic Julia set
</gallery>
==Center==
Center of Siegel disc is an irrationally indifferent periodic point.
Mane's theorem :
"... appart from its center, a Siegel disk cannot contain any periodic point, critical point, nor any iterated preimage of a critical or periodic point. On the other hand it can contain an iterated image of a critical point." <ref>[http://www.math.univ-toulouse.fr/~cheritat/Exposes/Rome.pdf Siegel disks by Xavier Buff and Arnaud Ch ́ritat e Univ. Toulouse Roma, April 2009]</ref>
==Center component of Julia set==
In case of c on boundary of main cardioid center component of Julia set is a component containing Siegel disc ( and its center). Critical orbit is a boundary of Siegel disc and center component. All other components are preimages of this component ( see animated image using inverse iterations ).
==Domain==
By a classical (nontrivial) result of C.L. Siegel, for certain irrational values of <math>\alpha</math> the quadratic polynomial <math>e^{2 \pi \alpha i}z + z^2 : \mathbb{C} \to \mathbb{C}</math>
is locally linearizable at 0. That is, there exists a local conformal change of coordinate near zero on which this quadratic polynomial becomes the linear map <math>z \to e^{2 \pi \alpha i}z </math>.
The maximal domain on which one has such a linearization is called the Sigel disk of that quadratic polynomial.
There are fascinating, and mysterious, relations between the arithmetic properties of <math>\alpha</math> and the geometry of the Siegel disks. Davoud Cheraghi<ref>[https://www.ma.imperial.ac.uk/~dcheragh/Siegel.html Davoud Cheraghi home page]</ref>
==Radius==
===Conformal radius===
Conformal radius <ref>[[w:Conformal radius|wikipedia : Conformal radius]]</ref><ref>[http://www.scholarpedia.org/article/Siegel_disks/Quadratic_Siegel_disks scholarpedia : Quadratic Siegel disks]</ref>
In mathematics, the '''conformal radius''' is a way to measure the size of a simply connected planar domain ''D'' viewed from a point ''z'' in it. As opposed to notions using Euclidean distance (say, the radius of the largest inscribed disk with center ''z''), this notion is well-suited to use in complex analysis, in particular in conformal maps and conformal geometry.
'''Definition'''
Given a simply connected domain ''D'' ⊂ '''C''', and a point ''z'' ∈ ''D'', by the Riemann mapping theorem there exists a unique conformal map ''f'' : ''D'' → '''D''' onto the unit disk (usually referred to as the '''uniformizing map''') with ''f''(''z'') = 0 ∈ '''D''' and ''f''′(''z'') ∈ '''R'''<sub>+</sub>. The conformal radius of ''D'' from ''z'' is then defined as
: <math>\mathrm{rad}(z,D) := \frac{1}{f'(z)}\,.</math>
The simplest example is that the conformal radius of the disk of radius ''r'' viewed from its center is also ''r'', shown by the uniformizing map ''x'' ↦ ''x''/''r''. See below for more examples.
One reason for the usefulness of this notion is that it behaves well under conformal maps: if φ : ''D'' → ''D''′ is a conformal bijection and ''z'' in ''D'', then <math>\mathrm{rad}(\varphi(z),D') = |\varphi'(z)|\, \mathrm{rad}(z,D)</math>.
The conformal radius can also be expressed as <math>\exp(\xi_x(x))</math> where <math>\xi_x(y)</math> is the harmonic extension of <math>\log(|x-y|)</math> from <math>\partial D</math> to <math>D</math>.
===Inner radius===
Inner radius of Siegel Disc =
* radius of inner circle, where inner circle with center at fixed point is the biggest circle inside Siegel Disc.<ref>[http://www.scholarpedia.org/article/Siegel_disks/Quadratic_Siegel_disks scholarpedia : Quadratic_Siegel_disks]</ref>
* minimal distance between center of Siel Disc and critical orbit
Code for computing internal radius :
====Maxima CAS code ====
Here orbit is a list of complex points z.
<pre>
f(z,c):=z*z+c $
GiveCriticalOrbit(c,iMax):=
block(
ER:2.0, /* Escape Radius */
z:0+0*%i, /* first point = critical point */
orbit:[z],
if (abs(z)>ER) then return(orbit),
i:0,
loop, /* compute forward orbit */
z:rectform(f(z,c)),
orbit:endcons(z,orbit),
i:i+1,
if ((abs(z)<ER) and (i<iMax)) then go(loop),
return(orbit)
)$
/* find fixed point alfa */
GiveFixed(c):= float(rectform((1-sqrt(1-4*c))/2))$
/* distance between point z and fixed point zf */
GiveDistanceFromCenterTo(z):= abs(z-zf)$
/* inner radius of Siegel Disc ; criticla orbit is a boundary of SD */
GiveInnerRadiusOf(orbit):=lmin(map(GiveDistanceFromCenterTo,orbit))$
/* outer radius of Siegel Disc ; criticla orbit is a boundary of SD */
GiveOuterRadiusOf(orbit):=lmax(map(GiveDistanceFromCenterTo,orbit))$
/*------------ const ---------------------------------*/
c:0.113891513213121 +0.595978335936124*%i; /* fc(z) = z*z + c */
NrPoints:400000;
/* ----------- main ---------------------------------------------------*/
zf:GiveFixed(c); /* fixed point = center of Siegel disc */
orbit:GiveCriticalOrbit(c,NrPoints)$
innerRadius: GiveInnerRadiusOf(orbit) ;
outerRadius: GiveOuterRadiusOf(orbit) ;
</pre>
====C code ====
<syntaxhighlight lang=c>
double GiveInternalSiegelDiscRadius(complex double c, complex double a)
{ /* compute critical orbit and finds smallest distance from fixed point */
int i; /* iteration */
double complex z =0.0; /* critical point */
/* center of Siegel disc = a */
double d; // distance
double dMin = 2.0;
for (i=0;i<=40000 ;i++) /* to small number of iMax gives bad result */
{
z = z*z + c;
/* */
d = cabs(z - a);
if (d < dMin) dMin = d; /* smallest distance */
}
return dMin;
}
</syntaxhighlight>
===Outer radius===
Outer radius of Siegel Disc = radius of outer circle.
Outer circle with center at fixed point is minimal circle containing Siegel disc.
C code :
<syntaxhighlight lang=c>
double GiveExternalSiegelDiscRadius(complex double c, complex double a)
{ /* compute critical orbit and finds smallest distance from fixed point */
int i; /* iteration */
double complex z =0.0; /* critical point */
/* center of Siegel disc = a */
double d; // distance
double dMax = 0.0;
for (i=0;i<=40000 ;i++) /* to small number of iMax gives bad result */
{
z = z*z + c;
/* */
d = cabs(z - a);
if (d > dMax) dMax = d; /* biggest distance */
}
return dMax;
}
</syntaxhighlight>
==Folding==
Folding in scholaredia<ref>[http://www.scholarpedia.org/article/File:InfoldingSiegelDisk.gif Image InfoldingSiegelDisk.gif from Scholarpedia]</ref>
==Siegel disk implosion==
" ... an arbitrary small change of [[Fractals/Iterations in the complex plane/def cqp#Multiplier|the multiplier]] of the Siegel point may lead to an implosion of the Siegel disk - its [[Fractals/Iterations in the complex plane/siegel#Inner radius|inner radius]] collapses to zero " <ref>[http://arxiv.org/abs/math.DS/0610340 Computability of Julia sets by Mark Braverman, Michael Yampolsky]</ref>
Examples :
* from Golden Mean Siegel Disc with rotation number = [0;1,1,1,1,1, ...]= 0.618033988957902 to [[Fractals/Iterations in the complex plane/parabolic|parabolic Julia set]] with rotation number (internal angle) = 5/8 = [0;1,1,1,1,1]
* SEMI-CONTINUITY OF SIEGEL DISKS UNDER PARABOLIC IMPLOSION : P(n) = [0, 2, 2, n + r] with r = (√5−1)/ 2 , the first three images show the Siegel disk of P(n) for n = 10, 500, 10000, and the last is the virtual Siegel disk of p/q = 2/5 they tend to. Here P(n) > p/q.<ref>[http://www.math.univ-toulouse.fr/~cheritat/documents/Sc.pdf.gz SEMI-CONTINUITY OF SIEGEL DISKS UNDER PARABOLIC IMPLOSION by ARNAUD CHERITAT]</ref>
=Types=
for c :
* on boundary of main cardioid are siegel discs around fixed point alfa
* on boundary of period n component are periodic Siegel discs around n-periodic points
These Siegel Discs are :
* bounded (because the Julia set is bounded)
* not smooth (differentiable) in general
==Around fixed point ==
* Julia set consist of infinitely many curves bounding open regions
* <math>f_c\,</math> maps each region into "larger" one, until the region containing the fixed point is reached
* inside component containing Siegel disc <math>f_c\,</math> rotates points on invariant loops around the fixed point<ref>Fractal Geometry
Mathematical Foundations and Applications, 2nd Edition Kenneth Falconer</ref>
so in other words :
"<math>K_c</math> has infinitely many components. One of these contains the alpha fixed point. It is mapped to itself by <math>f_c</math>. This is the Siegel disk."
"The Siegel disk is one component and it has infinitely many preimages. If you zoom in to z = 0 with large nmax, you shall see that there are two
components touching at z=0". ( Wolf Jung )
=Visualisation=
[[File:Distance Quadratic Siegel Golden Mean.svg|Distance between points of forward orbit]]
Visualisation of dynamical plane :
* critical orbit by forward iteration of critical point
* Julia set by
** boundary of center component by drawing of critical orbit
**whole Julia set by inverse iteration of critical orbit
* interior
** whole interior by average velocity by Chris King
** Siegel disc orbits by forward iteration of point inside or on boundary of Siegel Disc<ref>[http://www.sciencedirect.com/science/article/pii/009784939390081J A tutorial on the visualization of forward orbits associated with Siegel disks in the quadratic Julia sets by G.Todd Miller ]</ref>
==Average velocity by Chris King ==
Discrete Velocity of non-attracting Basins and Petals: Compute, for the points that don't escape, the average discrete velocity on the orbit<ref>[http://www.dhushara.com/DarkHeart/julia2.htm Combined Methods of Depicting Julia Sets by Chris King]</ref>
<math> \left\vert z_{n+1} - z_n \right\vert</math>
<gallery captions=Images and src code">
File:Quadratic Golden Mean Siegel Disc Average Velocity - Gray.png| in c
File:Golden Mean Quadratic Siegel Disc Speed.png| in octave
</gallery>
==Optimisation==
See also [[Fractals/Computer graphic techniques/2D/optimisation|general methods]]
===Trick 1===
If point ( z0 or its forward image zn) is inside inner circle then it is interior point.
=Examples=
==Methods==
* Continued fractions
** t = [3,2,1000,1,.] = 0.28573467254058817026888613062003 . It gives c = -0.096294753554390530825955047963 + 0.648802699422348309293468536773i<ref>[https://sites.google.com/site/fabstellar84/fractals/irrational More Fun With Irrational Internal Angles by Faber]</ref>
* known aproximations of irrational numbers
** 1/pi
** eulers number
** golden ratio
** roots of numbers, like
*** square roots: sqrt(2), sqrt(3), sqrt(5), sqrt(7), sqrt(8), sqrt(15), sqrt(21), sqrt(35), sqrt(49), SQRT(65), sqrt(99), SQRT(100), SQRT(101), SQRT(121), sqrt(200), sqrt(278),
*** cubic roots, cbrt(3),
** logarithms, like <math>log_23</math>
* descendants of above numbers:
** like 1/pi
** sum of irrational and rational number : if t is an irrational number and r is a rational the t+r is irrational
* fast converging series <ref>[https://www.ms.u-tokyo.ac.jp/journal/pdf/jms080206.pdf Irrationality of Fast Converging Series of Rational Numbers By Daniel Duverney]</ref>
===Sequences===
Sequence of Continued fraction:<ref>[https://arxiv.org/pdf/math/0406416.pdf NON-COMPUTABLE JULIA SETS by M. BRAVERMAN, M. YAMPOLSKY]</ref>
* [1, 1, 1, . . .]
* [1, 1, 1, 20, 1, . . .]
* [1, 1, 1, 20, 1, 1, 1, 30, 1, . . .]
[[Fractals/Mathematics/sequences#Sequences on the parameter plane|sequence]] from Siegel disk to Lea-Fatou flower:
* plain
* digitated
* virtual
* Leau-Fatou flower
{| class="wikitable"
|-
! cf(t) !! t !! c(t) !! internal adress !! center z!! period !! inner R !! outer R
|-
|[0; 1, 1, 1,...]|| 0.618033988957902 ||-0.390540870218399-0.586787907346969i || ||-0.368684439039160-0.337745147130762i ||1 ||0.25 ||0.4999
|-
|[0;3,2,1000,1...]||.2857346725405882||0.113891513213121+0.595978335936124i|| ||-0.111322907374331+0.487449700270424i||1 ||.1414016645283217 ||.5285729063154562
|-
| || || || || || || ||
|}
==values==
* t = 0.3119660900888915 = [0, 3, 4, 1, 6, 1, 1, 65, 7, 1, 2, 63] ; c = -0.01183223669 + 0.63816572702*%i <ref>[http://www.math.uakron.edu/~sf34/mandelbrot/gallery.htm Mandelbrot Sequences and Orbits by Stefan Forcey]</ref>
* t = 0.3572354109849235 = [0, 2, 1, 3, 1, 54, 2, 1, 17, 1, 1, 1, 12, 1, 1, 1, 2, 2] ; c = -0.256625459 + 0.6345309*%i
* t = 0.3573615246360573 = [0, 2, 1, 3, 1, 22, 1, 1, 4, 1, 5, 1, 4, 3, 2, 21] ; c = -0.257341 + 0.634456*%i
== Boundary of main cardioid ==
* examples by Jay Hill<ref>[http://www.nahee.com/spanky/www/fractint/jayrhill/JuliaSetsOrbitsSiegelDisks.txt Jay Hill : JuliaSetsOrbitsSiegelDisks.txt]</ref>
<gallery>
File:Golden Mean Quadratic Siegel Disc.png |Dynamical plane for Golden Mean with Critical orbit and some orbits inside Siegel Disc
File:Golden Mean Quadratic Siegel Disc Speed.png| Golden Mean Quadratic Siegel Disc with interior coloured by average discrete velocity on the orbit
File:Quadratic Golden Mean Siegel Disc Average Velocity - Gray.png | high resolution gray version
File:Quadratic Golden Mean Siegel Disc IIM.png| Julia set for Golden Mean made with IIM/J
File:Quadratic Golden Mean Siegel Disc IIM Animated.gif|animated version - up to level 100
File:Siegel quadratic 3,2,1000,1... ,.png|Julia set of quadratic polynomial with Siegel disk for rotation number [3,2,1000,1...]
File:Julia set for fc(z) = z*z+c where c = -0.749998153581339 +0.001569040474910*I; t = 0.49975027919634618290.png
</gallery>
===Parametrization===
The boundary of main cardioid is described by [[Fractals/Iterations in the complex plane/Mandelbrot set#Boundaries of hyperbolic components|2 simultaneous equations]] :
* describing fixed point ( period 1 ) under f
* describing multiplier<ref>[[w:Periodic points of complex quadratic mappings#Stability of periodic points .28orbit.29 - multiplier|multiplier in wikipedia]]</ref> ( stability ) of fixed point ( it should be indifferent)
<math> \begin{cases}
z_1^2 + c = z_1 \\
abs(\lambda (z_1)) = 1
\end{cases} </math>
where :
<math>z_1 = \left\{ z : f_c(z) = z \right\} \,</math>
<math> \lambda (z_1) = 2*z_1 \,</math>
First equation :
<math> z_1^2 + c = z_1 </math>
<math> c = - z_1^2 + z_1 </math>
Second equation :
<math> \lambda (z_1) = 1 \,</math>
<math> Abs(2z_1) = 1\,</math>
<math> 2z_1 = e^{2*\Pi*t*i} \,</math>
<math> z_1 = e^{\Pi*t*i} = cos(t) + i*sin(t)\,</math>
As a result one gets function describing relation between parameter c and internal angle t :
<math>c = c(t) = \frac\lambda2\left(1-\frac\lambda2\right)= \frac{e^{\Pi*t*i}}{2} - \frac{e^{2*\Pi*t*i}}{4} </math>
It is used for computing :
* c point of boundary of main cardioid
* when t is irrational number then filled Julia set has Siegel disc
One can compute boundary point c
<math> c = c_x + c_y*i </math>
of period 1 hyperbolic component ( main cardioid) for given t using
<syntaxhighlight lang="cpp">
t = atan2(); // is the argument in radians.
cx = 0.5*cos(t) - 0.25*cos(2*t);
cy = 0.5*sin(t) - 0.25*sin(2*t);
</syntaxhighlight>
New parameter can be computed after increasing t using arbitrary step:
t += 0.01; // It is increased by 0.01 so 1/628 turns.
// From the new t the new parameter c is computed ..
=== near Liouville numbers===
:<math>t = \sum_{k=1}^\infty 2^{-k!} = 2^{-1} + 2^{-2 } + 2^{-6} + 2^{-24} + \ldots = \frac{12845057}{16777216} \approx 0.7656250596046448 </math>
t = 0.7656250596046448 gives :
* c = 0.294205040086005 -0.448819580822501*i on the main cardioid
* c = -0.975495621741693 -0.248796172491005*i on the period 2 component
* c = -0.219419079596579 +0.741123657495634*i on the period 3 component along internal ray 1/3
* c = -1.749557112879525 -0.008859942836393*i on the small period 3 cardioid on the main antenna
:<math>t = \sum_{k=1}^\infty 4^{-k!} = 4^{-1} + 4^{-2 } + 4^{-6} + 4^{-24} + \ldots \approx 0.3127441406250035 </math>
:<math>t = \sum_{k=1}^\infty 8^{-k!} = 8^{-1} + 8^{-2 } + 8^{-6} + 8^{-24} + \ldots \approx 0.1406288146972656 </math>
:<math>t = \sum_{k=1}^\infty 16^{-k!} = 16^{-1} + 16^{-2 } + 16^{-6} + 16^{-24} + \ldots \approx 0.06640630960464478 </math>
where ! denotes factorial.
Image :
* [https://www.dhushara.com/DarkHeart/index.htm DarkHeart by Chris King]
Maxima cas code:
<pre>
f(n) := n^-1 + n^-2 +n^-6 +n^-24;
%i2) f(2);
12845057
(%o2) --------
16777216
(%i3) float(f(2));
(%o3) 0.7656250596046448
(%i4) float(f(3));
(%o4) 0.445816186560468
(%i5) f(3);
125911658926
(%o5) ------------
282429536481
(%i6) f(5);
14308929443359376
(%o6) -----------------
59604644775390625
(%i7) f(6);
921453486852538369
(%o7) -------------------
4738381338321616896
(%i8) f(7);
31280196802261814842
(%o8) ---------------------
191581231380566414401
(%i9) f(8);
664100801052053340161
(%o9) ----------------------
4722366482869645213696
(%i10) 8^24;
(%o10) 4722366482869645213696
</pre>
===radians ===
* 1/(2*pi) = 0.1591549430918953
* 2/(2*pi) = 0.3183098861837907
* 3/(2*pi) = 0.477464829275686
* 4/(2*pi) = 0.6366197723675814
* 5/(2*pi) = 0.7957747154594768
* 6/(2*pi) = 0.954929658551372
Images:
* examples by Kerry Mitchell [http://www.kerrymitchellart.com/tutorials/cardioid-boundary-orbits/cardioid-boundary-orbits-tutorial.html examples by Kerry Mitchell]
===the Golden Mean ===
[[File:Golden mean.png|right|thumb|approximated of golden mean by finite continued fractions]]
rotation number t is the Golden Mean ( exactly Golden ratio conjugate,<ref>[[w:Golden ratio#Golden ratio conjugate|Golden ratio at wikipedia]]</ref> compare Julia set for Golden Mean which is disconnected Julia set <ref>[https://www.youtube.com/watch?v=PPIO8myW8C0 Golden Ratio Julia Set video by fractal]</ref>
<math> t = \frac{\sqrt{5} - 1}{2} \approx 0.618033988749895</math>
[[Fractals/Continued fraction|Continued_fraction expansion]] :<ref>[[w:Continued fraction|wikipedia : Continued_fraction]]</ref>
<math>t = [0; 1, 1, 1, \dots] = [ 1, 1, 1, \dots]= \cfrac{1}{1 + \cfrac{1}{1 + \cfrac{1}{1 + \ddots}}}</math>
In [[Maxima]] CAS :
(%i2) a:[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
(%o2) [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
(%i3) t:cfdisrep(a)
(%o3) 1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/1))))))))))))))))))))))
(%i4) float(t)
(%o4) 0.618033988957902
(%i5) l:%e^(2*%pi*%i*t)
(%o5) %e^(-(17711*%i*%pi)/23184)
(%i6) c:(l*(1-l/2))/2
(%o6) ((1-%e^(-(17711*%i*%pi)/23184)/2)*%e^(-(17711*%i*%pi)/23184))/2
(%i7) float(rectform(c))
(%o7) -.5867879078859505*%i-.3905408691260131
so
<math>c \approx -0.390540870218399 -0.586787907346969 *i</math>
Compare with :
* Quadratic Julia sets depicted by combined methods<ref>[http://www.dhushara.com/DarkHeart/julia2.htm Combined Methods of Depicting Julia Sets by Chris King]</ref>
* Golden mean Siegel disk by Curtis T McMullen <ref>[http://www.math.harvard.edu/~ctm/gallery/julia/siegel.html Golden mean Siegel disk by Curtis T McMullen ]</ref>
* Siegel Disk Fractal by Jim Muth <ref>[http://www.nahee.com/FOTD/FotD_03-01-04.html Siegel disc by Jim Muth]</ref>
* Siegel disk by Davoud Cheraghi<ref>[http://www2.imperial.ac.uk/~dcheragh/Siegel.php Siegel discs by Davoud Cheraghi]</ref>
* a better Siegel disk program in Mathematica From Roger Bagula<ref>[http://sci.tech-archive.net/Archive/sci.nonlinear/2004-12/0005.html a better Siegel disk program in Mathematica From Roger Bagula]</ref>
* Xander's image <ref>[http://yozh.org/2011/03/14/mset006/ Xander's blog]</ref>
* Images by Arnaud Chéritat<ref>[http://www.math.univ-toulouse.fr/~cheritat/GalII/galery.html Galerie II : Dynamique holomorphe et analyse complexe by Arnaud Chéritat]</ref>
* [https://sites.google.com/site/fabstellar84/fractals/irrational irrational by Faber]
====Rays landing on the critical point ====
There are 2 rays landing on the critical point z=0 with angles:<ref>[http://qcpages.qc.cuny.edu/~zakeri/papers/survey.pdf OLD AND NEW ON QUADRATIC SIEGEL DISKS by SAEED ZAKERI]</ref>
<math>\omega/2</math>
<math>(\omega+1)/2</math>
Here<ref>[https://www.math.stonybrook.edu/jackfest/Talks/Zakeri.pdf Rotation Sets and Polynomial Dynamics by Zakeri]</ref>
<math>\omega = [0; 2^0, 2^1, 2^1, 2^2, 2^3, ...] = 0.709803</math>
where the powers of 2 form the Fibonacci sequence :<ref>[https://oeis.org/A000045 integer sequence id=A000045]</ref>
<math>0,\;1,\;1,\;2,\;3,\;5,\;8,\;13,\;21,\;34,\;55,\;89,\;144,\; \ldots\;</math>
These rays are preimages of ray <math>\omega</math> which land on the critical value.
===digitated===
algorithm goes like this :
* start with rational number p/q ( q is a number of digits
* find [[Fractals/Continued fraction|continous fraction]] of p/q using for example : wolfram alpha
* lets choose 2/7 = [0; 3, 2]
* for n from 0 to 10 compute rotation number = t(n) = [0;3, 2 , 10^n, golden_ratio]
* for each t compute multiplier m = e^(2*pi*i*t) and c = (m*(1-m/2))/2,
* for each c draw critical orbit
====1/2====
<gallery>
File:Siegel disk for c = -0.749998153581339 +0.001569040474910 i.png|Siegel disk for c = -0.749998153581339 +0.001569040474910 i
File:InfoldingSiegelDisk1over2.gif|Infolding Siegel disk
InfoldingSiegelDisk1over2animation.gif| Animation with external rays. Last frame show parabolic Julia set
Siegel disk and external rays for fc(z) = z*z+c where c = -0.749998153581339 +0.001569040474910*I; t = 0.49975027919634618290.png
</gallery>
[0;2,10^0, GoldenRatio] = 0.3819660112501051517954131656343618822796908201942371378645513772947395371810975502927927958106088625<ref>[http://www.wolframalpha.com/input/?i=continued+fraction+%5B0;2,1,GoldenRatio%5D wolframalpha : continued+fraction[0;2,1,GoldenRatio<nowiki>]</nowiki>]</ref>
[0;2,10^1, GoldenRatio] = 0.4775140100981009996157078147705459192853678713412804123092036673992538239565035505055878663397199776
[0;2,10^2, GoldenRatio] = 0.4975276418049443654168822249489777631733396751888937557910272646236455872099717190261209452982670182
[0;2,10^3, GoldenRatio] = 0.4997502791963461829064406841975638383643273854865268095992275328965717970298619920531024931799175222
[0;2,10^4, GoldenRatio] = 0.4999750027947725068093934556288852812751613102402893275180237493139184231871314468863992103480081398
[0;2,10^5, GoldenRatio] = 0.4999975000279505372222411883578948194038778053684924551662056284491619191237767514609446551752982620
[0;2,10^6, GoldenRatio] ≈ 0.4999997500002795081846878230972820064874630120375394060599983649731088601118927011908445914889153575
[0;2,10^7, GoldenRatio] ≈ 0.4999999750000027950846593747720590697092705648336656666550099352279885262457471130077351190950368647
[0;2,10^8, GoldenRatio] ≈ 0.4999999975000000279508494062473746989708466400627903143635595029928608488311534417391176743667414601
[0;2,10^9, GoldenRatio] = 0.4999999997500000002795084968749737124005323296851266699307427070578490529472905394986264318888387868
[0;2,10^10, GoldenRatio] ≈ 0.4999999999750000000027950849715622371205464056480586232583076030201151399460674665945145904063730995
[0;2,10^11, GoldenRatio] ≈ 0.4999999999975000000000279508497184348712051181647153557573019083692657334910230489541137897282568504
[0;2,10^12, GoldenRatio] ≈ 0.4999999999997500000000002795084971871612120511470579770310133815923588852631868226288826667637222837
[0;2,10^13, GoldenRatio] ≈ 0.4999999999999750000000000027950849718744246205114671208526574427310807059077461659968395909016599809
[0;2,10^14, GoldenRatio] ≈ 0.4999999999999975000000000000279508497187470587051146708626348091578511118332834054112155667123629005
[0;2,10^15, GoldenRatio] ≈ 0.4999999999999997500000000000002795084971874733995511467085917589150515616367008796489196018543201296
[0;2,10^16, GoldenRatio] ≈ 0.4999999999999999750000000000000027950849718747368080114670859141302328629213837245072986771954833911
[0;2,10^17, GoldenRatio] ≈ 0.4999999999999999975000000000000000279508497187473708926146708591409564368639443385654331302200729603
[0;2,10^18, GoldenRatio] ≈ 0.4999999999999999997500000000000000002795084971874737117386467085914095297794629164357828552071705414
[0;2,10^19, GoldenRatio] ≈ 0.4999999999999999999750000000000000000027950849718747371201989670859140952943357115116628413693411086
[0;2,10^20, GoldenRatio] ≈ 0.4999999999999999999975000000000000000000279508497187473712048021708591409529430112233513589149747868
...
[0;2] = 1/2 = 0.5
using quad double precision :
<pre>
t(0) = 3.81966011250105151795413165634361882279690820194237137864551377e-01 ; c = -3.90540870218400050669762600713798485817583715938583500790716491e-01 ; 5.86787907346968751196714643055715840096745752123320842032245424e-01
t(1) = 4.77514010098100999615707814770545919285367871341280412309203667e-01 ; c = -7.35103725789203166246364354183070697092321099215970115885457098e-01 ; 1.40112549815936743590686010452273467218741353649054870130630558e-01
t(2) = 4.97527641804944365416882224948977763173339675188893755791027265e-01 ; c = -7.49819025417749776930986763368388660297294249313031793877713589e-01 ; 1.55327228158391795314525351457527867568101147692293037994954915e-02
t(3) = 4.99750279196346182906440684197563838364327385486526809599227533e-01 ; c = -7.49998153581339423261635407668242134664913541791449158951684018e-01 ; 1.56904047490965613194389295941701415441031256575211288282884094e-03
t(4) = 4.99975002794772506809393455628885281275161310240289327518023749e-01 ; c = -7.49999981498629125645545136832080395069079925634197165921129604e-01 ; 1.57062070991569266952536106210409130728490029437750411952649155e-04
t(5) = 4.99997500027950537222241188357894819403877805368492455166205628e-01 ; c = -7.49999999814949055379035496840776829777984829652802229165703441e-01 ; 1.57077876479293075511736069683515881947782844720535147967721515e-05
t(6) = 4.99999750000279508184687823097282006487463012037539406059998365e-01 ; c = -7.49999999998149453312747388186444210086067957518121660969151546e-01 ; 1.57079457059156244743576144811256589754652192800174232944684020e-06
t(7) = 4.99999975000002795084659374772059069709270564833665666655009935e-01 ; c = -7.49999999999981494495885914313759501577872560098720076587742563e-01 ; 1.57079615117453182906803046090425827728536858759594155863970088e-07
t(8) = 4.99999997500000027950849406247374698970846640062790314363559503e-01 ; c = -7.49999999999999814944921617531908891370473818724298060108792696e-01 ; 1.57079630923285982648802540286825950414334929521039394902627564e-08
t(9) = 4.99999999750000000279508496874973712400532329685126669930742707e-01 ; c = -7.49999999999999998149449178933702694145524879491347408142864355e-01 ; 1.57079632503869293681972526129998193269783324874397448954896142e-09
t(10) = 4.99999999975000000002795084971562237120546405648058623258307603e-01 ; c = -7.49999999999999999981494491752095410030080568840077963364830374e-01 ; 1.57079632661927625095878938346134344643704271149725816320948648e-10
t(11) = 4.99999999997500000000027950849718434871205118164715355757301908e-01 ; c = -7.49999999999999999999814944917483712483337770357969922549543000e-01 ; 1.57079632677733458240375473417333652732358282974043728923647563e-11
t(12) = 4.99999999999750000000000279508497187161212051147057977031013382e-01 ; c = -7.49999999999999999999998149449174799883216409502184216102177862e-01 ; 1.57079632679314041554856185862662707966424239622019267641300599e-12
t(13) = 4.99999999999975000000000002795084971874424620511467120852657443e-01 ; c = -7.49999999999999999999999981494491747961590547126303840172625197e-01 ; 1.57079632679472099886304567696577418001577729533565273081497266e-13
t(14) = 4.99999999999997500000000000027950849718747058705114670862634809e-01 ; c = -7.49999999999999999999999999814944917479578663854294268739087328e-01 ; 1.57079632679487905719449408985862706763478042275954257084690447e-14
t(15) = 4.99999999999999750000000000000279508497187473399551146708591759e-01 ; c = -7.49999999999999999999999999998149449174795749396925973912562169e-01 ; 1.57079632679489486302763893145850173816965190682509858763917154e-15
t(16) = 4.99999999999999975000000000000002795084971874736808011467085914e-01 ; c = -7.49999999999999999999999999999981494491747957456727642770350276e-01 ; 1.57079632679489644361095341562159509904086589961983101670245908e-16
t(17) = 4.99999999999999997500000000000000027950849718747370892614670859e-01 ; c = -7.49999999999999999999999999999999814944917479574530034810734727e-01 ; 1.57079632679489660166928486403793549406616456447514036426396814e-17
t(18) = 4.99999999999999999750000000000000000279508497187473711738646709e-01 ; c = -7.49999999999999999999999999999999998149449174795745263106490379e-01 ; 1.57079632679489661747511800887956984415807620355720412842525869e-18
t(19) = 4.99999999999999999975000000000000000002795084971874737120198967e-01 ; c = -7.49999999999999999999999999999999999981494491747957452593823287e-01 ; 1.57079632679489661905570132336373328227316118501557102010628498e-19
t(20) = 4.99999999999999999997500000000000000000027950849718747371204802e-01 ; c = -7.49999999999999999999999999999999999999814944917479574525900991e-01 ; 1.57079632679489661921375965481214962611572862167871366529561451e-20
5.00000000000000000000000000000000000000000000000000000000000000e-01 c = -7.50000000000000000000000000000000000000000000000000000000000000e-01 ; 0.00000000000000000000000000000000000000000000000000000000000000e+00
</pre>
====1/3====
[[File:InfoldingSiegelDisk1over3.gif|thumb|right|Infolding Siegel Disk near 1/3]]
1/3 = [0; 3] = 0.3333333..... = 0.(3)
<pre>
/* Maxima CAS batch file */
kill(all)$
remvalue(all)$
/* a = [1, 1, ...] = golden ratio */
g: float((1+sqrt(5))/2)$
GiveT(n):= float(cfdisrep([0,3,10^n,g]))$
GiveC(t):= block(
[l, c],
l:%e^(2*%pi*%i*t),
c : (l*(1-l/2))/2,
c:float(rectform(c)),
return(c)
)$
compile(all)$
for n:0 step 1 thru 10 do (
t:GiveT(n),
c:GiveC(t),
print("n=" ,n ," ; t= ", t , "; c = ", c)
);
</pre>
The result :
<pre>
n= 0 t= 0.276393202250021 c = 0.5745454151066983 %i + 0.1538380639536643
n= 1 t= 0.3231874668087892 c = 0.6469145331346998 %i - 0.07039249652637808
n= 2 t= 0.3322326933513446 c = 0.649488031636116 %i - 0.1190170769366243
n= 3 t= 0.3332223278292314 c = 0.6495187369145559 %i - 0.1243960357918423
n= 4 t= 0.3333222232791965 c = 0.6495190496732967 %i - 0.1249395463818514
n= 5 t= 0.3333322222327929 c = 0.6495190528066728 %i - 0.1249939540657306
n= 6 t= 0.3333332222223279 c = 0.6495190528380125 %i - 0.1249993954008478
n= 7 t= 0.3333333222222233 c = 0.6495190528383257 %i - 0.1249999395400275
n= 8 t= 0.3333333322222222 c = 0.6495190528383289 %i - 0.1249999939540021
n= 9 t= 0.3333333332222222 c = 0.649519052838329 %i - 0.1249999993954
n= 10 t= 0.3333333333222222 c = 0.649519052838329 %i - 0.1249999999395399
(%i1) a:[0,3,a,g];
(%o1) [0, 3, a, g]
(%i2) cfdisrep(a);
1
(%o2) ---------
1
3 + -----
1
a + -
g
(%i3)
</pre>
quad precision (t and c ):
<pre>
// git@gitlab.com:adammajewski/InfoldingSiegelDisk_in_c_1over3_quaddouble.git
t(0) = 2.76393202250021030359082633126872376455938164038847427572910275e-01 c = 1.53838063953664121728826496636884090757364247198001213740163411e-01 ; 5.74545415106698547533205192239966882171974656527110206599567294e-01
t(1) = 3.23187466808789167460075188398563024584074865168574811248120429e-01 c = -7.03924965263779817446805013170440359580350303484669206412737432e-02 ; 6.46914533134699876497054948648970463828561836818357035393585013e-01
t(2) = 3.32232693351344645328281111249254263489588693253128095562021379e-01 c = -1.19017076936624259031145944667596002534849695014545153950004772e-01 ; 6.49488031636116063199566861137419722741268462810784951116992269e-01
t(3) = 3.33222327829231396180972123516749255293978654448636072108442295e-01 c = -1.24396035791842227723833496314974550377900499387491577355907843e-01 ; 6.49518736914555954950215798854805983039885153673988260646103979e-01
t(4) = 3.33322223279196467461199806968881974980654735721758806121437081e-01 c = -1.24939546381851514024915251452349793356883503222467666248987991e-01 ; 6.49519049673296680160381595728499835459227600854334414827754792e-01
t(5) = 3.33332222232792869679683559108320427563171464137271516297451542e-01 c = -1.24993954065730675441065991629838614047426783311966520549106346e-01 ; 6.49519052806672859063863722773813069312955136848755592503084124e-01
t(6) = 3.33333222222327929601887145303917917465162347855208962292566660e-01 c = -1.24999395400848041352293443820430989442841091304288844173462574e-01 ; 6.49519052838012418008903728036348898528045582108441153259758357e-01
t(7) = 3.33333322222223279296923970287377310413140932425289152909012301e-01 c = -1.24999939540027553391850682937180513243494903336945859380511500e-01 ; 6.49519052838325819396349608234642964505989043061737603462233217e-01
t(8) = 3.33333332222222232792970144802560581866962241709924341887457124e-01 c = -1.24999993954002182831269818316294274223873134947476282441764677e-01 ; 6.49519052838328953416022146474675036126754173503570601306155105e-01
t(9) = 3.33333333222222222327929702353125377874576632652638574699840874e-01 c = -1.24999999395400212558047347868208906283402972461774034404632366e-01 ; 6.49519052838328984756224669944909300404586792219705302525018521e-01
t(10) = 3.33333333322222222223279297024436353559326388564904699626466712e-01 c = -1.24999999939540021198553937965723010802762347867693302140297851e-01 ; 6.49519052838328985069626700977700316581410665652851539203616381e-01
t(11) = 3.33333333332222222222232792970245268635374696979418341612961499e-01 c = -1.24999999993954002119282885827879858604573185189849864410972761e-01 ; 6.49519052838328985072760721293826315500672008735227141791647866e-01
t(12) = 3.33333333333222222222222327929702453591453528488135105883396848e-01 c = -1.24999999999395400211922563503100579972022557444713095237600026e-01 ; 6.49519052838328985072792061496993373578630511176383107487756736e-01
t(13) = 3.33333333333322222222222223279297024536819635066408216696619311e-01 c = -1.24999999999939540021192199099513183456854230374819467960534760e-01 ; 6.49519052838328985072792374899025049957498862929395598811798211e-01
t(14) = 3.33333333333332222222222222232792970245369101450445609885075510e-01 c = -1.24999999999993954002119219337443349599800479106023686175774584e-01 ; 6.49519052838328985072792378033045366727085635213738283716661855e-01
t(15) = 3.33333333333333222222222222222327929702453691919604237626654112e-01 c = -1.24999999999999395400211921928019255272520717007610023985861823e-01 ; 6.49519052838328985072792378064385569894787301025348531521608111e-01
t(16) = 3.33333333333333322222222222222223279297024536920101142157794353e-01 c = -1.24999999999999939540021192192744674730377477910267401190215182e-01 ; 6.49519052838328985072792378064698971926464323481553400821453061e-01
t(17) = 3.33333333333333332222222222222222232792970245369201916521359471e-01 c = -1.24999999999999993954002119219273894965069001852640340429175752e-01 ; 6.49519052838328985072792378064702105946781093711913538281273390e-01
t(18) = 3.33333333333333333222222222222222222327929702453692020070313376e-01 c = -1.24999999999999999395400211921927383771427212725879688582341355e-01 ; 6.49519052838328985072792378064702137286984261414222937744638416e-01
t(19) = 3.33333333333333333322222222222222222223279297024536920201608234e-01 c = -1.24999999999999999939540021192192738319891924397994124922164696e-01 ; 6.49519052838328985072792378064702137600386293091246037537360833e-01
t(20) = 3.33333333333333333332222222222222222222232792970245369202016987e-01 c = -1.24999999999999999993954002119219273831416684471053474052374312e-01 ; 6.49519052838328985072792378064702137603520313408016268541086146e-01
1/3 = 3.33333333333333333333333333333333333333333333333333333333333333e-01 c = -1.25000000000000000000000000000000000000000000000000000000000000e-01 ; 6.49519052838328985072792378064702137603551970178892735520927617e-01
</pre>
====9/13====
Example from scholarpedia<ref>[http://www.scholarpedia.org/article/File:InfoldingSiegelDisk.gif Infolding Siegel Disk by Arnaud Chéritat]</ref>
<pre>
fpprec:60;
a:[4,4,1,2,4,4,4,4,1,1,1,1,1,1,1,1,1];
b:cfdisrep(a);
c:bfloat(b);
e0:bfloat(cfdisrep([0,1,2,4,4,c]));
e1:bfloat(cfdisrep([0,1,2,4,4,10,c]));
e2:bfloat(cfdisrep([0,1,2,4,4,10^2,c]));
e3:bfloat(cfdisrep([0,1,2,4,4,10^3,c]));
e4:bfloat(cfdisrep([0,1,2,4,4,10^4,c]));
e5:bfloat(cfdisrep([0,1,2,4,4,10^5,c]));
e6:bfloat(cfdisrep([0,1,2,4,4,10^6,c]));
e7:bfloat(cfdisrep([0,1,2,4,4,10^7,c]));
e8:bfloat(cfdisrep([0,1,2,4,4,10^8,c]));
e9:bfloat(cfdisrep([0,1,2,4,4,10^9,c]));
e10:bfloat(cfdisrep([0,1,2,4,4,10^10,c]));
d01:e0-e1;
d12:e1-e2;
d23:e2-e3;
d34:e3-e4;
d45:e4-e5;
d56:e5-e6;
d67:e6-e7;
d78:e7-e8;
d89:e8-e9;
d910:e9-e10;
plot2d( [discrete, [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [ e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10] ]);
plot2d( [discrete, [ 1, 2, 3, 4, 5, 6, 7, 8, 9,10], [ d01, d12, d23, d34, d45, d56, d67, d78, d89, d910] ]);
</pre>
result :
<pre>
/* http://maxima-online.org/?inc=r972897020*/
(%i1) fpprec:60;
(%o1) 60
(%i2) a:[4,4,1,2,4,4,4,4,1,1,1,1,1,1,1,1,1];
(%o2) [4, 4, 1, 2, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1]
(%i3) b:cfdisrep(a);
1
(%o3) 4 + -------------------------------------------------------------
1
4 + ---------------------------------------------------------
1
1 + -----------------------------------------------------
1
2 + -------------------------------------------------
1
4 + ---------------------------------------------
1
4 + -----------------------------------------
1
4 + -------------------------------------
1
4 + ---------------------------------
1
1 + -----------------------------
1
1 + -------------------------
1
1 + ---------------------
1
1 + -----------------
1
1 + -------------
1
1 + ---------
1
1 + -----
1
1 + -
1
(%i4) c:bfloat(b);
(%o4) 4.21317492083944457390374624758406097076199745041327978287391b0
(%i5) e0:bfloat(cfdisrep([0,1,2,4,4,c]));
(%o5) 6.90983385919269333377918690283855111536837789999636063622128b-1
(%i6) e1:bfloat(cfdisrep([0,1,2,4,4,10,c]));
(%o6) 6.90940653590858345205900333693231459583929903277216782489572b-1
(%i7) e2:bfloat(cfdisrep([0,1,2,4,4,10^2,c]));
(%o7) 6.90912381108070743953290526690429251279660195160237673633147b-1
(%i8) e3:bfloat(cfdisrep([0,1,2,4,4,10^3,c]));
(%o8) 6.90909421331077674912831355964859580252020147075327146840293b-1
(%i9) e4:bfloat(cfdisrep([0,1,2,4,4,10^4,c]));
(%o9) 6.90909123965376225147306218871548821073377014383362752163859b-1
(%i10) e5:bfloat(cfdisrep([0,1,2,4,4,10^5,c]));
(%o10) 6.90909094214860373154103745626419162194365585020091374566415b-1
(%i11) e6:bfloat(cfdisrep([0,1,2,4,4,10^6,c]));
(%o11) 6.90909091239669264887898182284536032143262445829248943506691b-1
(%i12) e7:bfloat(cfdisrep([0,1,2,4,4,10^7,c]));
(%o12) 6.90909090942148758764580793509997058314465248663422318011972b-1
(%i13) e8:bfloat(cfdisrep([0,1,2,4,4,10^8,c]));
(%o13) 6.90909090912396694199216055201332263713180254323741379104146b-1
(%i14) e9:bfloat(cfdisrep([0,1,2,4,4,10^9,c]));
(%o14) 6.9090909090942148760314918534473410035349593667510644807155b-1
(%i15) e10:bfloat(cfdisrep([0,1,2,4,4,10^10,c]));
(%o15) 6.90909090909123966942147194332785516326702737819678667743891b-1
(%i16) d01:e0-e1;
(%o16) 4.27323284109881720183565906236519529078867224192811325562048b-5
(%i17) d12:e1-e2;
(%o17) 2.82724827876012526098070028022083042697081169791088564253857b-5
(%i18) d23:e2-e3;
(%o18) 2.95977699306904045917072556967102764004808491052679285309819b-6
(%i19) d34:e3-e4;
(%o19) 2.97365701449765525137093310759178643132691964394676434841921b-7
(%i20) d45:e4-e5;
(%o20) 2.97505158519932024732451296588790114293632713775974431973635b-8
(%i21) d56:e5-e6;
(%o21) 2.97519110826620556334188313005110313919084243105972446795396b-9
(%i22) d67:e6-e7;
(%o22) 2.97520506123317388774538973828797197165826625494718990624414b-10
(%i23) d78:e7-e8;
(%o23) 2.97520645653647383086647946012849943396809389078262402933403b-11
(%i24) d89:e8-e9;
(%o24) 2.97520659606686985659816335968431764863493103259592529156942b-12
(%i25) d910:e9-e10;
(%o25) 2.97520661001991011948584026793198855427780327658967717649496b-13
</pre>
These Siegel disks have 13 digits. SO it will be near t=n/13, probably :
<math>\frac{9}{13} =0.692307692307692307692307692307692307692307692307692307692... = 0.\overline{692307}</math>
this number is irreducible and it's decimal expansion has period 6 <ref>[http://www.wolframalpha.com/input/?i=9%2F13 wolfram alpha : 9/13]</ref>
Numerical computations goes near :
<math>\frac{38}{55} = 0.690909090909090909090909090909090909090909090909090909090... = 0.6\overline{90}</math>
It is irreducible fraction . It's decimal expansion has period 2 <ref>[https://www.wolframalpha.com/input/?i=38%2F55 wolfram alpha : 38/55]</ref>
Important numbers :
8/13 = 0.6153846153846154 = [0; 1, 1, 1, 1, 2]
38/55 = 0.690909090909090(90) = [0; 1, 2, 4, 4]
9/13 = 0.692307692307(692307) = [0; 1, 2, 4]
====QUADRATIC SIEGEL DISKS WITH SMOOTH BOUNDARIES ====
Example by XAVIER BUFF AND ARNAUD CHERITAT<ref>[http://www.math.univ-toulouse.fr/~buff/Preprints/Smooth2/Smooth.pdf SIEGEL DISKS WITH SMOOTH BOUNDARIES ́ ARTUR AVILA, XAVIER BUFF, AND ARNAUD CHERITAT]</ref>
α = ( 5 + 1)/2 = [1, 1, 1, 1, . . .],
α(1) = [1, 1, 1, 1, 1, 1, 25, 1, 1, 1, . . .]
α(2) = [1, 1, 1, 1, 1, 1, 25, 1010 , 1, 1, 1, . . .]
====2/7====
<gallery>
File:Finite_continued_fractions_0;1,1,1,.....png|finite [[Fractals/Continued fraction|continued fractions]] aproximation to [0;1,1,1,....
File:Critical_Orbit_0;3,2,1000,1....png|Critical Orbit, Inner and outer circle of [0;3,2,1000,1...] Julia set
File:Siegel quadratic 3,2,1000,1... ,.png| Julia set [0;3,2,1000,1... ]
File:InfoldingSiegelDisk2over7.gif|Critical orbit
</gallery>
rotation number t is :<ref>[http://www2.imperial.ac.uk/~dcheragh/Siegel.php Some examples of quadratic polynomial Siegel disks by Davoud Cheraghi ]</ref>
<math>t = [3,2,1000,1,...] = [0; 3,2,1000,1 \dots] = \cfrac{1}{3 + \cfrac{1}{2 + \cfrac{1}{1000 + \cfrac{1}{1 + \ddots}}}}</math>
In [[Maxima|Maxima CAS]] one can compute it :
(%i2) kill(all)
(%o0) done
(%i1) a:[0,3,2,1000,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
(%o1) [0,3,2,1000,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
(%i2) t:cfdisrep(a)
(%o2) (1)/(3+(1)/(2+(1)/(1000+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+ (1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
(%i3) float(t)
(%o3) .2857346725405882
(%i4) l:%e^(2*%pi*%i*t)
(%o4) %e^((2*%i*%pi)/(3+(1)/(2+(1)/(1000+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
(%i5) c:(l*(1-l/2))/2
(%o5) ((1-(%e^((2*%i*%pi)/(3+(1)/(2+(1)/(1000+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/(2))*%e^((2*%i*%pi)/(3+(1)/(2+(1)/(1000+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+(1)/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/(1+1/1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/(2)
(%i6) float(rectform(c))
(%o6) .5959783359361234*%i+.1138915132131216
So
t = .2857346725405882
c = 0.113891513213121 +0.595978335936124 i
How one can find '''limit''' of [3,2,1000,1,...] ?
Here is explanation of Bill Wood
"I don't know if Maxima knows much about the algebra of continued
fractions, but it can be of some help hacking out the manipulation
details of a derivation. A most useful fact is that
[a1, a2, a3, ...] = a1 + 1/[a2, a3, ...]
provided the continued fraction converges. If we apply that three
times by hand to [3, 2, 1000, 1, 1, ...] we obtain
3 + 1/(2 + 1/(1000 + 1/[1, 1, ...]))
Now it is known that [1, 1, ...] converges to the Golden Ratio = (1+sqrt(5))/2. So now we can use Maxima as follows:
<pre>
(%i20) 3+(1/(2+(1/(1000+(1/((1+sqrt(5))/2))))));
1
(%o20) ---------------------- + 3
1
------------------ + 2
2
----------- + 1000
sqrt(5) + 1
(%i21) factor(%o13);
7003 sqrt(5) + 7017
(%o21) -------------------
2001 sqrt(5) + 2005
(%i22) %o21,numer;
(%o22) 3.499750279196346
</pre>
You set a to [0, 3, 2, 1000, 1, 1, ...], which by our useful fact must be the reciprocal of [3, 2, 1000, 1, 1, ...], and indeed the
reciprocal of 3.499750279196346 is 0.2857346725405882, which is what your float(t) evaluates to, so we seem to get consistent results.
If all of the continued fractions for the rotation numbers exhibited on the link you provided do end up repeating 1 forever then the method
I used above can be used to determine their limits as ratios of linear expressions in sqrt(5)." Bill Wood
Check fraction:<ref>[http://www.wolframalpha.com/input/?i=2%2F7 wolfram alpha : 2/7]</ref>
2/7 = [0; 3, 2] = 0.285714285714285714285714285714285714285714285714285714285... = 0.(28571)
<pre>
/* Maxima CAS batch file */
kill(all)$
remvalue(all)$
/* a = [1, 1, ...] = golden ratio */
g: float((1+sqrt(5))/2)$
GiveT(n):= float(cfdisrep([0,3,2,10^n,g]))$
GiveC(t):= block(
[l, c],
l:%e^(2*%pi*%i*t),
c : (l*(1-l/2))/2,
c:float(rectform(c)),
return(c)
)$
compile(all)$
for n:0 step 1 thru 10 do (
t:GiveT(n),
c:GiveC(t),
print("n=", n , " ; t= ", t, " ; c = ", c)
);
</pre>
and result :
<pre>
"n="" "0" "" ; t= "" "0.2956859994078892" "" ; c = "" "0.6153124581224951*%i+0.06835556662164869" "
"n="" "1" "" ; t= "" "0.2875617458610296" "" ; c = "" "0.599810068302661*%i+0.1057522049785167" "
"n="" "2" "" ; t= "" "0.285916253540726" "" ; c = "" "0.5963646240901801*%i+0.1130872227062027" "
"n="" "3" "" ; t= "" "0.2857346725405881" "" ; c = "" "0.5959783359361234*%i+0.1138915132131216" "
"n="" "4" "" ; t= "" "0.2857163263170416" "" ; c = "" "0.5959392401496606*%i+0.1139727184036316" "
"n="" "5" "" ; t= "" "0.2857144897937824" "" ; c = "" "0.5959353258460209*%i+0.1139808467588366" "
"n="" "6" "" ; t= "" "0.2857143061224276" "" ; c = "" "0.5959349343683512*%i+0.1139816596727942" "
"n="" "7" "" ; t= "" "0.2857142877551018" "" ; c = "" "0.5959348952201112*%i+0.1139817409649742" "
"n="" "8" "" ; t= "" "0.2857142859183673" "" ; c = "" "0.5959348913052823*%i+0.1139817490942002" "
"n="" "9" "" ; t= "" "0.2857142857346939" "" ; c = "" "0.5959348909137995*%i+0.1139817499071228" "
"n="" "10" "" ; t= "" "0.2857142857163265" "" ; c = "" "0.5959348908746511*%i+0.1139817499884153" "
</pre>
or using quad double precision ( qd library) :
<syntaxhighlight lang=c>
./a.out
t(0) = 2.95685999407889202537083517598191479880016272621355940112392033e-01
t(1) = 2.87561745861029587995763349374215634699576366286473943622953355e-01
t(2) = 2.85916253540726005296290351777281930430489555597203400050155169e-01
t(3) = 2.85734672540588170268886130620030074831025799037914834916050614e-01
t(4) = 2.85716326317041655001121670485871240052920659174284332597727197e-01
t(5) = 2.85714489793782460278353122604001584582831972498394265344044955e-01
t(6) = 2.85714306122427620319960416932943500595980573209849938259909447e-01
t(7) = 2.85714287755101827223406574888790339883583192331314008460721020e-01
t(8) = 2.85714285918367344802846109454092778340593443209054635310671634e-01
t(9) = 2.85714285734693877529661113954572642424219379874139361821960174e-01
t(10) = 2.85714285716326530612031305016895554055165716643985018539739541e-01
t(11) = 2.85714285714489795918365211009352427817161964062263710683311655e-01
2/7 = 2.85714285714285714285714285714285714285714285714285714285714286e-01
</syntaxhighlight>
====2/9====
<pre>
(%i7) cf(2/9);
(%o7) [0, 4, 2]
(%i8) cf(2/9 + 0.1);
(%o8) [0, 3, 9, 1, 2]
(%i9) cf(2/9 + 0.01);
(%o9) [0, 4, 3, 3, 1, 3, 4]
(%i10) cf(2/9 + 0.001);
(%o10) [0, 4, 2, 11, 1, 9, 8]
(%i11) cf(2/9 + 0.0001);
(%o11) [0, 4, 2, 123, 81]
(%i12) cf(2/9 + 0.00001);
(%o12) [0, 4, 2, 1234, 8, 10]
(%i13) cf(2/9 + 0.000001);
(%o13) [0, 4, 2, 12345, 4, 3, 1, 4]
(%i14) cf(2/9 + 0.0000001);
(%o14) [0, 4, 2, 123456, 2, 1, 8]
(%i15) cf(2/9 + 0.00000001);
(%o15) [0, 4, 2, 1234567, 2]
(%i16) cf(2/9 + 0.000000001);
(%o16) [0, 4, 2, 12345678]
(%i17) cf(2/9 + 0.0000000001);
(%o17) [0, 4, 2, 123456806]
(%i18) cf(2/9 + 0.00000000001);
(%o18) [0, 4, 2, 1234571860]
(%i19) cf(2/9 + 0.000000000001);
(%o19) [0, 4, 2, 12345935203]
(%i20) cf(2/9 + 0.0000000000001);
(%o20) [0, 4, 2, 123453937153]
(%i21) cf(2/9 + 0.00000000000001);
(%o21) [0, 4, 2, 1234539371537]
(%i22) cf(2/9 + 0.000000000000001);
(%o22) [0, 4, 2, 12794317123211]
(%i23)
</pre>
=Questions=
* is it possible to find function which maps circle to Siegel disc ?
* what happens between virtual Siegel disk and parabolic critical orbit ?
== which external rays ( parameter rays) land on the Siegel points c ? Rays for irrational angle ? ==
What are the angles of external rays that land on the Cremer and Siegel parameter points c ?
Those that do not belong to any closed wake. They are irrational and I guess there is not much more known. You can approximate them with angles of suitable wakes ...
This something analogous to the construction of the middle-1/3 standard Cantor set by removing open intervals successively.
* Start with [0,1].
* Remove (1/3, 2/3).
* Remove (1/7, 2/7) and (5/7, 6/7)
* ...
There is a Cantor set of angles remaining, which are the angles of all rays landing at the main cardioid. The rational angles belong to roots and the irrational angles to Siegel and Cremer parameters. Moreover, each rational angle is a boundary point of an interval removed after finitely many steps. So in the following construction of removing closed intervals, you do not get a Cantor set, and only the irrational angles remain:
* Start with [0,1].
* Remove [1/3, 2/3].
* Remove [1/7, 2/7] and [5/7, 6/7]
=Further reading=
* cylinder reormalization
* [http://www.math.univ-toulouse.fr/~cheritat/Exposes/Rome.pdf Arnaud Chéritat : presentation Rome, Avril 2009 : Siegel disks ]
* [http://arxiv.org/abs/0805.3477 Boundaries of Siegel disks - numerical studies of their dynamics and regularity by Rafael de la Llave, Nikola P. Petrov]
* [http://www.springerlink.com/content/1l4381h5431t163v/ Fixed points and circle maps by Ricardo Pérez-Marco]
* [http://www.nahee.com/spanky/www/fractint/jayrhill/JuliaSetsOrbitsSiegelDisks.txt fractint- Julia Sets, Orbits,Siegel Disks]
* [https://www.youtube.com/watch?v=rKdrSixqDqY youtube: Collapse of a Siegel Disk Gary by Welz]
* small divisors<ref>[https://arxiv.org/abs/math/0009232 An Introduction To Small Divisors by S. Marmi ]</ref>
** [http://www.cornell.edu/video/john-milnor-small-denominators video : john-milnor small-denominators]
** [http://www.dynamicsofpolygons.org/Chronology.htm Chronology of the KAM Theorem and the Outer Billiards Map]
=References=
<references/>
* Local connectivity of some Julia sets containing a circle with an irrational rotation. / Petersen, Carsten Lunde. In: Acta Mathematica, Vol. 177, No. 2, 1996, p. 163-224.
* Building blocks for quadratic Julia sets. Article in Transactions of the American Mathematical Society 351(3):1171-1201 · January 1999 DOI: 10.1090/S0002-9947-99-02346-6
{{BookCat}}
37zikekryjlo6omyhmlsaoimim9xmmv
Aros/Platforms/Arm Raspberry Pi support
0
286123
4672147
4672108
2026-09-24T14:24:45Z
Jeff1138
301139
4672147
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 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
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 -
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 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1)
* 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 heatsink/fan on 3b to prevent cpu 82C+ throttling
* 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]
'''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi
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. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 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 reboot. Another thing to try, 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. Sometimes Disconnect and try Connect.
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
[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 javascript websites can be slow to load 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) or iPhone setting in menus. Html5test gives 189 out of 555.
You may have to delete the cache (in same drawer/folder) to fully retest big updates.
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
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ 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://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use in a shell e.g. date 24-Dec-2026 23:59:59
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+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer 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], [],
Regarding 680x0 emulation, there are several options 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
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]
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.
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-->
|-
|}
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],
=====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/h264 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 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 x264/h264 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 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 nm, peak at 880 nm and trails off at 940 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>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
855xgwjzgchr9aawi34lyzzpqjwiosw
Mentor teacher/To talk about the conversation in mentoring
0
290829
4672161
4659465
2026-09-24T15:31:28Z
R. Henrik Nilsson
3395618
commited > committed
4672161
wikitext
text/x-wiki
== What does it mean to metacommunicate? ==
Verbal [[wikipedia:meta-communication|metacommunication]] is a form of communication where we talk about and analyze an ongoing conversation by "taking a step out of it". To some extent metacommunication resembles an ordinary conversation because it has a content, a dialogue form and a time frame. Baltzersen (2008) divides the concept into threekey questions:
* What do we metacommunicate about?
* How do we metacommunicate?
* When do we metacommunicate?
The “what-question” refers to the metacommunicative content which can be divided into three subcategories. First, we can ''talk about the conversational content''. This is not the same as the fact that all conversations will have a content; we don't always make the ''content of conversation'' into a ''subject of conversation''. For instance, the mentee might say: ''"We have talked so much about what I did in the classroom, perhaps we could also discuss some relevant theories”'' The focus is not on subject matters, but rather on conversation subjects to discuss during mentoring.
Second, we can ''talk about the conversational relationship''. This may often be experienced as some kind of evaluation of the conversation. It´s possible to focus on different aspects of the relationship such as proximity/distance (e.g. “I think we should talk more openly”, symmetry/asymmetry (e.g. “You don't need to tell me what to do all the time!”), evaluation of the other(e.g. “Why do you need to be so harsh when you are talking to me?) or evaluation of oneself (e.g. “I guess I seem a little uncertain when I am talking to you”). We can also metacommunicate if we sense there is a potential mismatch between what the person is saying and how the person is behaving. For example, it might be necessary to metacommunicate if the mentee shows dissatisfaction through the body language (e.g. “You say that you are happy, but to me you look upset.”).
Thi, we can ''talk about the use of conversational time''. This can be done in different ways, for instance by discussing how often the conversations should take place (e.g. “Perhaps we could meet more often?”), speaking order (e.g. “I would like to speak first this time”) length of conversation (e.g. “I'm running out of time, can we make this conversation as short as possible?”) or speed (e.g. “I have another meeting to go to, you will need to get to the point.”) Below is a chart showing how we can categorize various metacommunicative statements and questions based on Baltzersen's (2008) definition.
{| class="wikitable" border="1"
|-
! '''Example'''
! '''What can we metacommunicate about'''
! '''How can we metacommunicate'''
! '''When can we metacommunicate'''
|-
| ''“How would you sum up the conversation; what did we agree on?”''
| Talking about the conversational content
| Dialogical
| The past conversation
|-
| ''“Do you constantly have to tell me what to do?”''
| Talking about the conversational relationship (symmetry-asymmetry)
| Monological
| The past conversation
|-
| ''“Yes, Per, if I understand you right, you would like advice on how to handle some of the more difficult students in your class. You are disappointed that they are so disruptive.”''
| Talking about the conversational content (paraphrase)
| Monological
| The “here-and-now” conversation
|-
| ''“What do you mean by saying that?”''
| Talking about the conversational content
| Monological
| The "here-and-now" conversation
|-
| ''“There are many questions that are difficult to put into words. You simply feel uneasy. Remember that you don't need a well formulated question in order to come talk to me (...)”''
| Talking about the use of conversational time (degree of accessibility)
| Monological
| The future conversation
|}
Furthermore, writing tools can also support metacommunication. We can for instance make a written agreement, a summary or write a reflection document. In the literature on mentoring it is usually recommended that a written agreement is established early on in the mentoring process (see for instance Nilssen 2010). Such agreements can be of varied content, form and length. Some institutions that offer mentoring have also created a general template with suggested topics to include in the agreement (See more in article about written tools in mentoring).
The advantage of this kind of agreement is that both parties get a chance to present their expectations. If the agreement is specific, this may reduce the amount of misunderstandings later in the process. The parties will also feel more committed. In addition it might be easier to talk about sensitive subjects.
== Different types of strategic metacommunication ==
In professional mentoring there are different ways to metacommunicate. Some of them are:
<div style="margin: 10px 10px 0 0; border: 2px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color: #f8f8ff;{{Text default color}}; ">
* To talk about the professional form of communication.
* To talk about the mentoring relationship.
* To ask questions that will clarify a conversation.
* To sum up the mentoring conversation.
* To talk about what we should not talk about.
</div>
=== To talk about the professional form of communication ===
In this article we discuss different ways to metacommunicate in professional mentoring conversations. For example, one interesting question is who should decide the topics of discussion. Carson and Birkeland (2009) claim that it is important to talk about the mentoring pedagogy. One reason is that many mentees expect to get a lot of advice (ibid: 37). Some mentees would also prefer that the mentor makes choices for them, and they can therefore easily become frustrated.
Both Carson and Birkeland (2009: 126) suggest that the mentoring strategy should build on an informed consent from the mentee. If the mentee opposes against a specific mentoring approach, this should be taken into account. A difficult situation might emerge if the mentee want to use a mentoring strategy that the mentor dislikes (Nilssen, 2010).
Usually, the mentee chooses the conversation topic, while the mentor decides how to structure the mentoring process. Carson and Birkeland (2009) question whether this is the best solution. Baltzersen (2008) finds that among students who find metacommunication important in thesis supervision, only around half of the students experience that this kind of communication is used. The reason is probably that the students see it as the mentor's responsibility to take such an initiative (Lauvås and Handal, 1998).
=== To talk about the mentoring relationship ===
According to Nilssen (2010) feelings will always determine how we relate to each other. This is also the case in mentoring. It can sometimes be appropriate to talk about the mentorship relation. A mentor explains: ''“In my group of mentees there was a person taking the lead, who was very keen on speaking during the mentoring sessions. Another student would speak only when asked to. We discussed this. Was this how we wanted our sessions to be? Should everyone contribute? What did we want? The quiet student said that she would like to speak more, but that she didn't feel good at expressing herself orally. We agreed that everyone should speak with the skills we had.”'' (Nilssen 2010:82)
=== To ask questions that will clarify a conversation ===
As mentors we will continuously ask ourselves questions tacitly in the ongoing mentoring conversation: “Am I challenging her too much?”, “Are we going in circles?”, “Are we moving forward with the conversation?”, “What do we avoid discussing?” This kind of thinking often takes place solely inside the mentor's head, but it influences on the direction of the conversation. Sometimes these questions will be made explicit in the conversation in order to clarify ambiguities and misunderstandings. Below are some examples:
<div style="margin: 10px 10px 0 0; border: 2px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color: #f8f8ff;{{Text default color}}; ">
* “I understand that we disagree, but I am certain that I know what you are thinking when...”
* “I don't understand what you mean by...”
* “I get a little uncertain when you put it that way.”
* “I wonder if I said something wrong.”
* “Do you mean that...?”
* “Do you think that we should rather...?”
* “I would like to talk to you about the... I wonder if I have misunderstood.”
* “If we talk it over a little more, perhaps we could...”
(Carson and Birkeland 2002:98)
</div>
=== To sum up the mentoring conversation ===
It is usually recommended to sum up the mentoring conversation by agreeing upon the main discussion points. The summary should not be too extensive, but is should give both parties some time to reflect on the status of the situation and the way ahead (Carson and Birkeland 2009: 83-84). It can also be beneficial to start every conversation by summarizing the last conversation.
== Empirical research on the value of metacommunication==
Baltzersen (2013) finds that there is a strong positive statistical correlation between the degree of metacommunication and the perception that the communication is good. Regular conversations about the conversation appear to prevent conflicts. It is also possible talk about what we should not talk about.
== Sources ==
* Baltzersen, Rolf K. (2008): ''Å samtale om samtalen. Veiledning og metakommunikasjon.'' Bergen: Fagbokforlaget.
* Baltzersen, R. K. (2013). The Importance of Metacommunication in Supervision Processes in Higher Education. ''International Journal of Higher Education'', 2(2), p128. [http://sciedu.ca/journal/index.php/ijhe/article/view/2764]
* Carson, Nina og Åsta Birkeland (2009). ''Veiledning for førskolelærere''. Kristiansand: Høgskoleforlaget.
* Nilssen, Vivi (2010). ''Praksislæreren''. Oslo: Universitetsforlaget.
* Lauvås, Per og Gunnar Handal (1998): ''Hovedfagsveiledning ved Universitetet i Oslo''. Oslo: Pedagogisk forskningsinstitutt, Universitetet i Oslo. (Rapport nr.1)
{{BookCat}}
ttl45ct4lt8g224h7b1ms0tdmft2yl0
How Wikipedia Works/Chapter 12
0
292418
4672181
4058222
2026-09-24T17:26:28Z
R. Henrik Nilsson
3395618
unncessary > unnecessary
4672181
wikitext
text/x-wiki
=Chapter 12: Community and Communication=
A large, diverse, and thriving group of volunteers produces encyclopedia articles and administers Wikipedia. Over time, members of the Wikipedia community have developed conventions for interacting with each other, processes for managing content, and policies for minimizing disruptions and maximizing useful work.
In this chapter, we'll discuss where to find other contributors and how to ask for help with any topic. We'll also explain ways in which community members interact with each other. Though most discussion occurs on talk pages, Wikipedia has some central community forums for debate about the site's larger policies and more specific issues. We'll also talk about the make-up of the community. First, however, we'll outline aspects of Wikipedia's shared culture, from key philosophies about how contributors should interact with each other to some long-running points of debate to some friendly practices that have arisen over time. Although explicit site policies cover content guidelines and social norms, informal philosophies and practices help keep the Wikipedia community of contributors together.
==Wikipedia's Culture==
Wikipedia's community has grown spontaneously and organically—a recipe for a baffling culture rich with in-jokes and insider references. But core tenets of the wiki way, like Assume Good Faith and Please Don't Bite the Newcomers, have been with the community since the beginning.
===Assumptions on Arrival===
Wikipedians try to treat new editors well. Assume Good Faith (AGF) is a fundamental philosophy, as well as an official guideline (shortcut WP:AGF) on Wikipedia. It can be summarized as: Unless you have strong evidence to the contrary, you should always assume that people who work on the project are trying to help it, not hurt it.
Assuming good faith means that if someone doesn't seem to be following policy, assume that he or she simply made a mistake rather than deliberately disrupted the encyclopedia; always give an editor the benefit of the doubt. The assumption that everyone involved simply wants to make the encyclopedia better leads to more constructive debates and helps foster harmony on the site. As part of this attitude, a user's reputation on another Web forum or project should not be used against him or her.
Assume Good Faith is a good place to begin, but practicing it can be difficult. If an editor starts by apparently creating an article about him- or herself or his or her company, assuming this editor is primarily interested in general encyclopedia work is difficult; a tension exists between Assume Good Faith and Conflict of Interest. If an account is single purpose—that is, the editor only makes partisan edits in a small topic area—then assuming good faith is harder because promotional and activist editing is unwelcome. Vandalism is a fairly clear demonstration of bad faith and will usually result in short blocks. What Assume Good Faith means, however, is that you should first try to figure out an editor's intentions by engaging in discussion and informing him or her about policies. A single-purpose or disruptive editor might always broaden his or her contributions to the project.
Please Don't Bite the Newcomers is the name of another guideline (shortcut WP:BITE) that focuses on the importance of being welcoming to newcomers. Obviously this guideline is compatible with Assume Good Faith. It encourages you to be gentle with newbies if you see them making mistakes. Encourage newcomers—you want them to keep contributing—and teach them about Wikipedia. We were all new once! A new editor's ignorance of some policy details is not surprising—what would be surprising would be to find someone new who has already mastered them all.
Agree to Disagree
If you disagree with someone's edit or action, but you can see that the edit or action followed from a reasonable position, consider refraining from reverting the edit. Does it matter that much? Different edits might be just as good for the encyclopedia, and not every decision should be treated as a point of principle. This aspect of the site may be one of the harder ones for the newcomer to appreciate. Because no one really directs Wikipedia, you should take a peaceful approach and assume that the community's good sense as a whole will prevail; reasonable people can agree to disagree.
=== Random Acts of Kindness===
Wikipedia has some friendly customs. One of these is welcoming new editors on their talk page. Simply saying, "Hello, good work!" when you notice a helpful edit from a new contributor is encouraging. Many welcomers leave a more involved initial message, with links to help pages and more information about Wikipedia. The <nowiki>{{welcome}}</nowiki> template, if left on a talk page, is one example of such a message; editors may also code their own welcome messages, as we did in Chapter 9, Images, Templates, and Special Characters. A personal greeting is irreplaceable. A welcoming committee works on coordinating messages for new editors, but everyone can help out with this task; see [[:w:Wikipedia:Welcoming committee]] (shortcut WP:WC) for more.
Informal mentoring of new users happens all the time, but a formal mentoring program also exists, known as [[Wikipedia:Adopt-a-User]] (shortcut WP:ADOPT), involving hundreds of Wikipedians. To adopt a new user, you need an edit count of 500; to sign up for adoption, simply follow the directions on that page.
Wikipedians are also in the habit of giving each other awards for work well done. The original and most popular award is the Barnstar (Figure 12.1, “The original Wikipedia barnstar”). The barnstar is a template you can add to any editor's user talk page if you feel he or she deserves the award; Wikipedia has many variations on this award, such as the Anti-Vandalism Barnstar, The Tireless Contributor Barnstar, or The Random Acts of Kindness Barnstar. See [[Wikipedia:Barnstars]] (shortcut WP:BARN).
Figure 12.1. The original Wikipedia barnstar
The Origin of the Barnstar
The barnstar was created by Sunir Shah on MeatballWiki (see Chapter 2, The World Gets a Free Encyclopedia) in 2003; barnstars were introduced to Wikipedia in February 2004. Since then, the concept has become ingrained in Wikipedia culture. Barnstars are rewards for hard work and due diligence. The image used most commonly on Wikipedia is of a structural barnstar, a metal object used to help brace a wall, which relates to the wiki notion of barnraising by building a page together; see the article at [[Barnstar]] for more details.
You can see other awards at [[:w:Wikipedia:A nice cup of tea and a sit down]] (shortcut WP:TEA). In fact [[:w:Wikipedia:Other awards]] runs to wiffle bats, a Zen garden (for Infinite Patience), a medal for Janitorial Services, and the Exceptional Newcomer Award. (Charles has also been given virtual jellybeans and a virtual bicycle as well as a Random Chocolate Chip Smiley—a cross between a cookie and a smiley face.)
Other aspects of recognition and motivation are not quite as well established. WikiMoney was a system of incentives operational in 2003–2004, but this system has fallen into disuse. Article writing competitions, such as [[:w:Wikipedia:The Core Contest]], are sometimes held.
=== The Open Door===
People come and go on Wikipedia all the time. As many as 10,000 new accounts are created every day, and over 7 million accounts have been registered. These numbers are a little misleading, however, since most accounts remain unused or are hardly used at all to edit. But this freedom to join up and participate casually helps ensure that Wikipedia is an open community. Now open editing is not quite the same as easy editing, even with a friendly wikitext editing system. Wikipedia itself has become much more complex, as a first encounter might convince you. And yet, beneath all the technical, social, and administrative complications that editors can sometimes run into, the site's radical and open nature is still recognizable.
Compared to other online communities, Wikipedia is unusual. Conventional wisdom holds that online communities tend to grow to a certain natural scale. They wax and wane, with people being closely involved for perhaps six months. They attract a nomadic populace, aside from a few hardcore supporters, and leave memories rather than marks. Wikipedia is an example that contradicts each one of these statements. It has grown much beyond village scale, and many people have been involved for years.
The drive to keep the community as open as possible (anyone online can edit) has shaped the whole debate about how Wikipedia should be operated. The 2001 statement [[:w:User:Jimbo Wales/Statement of principles]], now perhaps rarely read, put forth eight points about the community and the project. The first three are:
* Wikipedia's success to date is entirely a function of our open community.
* Newcomers are always to be welcomed.
* "You can edit this page right now" is a core guiding check on everything that we do.
Seven years later, this manifesto has largely been delivered. The autoconfirm restrictions introduced in late 2005 and described in "Registering an Account" on Section 1, “On Arrival” have been the only big restrictions on accounts.
These principles have many continuing implications. For instance, although many people over the years have suggested restricting editing to registered users, this is still unlikely to happen. (What may happen instead is a version of stable versions, where some edited versions will only go live after review; this technical development is still being debated.)
===Soft Security===
You might not completely believe it, especially if you've had an early encounter with an administrator, but Wikipedia's security system—the measures taken to protect the site—mostly stays in the background. Wikipedia's security is soft, meaning security is largely reactionary. Bad contributions cannot be completely excluded from the site, so those cleaning up afterward rely instead on checking contributions and reverting bad changes.
One of the paradoxes of Wikipedia is that this system seems like it could never work. In a completely open system run by volunteers, why aren't more limits required? One answer is that Wikipedia uses the principle of soft security in the broadest way. Security is guided by the community, rather than by restricting community actions ahead of time. Everyone active on the site is responsible for security and quality. You, your watchlist, and your alertness to strange actions and odd defects in articles are part of the security system.
;Further Reading
* http://en.wikipedia.org/wiki/Wikipedia:Assume_good_faith The guideline concerning Assume Good Faith
* http://en.wikipedia.org/wiki/Wikipedia:Please_do_not_bite_the_newcomers The guideline about being nice to newcomers
* http://en.wikipedia.org/wiki/Wikipedia:Barnstars Information about barnstars with links to other award pages
* http://en.wikipedia.org/wiki/User:Jimbo_Wales/Statement_of_principles A statement of community principles
Another Take on Soft Security
The idea of soft security on a wiki comes from MeatballWiki (described in Chapter 2, The World Gets a Free Encyclopedia). At http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity, an essay on the topic says:
Soft Security is like water. It bends under attack, only to rush in from all directions to fill the gaps. It's strong over time yet adaptable to any shape. It seeks to influence and encourage, not control and enforce. […]
Soft Security follows from the principles of
Assume Good Faith People are almost always trying to be helpful; so, we apply the Principle of First Trust, confident that occasional bad will be overwhelmed by the good.
Peer Review Your peers can ensure that you don't damage the system.
Forgive and Forget Even well-intentioned people make mistakes. They don't need to be permanent.
Limit Damage When unpreventable mistakes are made, keep the damage within tolerable limits.
Fair Process Kim and Mauborgne's theory that being transparent and giving everyone a voice are essential management skills.
Non-Violence Do no violence lest violence seek you.
===Communicating with Other Editors===
All of these core community principles rely in practice on editors making an effort to communicate with one another. Wikipedia has multiple channels for communication and more forums than any one person can sensibly track. Here we'll guide you through some of the complexities of where and how you can communicate with other editors to draw attention to a problem, get feedback, ask a question, or even just chat socially.
Wikipedia has several types of pages where editors communicate with one another:
Article talk pages for discussing article content
User talk pages for leaving another contributor personal messages
Project page and policy page talk pages, where individual policies or processes are discussed
Project-wide forums for discussing Wikipedia, asking questions, or offering general proposals
Noticeboards for raising alerts to problems or items of interest about a particular topic
Process pages for getting feedback or taking polls on a particular kind of issue (such as deletion debates)
Outside of Wikipedia itself, or off-wiki, discussions happen on IRC, via email lists, on the Meta site (described in Chapter 17, The Foundation and Project Coordination), and during in-person meetups. Many Wikipedians also blog, adding to the hundreds of outside media stories that are published about Wikipedia every year. This is a big, ongoing conversation, and any contributor can join it at any time.
Faced with this full range of possibilities, the best thing is not to be daunted but to reach out steadily. Chat with those you have some contact with on the site. Don't jump from "steady" to "spam": Pasting similar messages to many pages at once is discouraged. Stay generally on-topic, maintain a pleasant and respectful tone, and assume good faith.
==== Talk Page Guidelines====
Talk pages for articles, introduced in Chapters Chapter 4, Understanding and Evaluating an Article and Chapter 6, Good Writing and Research, and user talk pages, introduced in Chapter 11, Becoming a Wikipedian, are the primary way that editors connect with one another. Talk page conventions have been developed over time; in other words, Wikipedia has plenty of experience with discussions, helpful and otherwise. When you are writing on a talk page, certain approaches are counterproductive, whereas others make for good editing and create a friendly atmosphere. Staying on topic is important. While on Wikipedia, you are addressing a sophisticated audience that appreciates focus and relevance. At all times, ask yourself whether your contributions are making the encyclopedia better (before you click Save, rather than after). If they're not, it might be time to take a break.
Note
Staying with these conventions in all types of discussions and debates, whether on talk pages or other forums, is a good idea. Remember that your Wikipedian persona is something you construct largely through communicating with others.
Notice the general structure of an article talk page (Figure 12.2, “A talk page”). Templates and messages appear right at the top. Also somewhere near the top you'll find a list of any archives. Very long talk pages are archived as subpages of the original page (usually divided by date); ongoing, live discussions should not be archived. Then you'll find a list of discussion topics by section. These sections are not normally divided up into subsections; instead, each discussion within the section is threaded, as shown in "Reading and Contributing to Talk Pages" on Section 1.4.1, “Reading and Contributing to Talk Pages”. Older topics are higher on the page, and new topics should be started with new sections at the bottom of the talk page. For existing topics, the order of postings within the threaded discussion should be chronological, and you should normally join an existing discussion by adding your comment or reply at the bottom of the section.
Figure 12.2. A talk page
The prime values of talk pages are the three Cs: communicativeness, civility, and considered answers. These principles, after all, are likely what you yourself hope for in discussions. Be wary of the most contentious topics, such as religion and politics, where conversations are likely to be complex. For these topics, review past discussions and get a feel for the tone before joining the discussion. For most articles you can simply start participating.
Now for some detailed advice.
;Stick to discussing the article, and save self-expression for your own user page.
Stay on topic, focusing on how to fix the article. Article talk pages are not provided as a place for general discussion about the article's subject, and they shouldn't be used by editors as platforms for their personal views or experiences. Discussion about other articles should note duplications, possible imports or exports of content, or merges with the article in question. Avoid unrelated conversations.
;Use the talk pages for discussing facts and sources.
The talk page is the ideal place for raising verification-related issues. If you believe an article is misleading or plain wrong about a claim, go to its talk page and present your case. Ask for help to find some better sources, compare contradictory facts from different sources, and examine critically the reliability of references. Requesting a verifiable reference to support a suspect statement is often better than merely arguing against it ("Can you tell me who else supports that statement?" rather than "I think you're wrong"). And offering a reliable, contradicting reference won't hurt your case either.
;Be brief but not abrupt. Be specific about changes you'd like to see.
Amplify your edit summaries with fuller discussions. In some cases you may be editing the talk page but not the article deliberately (for example, if you are personally involved in the topic). You can expect to be heard if you're reasonable; remember being shrill is probably counterproductive, whereas being patient will gain sympathy from other editors. Explain what you see as the problem with an edit or section, and offer suggestions as to how fix it. Help matters along, even if you're in an argument, by offering new drafts.
;Talk pages have a warehousing function.
You can post material removed from an article to the talk page. This is commonly done for verification purposes (to ask other editors if they have any references to support a claim, for instance) or to comment in detail on some problems. This technique is less in-your-face and aggressive than simply discarding someone else's work: The implication is not as strong as a permanent cut. You're also acknowledging that the material may be useful if rewritten or incorporated elsewhere. But you can't move copyrighted materials onto a discussion page. If copyright problems have necessitated a heavy pruning of the article, add a talk page note explaining the issue and referencing a source for the apparent violation.
;Be civil, and make no personal attacks.
This is absolutely fundamental. Be reasonable and treat other people with respect; after all, you're having a polite and professional conversation with them. Carry yourself as a colleague, not an adversary. Assume good faith by starting with the attitude that others are trying to do the right thing. No insults: Don't make ad hominem attacks, such as calling someone an idiot or a fascist. Discussing an editor rather than the article is going down the wrong path. Bear in mind that level-headed, fair-minded, constructive, consensus-seeking, and other similar descriptions (from others) are pure gold in terms of developing your Wikipedia reputation; try to epitomize these qualities when discussion becomes heated.
;Avoid the absolute no-nos.
Don't threaten people. For example, promising bans for disagreeing with you is not going to help matters. Bringing up the "administrators you know" is not a great topic to raise. Never make legal threats: Threatening a lawsuitis highly disruptive to Wikipedia and almost never has the intended result. (And you'll likely get banned yourself.) Dispute resolution is more effective, so see Chapter 14, Disputes, Blocks, and Bans for more on the proper channels. Never post personal details or insinuations about others or threaten anyone with anything off the site. Indefinite blocks await those who do these things.
;Don't delete comments, and refactor discussion only as a last resort.
Everyone is entitled to their opinion on a discussion page. Do not delete or rewrite comments, including your own. The convention is to leave other people's comments completely alone: Don't even correct the spelling. If you wish to take something back, delete it and insert a quick apology in its place. But if it is too late and removing the offending comment would make other editors' comments look strange, strike out your comment with the <s> and </s> tags. In principle, talk pages can be refactored, or summarized, to make discussion clearer. This is relatively rare and requires skill. The better, and definitely easier, course is to add some summaries of your own.
;Don't exclude newcomers.
One statement that is frowned on is "We've already decided that point." A newcomer can reasonably reopen any issue about article content. Wikipedia pages are supposed to improve over time. Learn patience. If a point has been discussed previously and then archived, be courteous and point the newcomer to the discussion. If consensus has been reached, take a moment to explain it or gently refer to the archived discussion.
;Problem users show themselves over time.
When you first answer a comment, whether reasonable or not, you really don't know whether a teenager or a tenured professor left it. Part of assuming good faith is not judging other editors based on just one or two comments; good manners are never wasted. Avoid accusations: Say "I disagree" rather than "you're obviously biased on this issue."
After a while you may conclude that the editor is a time-waster, someone who knows little about the subject, or an autodidact who has book knowledge but is mightily confused. Or worse: You might be dealing with a true crank, a malicious user (vandal), or a provocateur (troll)—and he or she may have more time on his or her hands than you do. The basic tips are to keep cool and be polite; don't outwardly assume bad faith, but do become more guarded; taper off your responses, and don't get dragged into escalating futile, repetitive debates.
;Don't Feed the Trolls
Some people are simply attention seeking and argumentative, to the point of being disruptive. The saying Don't feed the trolls encourages you to ignore this behavior and not be provoked into an unnecessary argument. See http://meta.wikimedia.org/wiki/What_is_a_troll?.
To round off this discussion: At worst, the three Cs may have to turn into the three Ps—politeness, patience, and policy. Policy matters especially when dealing with hostility and aggressive, biased editing. Learn the appropriate policies and guidelines in sufficient detail, so you can fend off bad behavior without being drawn in yourself.
;Those Tilde Signatures
Unlike article contributions, discussion contributions should be signed. Using four tildes to sign <nowiki>~~~~</nowiki> is standard and produces your username and a timestamp. Signing with three tildes produces your username but no timestamp. Five tildes, on the other hand, produce a timestamp but no name.
==== Voting and Discussing====
Having everybody vote on everything is cluelessocracy. (User:Eclecticology, April 10, 2007, wiki-en mailing list)
Wikipedia is not a democracy, though calling it undemocratic would also be rather misleading. Compared to many other online projects, Wikipedia has few majority votes, but instead uses discussions on talk pages and project pages to gather participant consensus. (Though the scale of Wikipedia seems to justify a move to representative democracy rather than direct one-person one-vote polling, this is not happening at all—individual participants are still expected to weigh in.)
The structure at [[Wikipedia:Requests for comment]] (shortcut WP:RfC) is typical. In Wikipedia terms, an RfC is a tightly defined but open forum discussion, addressing an issue in one of three areas: content, editor behavior, or policy. Other editors are invited to contribute to the discussion and offer their opinions on the right solution. In addition to being used on RfCs, polling occurs commonly during deletion debates and administrator promotion discussions.
These polls are not simple votes, however. In almost all discussions on Wikipedia, the reasoning behind each comment is taken into more consideration than the number of people indicating support for a particular position. To add to any discussion, support your comment with public facts. Suppose you participate in a debate on a binary decision: yes/no or keep/delete. Don't simply say, "I like it/hate it," but instead offer a reasoned opinion as to why you feel the way you do. Indicate clearly what site policies and other factors inform your opinion to arrive at your conclusions; if you agree with something already said by another contributor, make that clear.
Here's a full comment, logged in a deletion debate for a highly controversial article, [[Allegations of state terrorism committed by the United States]]. The debate here is whether to keep the article or delete it, and the comment is from someone who thinks the article should be kept:
Strong Keep - what has changed since the six previous Afds? Well, take a good look and you will find that the references are now vastly improved, and the content has been significantly expanded upon and improved since the last afd. The content references what is now a considerable body of academic and human rights literature consisting of either references to descriptions of U.S. state terrorism or in-depth examinations supporting the hypothesis. See the references section which includes contributions from professors from Yale, Princeton, MIT, Columbia and Hong Kong University, among others. If you require more evidence that this is a serious scholarly concern, constituting a significant alternative discourse, albeit not representative of the mainstream, then I would be happy to provide a long long long list of academic references. BernardL (talk) 00:13, 18 December 2007 (UTC)
Not everyone contributes at such length, naturally. But notice how the comment focuses, quite properly, on reliable referencing as a way to support notability and verifiability. The framework the commenter uses is basic content policy, not the topic the article discusses, and the points made are targeted, correctly, toward the existing material available to support such an article.
1.5.3. On-Wiki Forums
The Village Pump ([[Wikipedia:Village pump]], shortcut WP:PUMP) is the primary community discussion place on Wikipedia—water cooler and town meeting rolled into one. The postings are divided up into five sections: Policy, Technical, Proposals, Assistance, and Miscellaneous. Active discussion threads take place here; you'll also find pointers to pages such as [[Wikipedia:Department directory]] (shortcut WP:DEPT), which offers you a view of Wikipedia by Department.
The Community Portal is another entry point into the social life of Wikipedia. Found at [[Wikipedia:Community Portal]], it offers a Community Bulletin Board for announcements. This offers a different way to interface with Wikipedia activity; for example, it links directly to [[Template:RFCsci list]], an updated list of discussions on science articles that asks for community input (in other words, yours). This is a place to post new proposals, requests for help with a topic, and new project announcements.
Further discussion is widely distributed, attached to project talk pages in the Wikipedia Talk namespace and on talk pages (for instance, those for particular templates or categories). Forums about aspects of site management that are not dedicated to particular processes are, by custom, called noticeboards; the best known is the Administrators' noticeboard at [[Wikipedia:Administrators' noticeboard]] (shortcut WP:AN). You can post notices there about problems that administrators can help out with.
==== Asking Questions and Resolving Problems====
How do you get help? Here are a few pointers on where to ask questions or raise concerns.
First, go to the Help desk ([[Wikipedia:Help desk]], shortcut WP:HD), the perfect place to ask questions about using Wikipedia. The Help desk deals with a few dozen queries daily—anyone who is knowledgeable about the site can help out. You will need to check back to see if your question has been answered.
You might also find Wikipedia's Frequently Asked Questions page helpful; see [[Wikipedia:FAQ]] (shortcut WP:FAQ). You'll also find other helpful links there, for example, a link to a basic tutorial.
Wikipedia also has a Reference desk ([[Wikipedia:Reference desk]], shortcut WP:RD). This, as the name indicates, functions like a library reference desk. Here you can pose factual questions about any topic, and Wikipedians will try to respond. The service is broken down by broad subject area; for example, the Humanities desk answers about ten questions a day. Again, anyone can help out, and if you are knowledgeable about a topic, feel free to answer a question.
Finally, Wikipedia has a central page, [[Wikipedia:Questions]] (shortcut WP:Q), that links to these pages and a number of others dedicated to fielding questions. For example, from here you can link to [[Help:Contents]], which is the central portal for help pages and documentation.
Note
You can read about some of the unusual requests that have been made over the years at [[Wikipedia:Unusual requests]].
If you have a problem, rather than a question, consider starting at [[Wikipedia:Problems FAQ]]. Is your problem with reading or editing Wikipedia pages? [[Wikipedia:Troubleshooting]] may help. These pages deal with technical issues.
For problems in specific areas, Wikipedia has some specialized places where you can seek help. If your copyright has been infringed by something posted to Wikipedia, [[Wikipedia:Contact us/Article problem/Copyright]] lists your options. To make a formal complaint, go to [[Wikipedia:Designated agent]]. If you consider that a biography or other article on Wikipedia defames you, go to [[Wikipedia:Biographies of living persons/Noticeboard]], where you can leave a comment for editors who will work to resolve the problem, and/or [[Wikipedia:Libel]], which has an email contact address.
For other content-related problems, join the discussion on the article's talk page, and contribute to the debate in a reasonable, non-adversarial tone. You have a perfect right to be there, but remember others will also have their own views.
Problems with another editor? Leave a civil note on his or her user talk page. In cases where the problem escalates, you can try the Administrators' noticeboard and chose the link that best fits the problem, like vandalism or page protection requests.
If you've been blocked, in particular, you should note that Wikipedia will think of the situation in terms of a block review, also called appealing a block, rather than being a problem about Wikipedia itself. Go to http://lists.wikimedia.org/mailman/listinfo/unblock-en-l for unblock discussions if you feel that you've been incorrectly or unreasonably blocked by an administrator. You'll find more details on what to do (and what not to do, more importantly) in Chapter 14, Disputes, Blocks, and Bans.
For more complex issues, or if you're uncertain whether what you've encountered is okay, you can post a comment on [[Wikipedia:Village pump (assistance)]] (shortcut WP:VPA), which is a general forum in which to ask for help. You can also use a mailing list or IRC channel, as described in "Mailing Lists and Internet Relay Chat" on Section 1.5.6, “Mailing Lists and Internet Relay Chat”. Try to find a list or channel that matches the issue.
;Further Reading
Communicating with Others
* http://en.wikipedia.org/wiki/Wikipedia:Talk_page_guidelines Guidelines on using talk pages effectively
Getting Help
* http://en.wikipedia.org/wiki/Wikipedia:Help_desk A page where you can ask questions about Wikipedia
* http://en.wikipedia.org/wiki/Wikipedia:Reference_desk A page where you can ask questions about any subject
* http://en.wikipedia.org/wiki/Wikipedia:Questions A page where you can ask questions or make comments
Community Forums
* http://en.wikipedia.org/wiki/Wikipedia:Community_Portal The Community Portal, for getting news about Wikipedia activities and finding collaborations to participate in
* http://en.wikipedia.org/wiki/Wikipedia:Village_pump The page where you can make proposals or conduct general discussion
* http://en.wikipedia.org/wiki/Category:Wikipedia_noticeboards Various noticeboards for reporting different types of problems
* http://en.wikipedia.org/wiki/Wikipedia:Administrators'_noticeboard For drawing administrator attention to a problem (anyone may post here)
==== Getting News====
You may want to find out what is currently happening on Wikipedia. [[Category:Wikipedia news]] is your first source for Wikipedia pages with news content. For example, [[Wikipedia:Announcements]] (shortcut WP:ANN) deals with milestones and Foundation matters.
Wikipedia has a few projects that bring a broader spectrum of news to the community. One of the established news services on the English-language Wikipedia is the Wikipedia Signpost (Figure 12.3, “The Wikipedia Signpost, a weekly on-site newsletter”). The Signpost is a weekly newsletter produced on-site at [[Wikipedia:Signpost]] (shortcut WP:POST).
Since 2005, the Signpost has carried stories of interest to the Wikipedia community. You can view all of the archives; this is a quick way to catch up on Wikipedia history. Each newsletter contains a few recurring sections, such as a review of that week's technical developments and a quick summary of current arbitration cases. The newsletter was started by User:Michael Snow and is now edited by User:Ral315, with contributions from a wide variety of editors. Anyone can participate by editing at WP:POST/TIPS, where you can also learn how to document media coverage of Wikipedia.
WikiProject WikipediaWeekly (shortcut WP:WEEKLY), active since late 2006, concentrates on producing a podcast about Wikipedia. As is also the case for the Signpost, you can have WikipediaWeekly delivered to your user page or user talk page. If you like RSS feeds, the Weekly has one. An alternative is the aptly named NotTheWikipediaWeekly ([[Wikipedia:NotTheWikipediaWeekly]]), which also produces a podcast show about Wikipedia.
Another such project is Wikizine, started in 2006 and edited by user:Walter from the Dutch and English-language Wikipedias. This newsletter is delivered by email to subscribers. It covers news about international projects and community, with a focus on technical issues and Foundation-level discussion. Sign up or read the current issue at http://en.wikizine.org/.
Figure 12.3. The Wikipedia Signpost, a weekly on-site newsletter
The Wikipedia Signpost, a weekly on-site newsletter
==== Mailing Lists and Internet Relay Chat====
A wide variety of mailing lists are used to discuss Wikipedia projects. The wiki-en list, which is for general discussion about the English-language Wikipedia, is a very high-traffic list; if you have a specific query, a more specialized forum on-wiki is probably more appropriate. See [[Wikipedia:Mailing lists]] (shortcut WP:MAIL) for more complete information; the lists are generally archived in several places. Lists are typically lightly moderated and publicly archived, so anything you say on them will be accessible through an Internet search.
Wikipedia also uses a number of IRC channels. Internet Relay Chat, or IRC, is a type of real-time Internet chat, designed for group communication but also allowing for one-on-one chats or private messaging. To access IRC, you need an IRC client. These programs are available for virtually every PC platform. The Chatzilla client for the Mozilla Firefox browser, which runs as a browser extension and does not require additional software, is easy to use and install. [25]
See [[Wikipedia:IRC channels]] (shortcut WP:IRC) for more technical information, a complete list of Wikipedia-related channels, and a link to those classified under Wikimedia. The Wikimedia projects use the Freenode network, which is a network specifically for open-source projects.
The channels most relevant to the English-language Wikipedia include:
#wikipedia, the general Wikipedia discussion channel, is notoriously nearly always off-topic. This is a decent place to socialize but not for the faint of heart.
#wikipedia-en has fewer people and is more focused on the English-language Wikipedia.
#wikipedia-en-help is a help channel.
#wikimedia discusses issues related to the Wikimedia Foundation as a whole.
==== Meetups and Conferences ====
All it takes to have an offline meetup is to announce it on the wiki and then get a group of local editors together for coffee, drinks, or a meal. The first meetup was in London in 2004 when Jimmy Wales and an international group of editors got together for the afternoon. Remarkably, apart from Larry Sanger, Wales had not met any editors who worked on the site in person during the first three-and-a-half years of its existence. A true child of the Internet era, Wikipedia had been put together almost entirely by people who only knew each other through mailing lists, wiki talk pages, and IRC.
Since 2004, however, hundreds of meetups in dozens of cities from Shanghai to Seattle have taken place. They are usually informal but have ranged in format from picnics in New York's Central Park to formal talks. Meetups are a great way to meet other dedicated wiki editors in a personable forum.
The Meetups page (shortcut WP:MEET) lists current and past meetups; if one doesn't already exist in your area, you can create a subpage for your city from the Meetups page and then recruit others in your area by leaving notes on their user talk pages. Browsing [[Category:Wikipedians by location]] and its subcategories will help you find people who self-identify as being in a particular area. Jimmy Wales has continued to travel to meet Wikipedians; a documentary film, Truth In Numbers: The Wikipedia Story, will be released in 2009 and includes footage of his travels.
The first annual Wikimedia Foundation conference, called Wikimania, was organized by volunteers from several Wikimedia projects and held in 2005 in Frankfurt, Germany. This was a major international event, attracting over 300 people from over 50 countries, with a great deal of press coverage. Frankfurt set a trend, featuring research papers about wikis and Wikimedia projects, reports from various communities about the success of the different sister projects, and proposals and community discussions about future work.
Wikimania is now established as an annual event (Figure 12.4, “The Wikimania logo (designed by Ben Yates)” shows the conference logo). Wikimania 2006 was held on the Harvard Law School campus, in Cambridge, Massachusetts, in the United States. In 2007, the conference was in Taipei, Taiwan, where the local community hosted the conference at a youth center; both conferences again attracted hundreds of people from all around the world.
These conferences (2008 in Alexandria, Egypt, at the New Library of Alexandria and 2009 in Buenos Aires), like most things Wikimedia, are organized by a team of volunteers from all around the world. Local communities bid for the opportunity to host the conference, submitting a proposal including location and possible sponsorship to a Foundation-based judging team. Most of the organization work takes place online, on IRC and special wiki pages on the Meta site, and combines efforts of the Wikimedia Foundation and local volunteers who lead the planning process.
Figure 12.4. The Wikimania logo (designed by Ben Yates)
The Wikimania logo (designed by Ben Yates)
Further Reading
Getting News
http://en.wikipedia.org/wiki/Wikipedia:Wikipedia_Signpost The Wikipedia Signpost weekly community newspaper
http://en.wikipedia.org/wiki/Wikipedia:WikipediaWeekly The Wikipedia Weekly podcast
http://www.wikizine.org/ The Wikizine newsletter (in English, Spanish, and German)
Mailing Lists and IRC
http://meta.wikimedia.org/wiki/Mailing_lists Information about mailing lists and links to their archives
http://meta.wikimedia.org/wiki/IRC Information about Wikimedia's IRC channels
http://www.nabble.com/Wikipedia-f14018.html Email archives of lists at Nabble (provides a forum-like view that is easier to read for high-traffic lists)
Meetups
http://en.wikipedia.org/wiki/Wikipedia:Meetup The page for coordinating meetups, including a list of past meetups along with pictures
http://wikimania.org/ Information about the annual Wikimania conference (will redirect to the current year's website)
http://meta.wikimedia.org/wiki/Wikimania The Meta page where conference planning is coordinated
=== Wikiphilosophies===
Search for wikiphilosophy and you'll get a couple hundred hits from individual users who have written about their personal Wikipedia approaches. Topics include how to work collaboratively on a wiki, how to work productively on Wikipedia, and why you should contribute. Some of these philosophies, like Assume Good Faith, have grown to become guidelines and core parts of the culture; others, like inclusionism versus deletionism, have become long-standing philosophical debates.
The most contentious issues on Wikipedia, in the longer term, have turned out to relate to content policy. This is fortunate because debating the principles of encyclopedic content relates directly to the site's mission. We have already seen two major aspects of this debate: Academic authority and the status of mainstream science was covered in Chapter 2, The World Gets a Free Encyclopedia, and conflict of interest in the deletion debate around [[Mzoli's Meats]] was discussed in Chapter 10, The Life Cycle of an Article. Although the core content policies have not been expanded by new major principles, avid discussion continues about how to apply those principles to individual articles, with debates that sometimes get picked up by the media. [26]
The debate on what articles should be included has proved to be one of the most basic and long-standing debates. Inclusionism is the philosophy that as much of the material submitted to the site should be kept as possible. The basic inclusionist position is this: Wikipedia is not paper, which implies that Wikipedia can afford to keep articles, even if, in their current state, they need to be improved or verified, so editors should strive to help the site grow as large as possible. The opposition to the inclusionists are labeled the deletionists, and they feel that an article should be in reasonable shape and about a clearly notable topic before being included; questionable material should be deleted more rigorously. Both sides agree, of course, that some new articles and content will need to be deleted; the question is over which articles and under what circumstances. As Chapter 7, Cleanup, Projects, and Processes showed, some deletion debates prove controversial, especially for new terms or ideas.
Closely related is a methodological question—eventualism versus immediatism. Eventualism, the idea that things will eventually improve if you leave them around long enough, seems most to encapsulate the wiki spirit, where things are done as people get around to doing them. Many have argued that this approach needs to be modified for certain topics, however, such as for biographies of living people, where any needed action should be regarded as urgent and carried out immediately as an ethical matter.
The debate between inclusionism and deletionism and eventualism and immediatism has flared up many times over the years in various forms. The debate has implications not only for what Wikipedia contains but also for how that content is created and worked on. Initially, the debate presented itself as the way in which Wikipedia differentiated itself from the older wiki tradition. Whereas wikis in general simply gathered opinions, Wikipedia aimed to build a factual reference resource, using notions of what was and wasn't encyclopedic. The concept of Verifiability became increasingly important, first as a criterion and then as a policy, and the community now accepts that unverifiable material may be deleted.
Attention then shifted for some years to the implications of Verifiability, such as the debate over the guideline on Reliable sources. Over time, the middle way of eventualism has won this debate, at least in practice—articles always need to be cleaned up, and deleting material that really cannot be verified is simply one aspect of the push for quality.
In 2007, attention turned back to deletionism because the net growth of articles seemed to have peaked (though outsiders were increasingly using Wikipedia for promotional ends by writing about themselves and their ventures). Although deletionism favors clear and relatively rigorous standards for accepting new articles, which are increasingly being adopted, inclusionism and the view that new articles should be given a chance have also continued to be major forces. Regardless, the inclusionist view that all processes are supposed to operate case by case rather than determining whether broad topic areas should be included continues to prevail, though this view is subject to great debate, especially in areas of popular culture.
Endless variants and positions have claimed the middle ground. See [[Category:Wikipedians by Wikipedia philosophy]] with around 30 such classes. Wikipedia has some significant hybrid positions, too. For instance, the eventualist-deletionist position is that deleting articles that really don't improve over time is not a great loss, and if a startup company or new idea prospers, an article on it will be accepted in due course. The immediatist-inclusionist position is that Wikipedia's coverage suffers if an article on a new topic is deleted when it didn't have to be. [27] As Wikipedia now tries to be both a reference site and a go-to place for current new information, the debate will continue.
===Funny Business===
Silliness, bad jokes, and shared humor have a place in Wikipedia culture. You'll find (allegedly) humorous material on many project pages, and some of these memes spill over into supposedly serious debates.
[[Category:Wikipedia humor]] (shortcut WP:HUMOR) is a collection of some of these funny ha-ha pages. The template {{humor}} is also used on funny project pages, so you can use the backlink trick of seeing what links to [[Template:Humor]] to find more pages, dating from all eras of Wikipedia's history. Many humorous project pages poke fun at Wikipedians going overboard. For instance, the collection of "Lamest edit wars" (shortcut WP:LAME) commemorates the epic battles that have occurred over what are often tiny details. Though humorous, this page also serves as an excellent introduction to Wikipedia history, cultural references, and the kinds of details that may provoke controversies.
Deadpan or Nothing
Charles once asked the main author of [[The Cantos]], an article on Ezra Pound's poetic masterpiece, whether he was going to add a spoiler warning. That was rightly taken as a joke. But a suggestion that [[0.9999…]] should be redirected to [[1 (number)]] to save arguments fooled a few people into thinking Charles was being serious.
Two of the classic funny memes are BJAODN, meaning "Bad Jokes & Other Deleted Nonsense," a collection of humorous vandalism that was finally deleted with much controversy in 2007 (and is now memorialized at WP:SILLY), and TINC. TINC stands for There Is No Cabal—a long-running joke carried over from UseNet culture. The joke really is on those who believe a secretive, small, dedicated group controls Wikipedia.
Wikipedia is a diverse enough place that if a joke relies on a shared cultural reference or technical specialty, the witticism may fall flat. Most slang phrases and Internet dialects will confuse somebody. Many contributors are not native English speakers, and certainly, even among those who are, not everyone shares a similar background.
Irony, sarcasm, and deadpan humor are especially difficult to convey online and can cause offense. Although adding a smiley face can help people see that you're joking, you may want to consider how funny the joke really is if you have to flag humor with emoticons to get it across. By the same token, though, if you're confused by something that seems preposterous, ask yourself whether the other person is making a joke before getting indignant. The point of using humor is always to make working together more fun. The [[Wikipedia:Department of fun]] is a long-running Wikiproject to help do just that.
Uncyclopedia
While most Wikipedia humor focuses on long-running memes, for true parody of the site, try Uncyclopedia. Although not a Wikimedia project, Uncyclopedia is a sister project in spirit—that is, if your sister is the type who teases you mercilessly. Uncyclopedia comes complete with its own sister projects—a dictionary, unbooks, and a news section (UnNews), where current events in the real news are often skewered. Ostensibly run by the shadowy Uncyclomedia Foundation, the site is, in fact, hosted by Wikia. Though the unpolicy is How to be funny and not just stupid, Wikipedia in-jokes abound, and a number of Wikipedians moonlight at Uncyclopedia. The mascot is a potato named Sophia that looks remarkably like a misshapen Wikipedia logo, complete with puzzle pieces; Uncyclopedia informs us that it is, in fact, an untato—technically a brain that connects to the Uncyclomedia servers that power up all the Uncyclomedia projects. See http://uncyclopedia.org/.
"Heavy Metal Umlaut"
The article on the [[w:Heavy metal umlaut|Heavy metal umlaut]]—the umlauts in heavy-metal band names such as Mötley Crüe and Motörhead—has a long and storied history, making it a famous "unusual article." First started in 2003 by an anonymous editor, the article has been featured, cited by the press, printed on a T-shirt, and was the subject of a short video describing the collaborative editing process by Jon Udell; see http://weblog.infoworld.com/udell/gems/umlaut.html.
Other fun poked at Wikipedia from outside sources, including Stephen Colbert's not unfriendly joshing, can be tracked at [[Wikipedia in culture]], which also includes additional pop culture references to Wikipedia.
Although avowedly humorous material should only be found in the project namespaces, some articles are funny and factual: [[Tarquin Fin-tim-lin-bin-whin-bim-lim-bus-stop-F'tang-F'tang-Olé-Biscuitbarrel]], for example, was the assumed name of a political candidate in a United Kingdom district election in 1981; he was registered with the [[Official Monster Raving Loony Party]]. Wikipedia has a collection of some of these more oddball (nay, eccentric) articles at [[Wikipedia:Unusual articles]] (shortcut WP:ODD).
;Further Reading
Wikiphilosophies
* http://meta.wikimedia.org/wiki/Deletionism An explanation of deletionism
* http://meta.wikimedia.org/wiki/Inclusionism An explanation of inclusionism
* http://meta.wikimedia.org/wiki/Conflicting_Wikipedia_philosophies Information on more wiki philosophies
Humor
* http://en.wikipedia.org/wiki/Wikipedia:Silly_things A collection of silly vandalism (previously called Bad Jokes and Other Deleted Nonsense)
* http://en.wikipedia.org/wiki/Category:Wikipedia_humor A collection of humorous or parody project pages
* http://uncyclopedia.org/ The Uncyclopedia site
The classic odd Wikipedia article is [[w:Exploding whale]]. Also check out [[w:Undecimber]], the thirteenth month of the year; [[w:ETAOIN SHRDLU]]; [[w:colors of noise]]; and many others. A few such articles are selected every year to appear on the main page for April Fool's Day. This is a carefully weighted joke, at the expense of those who assume Wikipedia would deliberately hoax them.
[25] If you already have Firefox, you can download and install Chatzilla at https://addons.mozilla.org/en-US/firefox/addon/16.
[26] For instance, novelist Nicholson Baker has come out as an inclusionist, interested in trying to save from deletion an article about an individual notable for his face turning blue from drinking colloidal silver. See "How I Fell in Love with Wikipedia," in The Guardian, April 10, 2008, http://www.guardian.co.uk/technology/2008/apr/10/wikipedia.internet.
[27] This was argued convincingly by Andrew Lih, a journalist and Wikipedian, who focused on the case of Pownce, an Internet startup whose article was deleted. See "Wikipedia: an Online Encyclopedia Torn Apart," in the Daily Telegraph, October 11, 2007, http://www.telegraph.co.uk/connected/main.jhtml?xml=/connected/2007/10/11/dlwiki11.xml, which overstates Lih's position; see http://www.andrewlih.com/blog/2007/10/10/telegraph-uk-on-wikipedia-inclusionismdeletionism/ for Lih's further comments.
== Who Writes This Thing Anyway?==
Who writes Wikipedia? Who are the members of the Wikipedia community? No one knows the exact answer to this question, and Wikipedia has no single point of reference for its social side.
One simple but of course inadequate approach is to ask how much work is actually connected with the English-language Wikipedia. Well, the amount of work is equivalent to 1,000 full-time people. Or it's probably more like 5,000 people working one day a week and even more like those 5,000 people devoting 8 hours a week of spare time. Wikipedia has a division of labor, because people gravitate to work they enjoy, but little hierarchy.
Believing that Wikipedia has one community is a mistake, and referring to "the community" is somewhat confusing. Who is the community? After all, the work on the project includes developing software, writing articles, and tending to the practicalities of managing a publicly editable website. Is the community those few people who actively contribute to the general mailing list or hang out on IRC? The people who care about and watch policy pages or post their thoughts at the Village Pump? Are you thinking of the contributors you encounter at a particular WikiProject? Those people who enjoy going to meetups and conferences and meeting other Wikipedians? Or the handful of people who talk to the press and give presentations? Is it those people who spend hours daily contributing and fighting vandalism, or the majority of people who are silent and occasional contributors? What about those involved with governance on the Foundation level, who may help run the sites as a whole but no longer edit articles?
The answer, of course, is that these people are all part of the Wikipedia community. The degree of social complexity, coupled with the site's large scale, probably undermines all assumptions based on previous discussions of online groups.
=== Demographics===
Wikipedia—also known as Unemployed Ph.D. Deathmatch (User:Finlay McWalter)
Wikipedia's editors are any recruits who can show that they have the talent to write and upgrade encyclopedia articles. Nothing else counts for much. Contributor anonymity is acceptable, in large part because who you are or what prior background you have is not supposed to have any effect on your contributions being accepted, as long as you respect the content policies. Whether you're a teenager or a tenured Ph.D. doesn't matter: On Wikipedia, no one needs to know you're a Doc.
Godwin's Nine Points
Use software that promotes good discussions.
Don't impose a length limitation on postings.
Front-load your system with talkative, diverse people.
Let the users resolve their own disputes.
Provide institutional memory.
Promote continuity.
Be host to a particular interest group.
Provide places for children.
Most Important: Confront the users with a crisis.
These nine points on promoting a successful online community were published in June 1994 in Wired magazine, by Mike Godwin. Godwin is a celebrated name on the Internet, for [[Godwin's law]] and other much more substantial achievements with the Electronic Frontier Foundation. In 2007, he became legal counsel to the Wikimedia Foundation.
Seeing where Wikipedia actually fails any of these points is difficult. On point 7, Wikipedia has played host to thousands of people who are intensely interested in a subject. Young contributors are welcome in Wikipedia: They are, for example, enfranchised in elections because voting doesn't have an age requirement. No one can be sure of the median age of Wikipedians, but for Wikipedia's readers, it probably corresponds to the age of the average college student.
Point 9 about a crisis may raise a wry smile from those who read the mailing lists. When has Wikipedia not had a crisis? When have discussion threads not spoken about imminent disaster? In a sense, the morphing of Nupedia into Wikipedia, with the destruction of mechanisms for approving content, was a founding crisis with constant repercussions.
Because no personal data is collected during the registration process, assumptions and information about contributor demographics are largely anecdotal. Although many editors chose to reveal parts of their identity publicly, either on their user page or in another forum (such as what they do for a living or their real name), many others do not. Meetups provide some information, but this is a self-selected group. The German-language Wikipedia, which is distinctly more academic in tone, has given some survey results suggesting a median age in the late 20s for editors.
One thing that is clear from the English-language Wikipedia is that native English speakers do not necessarily predominate. Wikipedia has many editors for whom English is a second language, and they have historically played a large part in building the site. Some edit Wikipedias in two or more languages. See Chapter 15, 200 Languages and Counting for more.
===Systemic Bias===
If you think of Wikipedia purely as an encyclopedia, its coverage of current affairs and popular culture might seem disproportionate. For instance, around half the biographies are about living people: Much effort is devoted to upgrading those 200,000 articles because real lives can be affected by the content available on Wikipedia. But what about the antiquarian, the obscure but scholarly, and topics not so well known in the English-speaking world?
Systemic bias is a term used on Wikipedia to describe the concept that notions of notability and breadth of article coverage both reflect the community of editors and their demographic. And indeed, Wikipedia's coverage is skewed toward subjects relating to Anglophone countries. For example, articles about people and places in the developing world are often missing or incomplete compared to articles about North American and European geography and personalities. Topics related to women (such as biographies of famous women or articles about feminism) are underrepresented, along with articles about blue-collar trades. This is a known problem but not one easy to address with policy. (The term systemic bias is not to be confused with systematic bias, which is one kind of violation of Neutral Point of View, where a given article or group of articles is one-sided.)
The articles that prosper on Wikipedia, generally speaking, are those that when created can immediately be linked to from existing articles and that attract editors (other than the initial author) who are active in the same general area. These positive factors can also be read the other way: If an area is somewhat neglected in Wikipedia, a new article's life cycle (Chapter 10, The Life Cycle of an Article) is initiated in a less favorable environment.
These issues are more easily understood than remedied. Volunteer editors will choose the areas they want to work on, and Wikipedia can't legislate its way into being more representative. The community must also work through the founder effect, a concept from evolution that the system will, for some time, remember or be influenced by characteristics of the founding group, rather than the larger population. See [[Wikipedia:WikiProject Countering systemic bias]] (shortcut WP:BIAS) for a dedicated forum on this topic.
Dress Sense
WikiProject Fashion was started in March 2007 to address a known weakness. Alexandra Shulman, editor of the British edition of Vogue, had awarded the [[Haute couture]] article a lowly 0 marks out of 10 in an October 24, 2005, survey in London's The Guardian. [28]
Women and Wikimedia
Are more men than women involved in Wikipedia? Evidence from in-person meetups, mailing lists, and other community forums does suggest that more Wikipedia contributors are men than women, though knowing for sure is impossible. This bias is not unusual on the Internet and in computing generally, but it is definitely not ideal for a project that aims to be welcoming to everyone.
Though discrimination based on personal characteristics (including gender) is certainly against Wikipedia's principles, some feel the site's culture is overly aggressive, a criticism that does depend on where you look for evidence. Does Wikipedia do enough to control misogynistic editors who take gender into account in debates and potentially in more harmful ways such as by harassing female editors? Others feel that given Wikipedia's practices and essential values regarding inclusiveness, no particular issue with gender exists on the projects. The topic remains controversial, and no one editor's experience is likely to be exactly the same as another's, always a difficulty in defining systemic problems.
This debate around the treatment of women on Wikipedia (and how to improve it) led to the creation of the WikiChix project in 2007 (http://wikichix.org/). WikiChix, which is modeled after the similar LinuxChix group, offers a female-only environment to discuss wikis and the Wikimedia projects and explore ways to make the projects more accessible and friendly toward women. On a Foundation level, several women have won elections to the Board of Directors of the Wikimedia Foundation. These include (as of early 2008) the current chair of the organization, Florence Devouard.
All is not gloom, though, since Wikipedia does gradually overcome some of these limitations. Individual WikiProjects are created for weaker areas that need work (such as [[Wikipedia:WikiProject Gender Studies]]), and Wikipedia attracts some academic experts and others who do steady work filling in gaps in coverage. Working on a neglected area can be rewarding as well, as there is more opportunity to create new articles.
=== Wikipedians on Wikipedia===
Wikipedians love to write about Wikipedia. This is revealed in the large number of essays about the site, posted both on user talk pages and project pages. Happy, sad, critical, and usually interesting, these essays are a mosaic of opinions about the site, its people, and its governance. An essay may aim to influence site policies or the way people behave or may simply be self-expression, one small addition to the site's culture. Many end up being cited by other editors in discussions, and some even end up as guideline or policy.
Here is a selection of extracts from a small handful of our favorite essays. Some of them connect to points that are made elsewhere in this book, whereas others concern thought-provoking aspects of Wikipedia that we don't follow up.
* A high proportion of Wikipedians are people with issues with authority. That's why many people are attracted to Wikipedia in the first place. Keep this in mind if you become an administrator, for you may have just become, unwittingly, what these people most resent; and no matter how good a job you do, they'll find your one mistake and beat you up with it. It's best just to accept this demographic for the reality it is. They are often the best editors, and as long as Wikipedia remains open to all, this situation will remain. (From [[User:Antandrus/observations on Wikipedia behavior]], shortcut WP:OWB)
* Wikipedia is space age Corningware, not ceramic, and it's not going to shatter if you drop it. Don't let your fear of messing things up keep you from editing. (From [[Wikipedia:Can't break it]])
* Wikipedia, in many senses, can be a Byzantine mess of policies, guidelines, style conventions, formatting tricks, and essays. It is essentially impossible for a new editor to know or anticipate most of them and even experienced editors accidentally run afoul of policies and guidelines occasionally. When this happens, it's not necessarily an indication that the editor is acting badly or has lost the community's trust. Usually, it just means they made a minor mistake and someone else corrected it. That's the way wikis like Wikipedia work: mistakes are constantly found and corrected. What is important to the functioning of any wiki, and especially large, complex ones like the English Wikipedia, is not that people become paranoid about avoiding mistakes. Mistakes are inevitable. What is important is that editors learn from errors, read the relevant policy, guideline, or whatever, and try to follow it in the future. Mistakes will happen; don't let them get you down. (From [[User:Chaser/Make mistakes, then learn from them]], shortcut WP:BOOBOOS)
* If a debate, discussion, or general exchange of views has come to a natural end through one party having "won" or (more likely) the community having lost interest in the entire thing, then no matter which side you were on, you should walk away. (From [[Wikipedia:Drop the stick and back slowly away from the horse carcass]], shortcut WP:DEADHORSE)
* Writing for the enemy is the process of explaining another person's point of view as clearly and fairly as you can, similar to devil's advocate. The intent is to satisfy the adherents and advocates of that perspective that you understand their claims and arguments. (From [[Wikipedia:Writing for the enemy]], shortcut WP:WFTE)
* The fight-or-flight response developed by our pre-human ancestors may have helped them escape from angry mastodons, but it isn't constructive in an online encyclopedia. (From [[Wikipedia:No angry mastodons]], shortcut WP:KEEPCOOL)
* A coatrack article is a Wikipedia article that ostensibly discusses the nominal subject, but in reality is a cover for a tangentially related bias subject. The nominal subject is used as an empty coatrack, which ends up being mostly obscured by the "coats." (From [[Wikipedia:Coatrack]], shortcut WP:COAT)
* Wikipedia's articles are no place for strong views. Or rather, we feel about strong views the way that a natural history museum feels about tigers. We admire them and want our visitors to see how fierce and clever they are, so we stuff them and mount them for close inspection. We put up all sorts of carefully worded signs to get people to appreciate them as much as we do. But however much we adore tigers, a live tiger loose in the museum is seen as an urgent problem. (From [[Wikipedia:Beware of the tigers]], shortcut WP:TIGER)
* A young novice asked, "Is Wikipedia a community, or an encyclopedia?" Alkivar answered "Yes."; later, another novice asked Alkivar the same question, to which he answered "No." (From [[Wikipedia:The Zen of Wikipedia]], shortcut WP:KOAN)
* Wikipedia is just an encyclopedia. The Wikipedia community is at its core just a community made up of a bunch of people who think writing a free, complete, and accurate encyclopedia is a good idea (and a lot of fun, too). The Wikipedia community isn't too happy about people trying to use Wikipedia to promote causes other than having a good online encyclopedia. This includes contributions meant to promote websites and products, political causes, religions, and other beliefs, and of course one's personal view of what's really funny. (From [[Wikipedia:Don't hand out panda sandwiches at a PETA convention]], shortcut WP:PANDA)
* It is particularly important to get the last word where you are in some doubts as to the merits of your case. The last word will serve as a clinching argument that will make up for any deficiencies in your logic. (From [[Wikipedia:The Last Word]], shortcut WP:TLW)
* Before you make yourself and others unhappy, remember this: you have the Right To Leave. (From [[Wikipedia:Right to leave]], shortcut WP:RTL)
You can find many other such essays collected in [[:w:Category:Wikipedia essays]]. Many Wikipedians also blog about Wikipedia and related Wikimedia issues. You can find a list of self-identified bloggers on Meta, but for easier and more focused reading, you can find a collection of blogs about Wikimedia topics at the Planet Wikimedia site, where they are conveniently aggregated; see http://en.planet.wikimedia.org/. An RSS feed is also available.
=== Operational Analysis: Raul's Laws===
One essay in particular, known as "Raul's laws" (shortcut WP:RAUL), contains a collection of observations on how Wikipedia works and how Wikipedians work together. The essay was started by User:Raul654, an experienced contributor, but has been built by dozens of contributors. The page gives what is very much an insider's view of how Wikipedia works, though the later laws that have been added vary greatly in interest.
We've taken 6 "laws" from the original 15. Two bits of jargon are [[Astroturfing]], a public relations term for an orchestrated campaign meant to look like spontaneous grassroots activity and [[Metcalfe's law]], which points to the square of the number of users in a network as a measure of its value.
Much of Wikipedia's content and all of the day-to-day functions are overseen by a small core of the most dedicated contributors.
Content brings visitors—this is as true for wikis as it is for networks, as dictated by Metcalfe's law. Of those visitors, a certain number will stay and become contributors. Of those contributors, a certain number will stay long enough to become dedicated users.
You cannot motivate people on a large scale to write about something they don't want to write about.
Over time, contentious articles will grow from edit-war inspiring to eventually reach a compromise that is agreed upon by all the editors who have not departed in exasperation. This equilibrium will inevitably be disturbed by new users who accuse the article of being absurdly one sided and who attempt to rewrite the entire article.
Wikipedia's steadily increasing popularity means that within the next year or two, we will begin to see organized corporate astroturfing campaigns. [29]
As time goes on, the rules and informal policies on Wikipedia tend to become less and less plastic and harder and harder to change.
=== Practical Values, Process, and Policy===
Wikipedia has no centralized control, yet the site progresses and is successful. The administration of Wikipedia as a whole has scaled up much better than its critics predicted. Something clearly does work. But what is it that works?
Discussion alone may not achieve much. If no meeting of minds occurs, a productive debate can become an unresolvable dispute. A common theme in interviews with editors turns out to be this: Wikipedians clearly feel they share values with others who are editing.
These values include the following:
The worth of open information that is outside copyright barriers (and, therefore, probably support for free software too)
A commitment to sharing knowledge worldwide
Multiculturalism, diversity, and multilingualism
Fairness in representing diverse points of view
Wikis attract people who can live with freeform structures. But shared and practical values mean that Wikipedians will admit that some structure is necessary and some idea of how the encyclopedia should be built has to be present. Wikipedia's structures, such as how editing permissions are provided, must match up with these core values.
The key way Wikipedia gets through its project-related work is its characteristic structure: Processes consist of decentralized discussions about separable issues. That's how decisions are actually made and how site administration moves forward. Backlogs are avoided by limiting discussion time. These processes are, in turn, governed by policy documents that have general consent. (Chapter 13, Policy and Your Input picks up from here and will explain how you can have wiki-style editable policy.)
Policy and process, then, are closely related on Wikipedia, providing a structure for editors to work together through discussion. So much needs to be done that the sensible approach that has evolved is to have all those differentiated processes, not a single executive body. Processes and policies, despite their imperfections, evolve to meet changing circumstances. See an overview essay [[Wikipedia:Product, process, policy]] (shortcut WP:3P) for more on this idea.
=== More Research Required===
At this point, we still simply don't know some things.
Will the English-language Wikipedia have to evolve different social processes in the long term?
Will every language version of Wikipedia go through the same stages of developing content and community?
Will time bring the English-language Wikipedia's community into a stable demographic composed of people with a broad-based interest in encyclopedic knowledge? How can more people, including experts, be involved in editing?
Can quality be sustained in an open encyclopedia with millions of articles?
See [[Wikipedia:Researching Wikipedia]] (shortcut WP:RW) for some ideas for studies. [[Wikipedia:Wikipedia in academic studies]] showcases some work that has already been done.
Further Reading
Community
http://en.wikipedia.org/wiki/User:Raul654/Raul's laws Raul's laws, a collaboratively written collection of thoughts about the community
http://www.wired.com/wired/archive/2.06/vc.principles_pr.html Mike Godwin's nine points
Demographics and Systemic Bias
http://en.wikipedia.org/wiki/Wikipedia:Wikipedians Who are Wikipedians?
http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Countering_systemic_bias WikiProject countering systemic bias
http://wikichix.org/ The WikiChix group, open to any woman interested in wikis
Essays
http://en.wikipedia.org/wiki/Category:Wikipedia_essays Essays about Wikipedia by Wikipedians; these essays in the Wikipedia namespace are often referenced by other users.
http://en.wikipedia.org/wiki/Category:User_essays More essays about Wikipedia by Wikipedians; these essays are in user space and may be less widely referenced or only represent the view of one person.
http://meta.wikimedia.org/wiki/Category:Essays Essays on the Meta site; these are older essays written by Wikipedians about Wikipedia, Wikimedia, and wiki philosophies.
http://en.planet.wikimedia.org Planet Wikimedia is an aggregator of blogs about Wikimedia by Wikimedians.
Researching Wikipedia
http://en.wikipedia.org/wiki/Wikipedia:Wikipedia_in_academic_studies A list of studies that have focused on Wikipedia
http://meta.wikimedia.org/wiki/Research The Wikimedia research network, a page for Wikimedia researchers from around the world to share their work
http://en.wikipedia.org/wiki/Wikipedia:Researching_Wikipedia Some research questions
[28] See "Can You Trust Wikipedia?" The Guardian. Monday, October 24, 2005, http://www.guardian.co.uk/technology/2005/oct/24/comment.newmedia.
[29] Prediction confirmed, August 28, 2005 (nine months after the prediction was made): One anonymous reader contacted Boing Boing to say that he worked at a marketing company that uses Wikipedia for its online marketing strategies. See http://www.smh.com.au/news/icon/wikipedia-worries/2005/08/23/1124562860192.html.
==Summary==
Though loose and somewhat ill-defined, the notion of community is absolutely fundamental to Wikipedia; without it, the site could not succeed. The way Wikipedia is set up has led to a community that doesn't rely on central authority or a central forum. Instead, Wikipedia's editors communicate largely, but not exclusively, by editing pages for others to read—both article talk pages and central discussion forums. Those pages run quickly into tens of thousands of separate discussions, where issues are separated out and dealt with individually. Each debate will bring together a small, probably diverse group of people interested in any topic. Wikipedia has no true center and no easy overview of all these interactions. Wikipedia's success relies on the way that the overarching philosophies mesh with the intricate, small-scale actions on the sit
{{BookCat}}
me8u4hn3tyerugd9jpawco0ghxu22oc
User:Danielravennest/papers/Mars21
2
296327
4672293
4671912
2026-09-25T10:01:23Z
Danielravennest
13526
/* 9.0 - Phase 5 - Planetary System Locations */ Update 9.1 through lunar transport
4672293
wikitext
text/x-wiki
{{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}}
<div style="font-size:125%;font-family:'Georgia', serif;">
:'''Dani Eder,'''
:''The Seed Factory Project,''
:''6485 Rivertown Rd, Fairburn, GA, 30213''
:''email: danielravennest@gmail.com''
:'''Aug 2026'''
'''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set.
<div class="nonumtoc">{{TOCright}}</div>
=='''0.0 - Summary'''==
 
  National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort.
 Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory.
 Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment.
 The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high.
 It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea.
=='''1.0 - Problems of Past Space Programs'''==
 
 Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology.
:'''Outdated Assumptions'''
 Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions:
* It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface.
* Because the number of missions is small and they are short, it is not economic to develop many local resources.
* Most or all equipment and supplies are launched from Earth.
* High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions.
 Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other.
:'''High Cost'''
 Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings.
 The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress.
:'''Low Returns'''
 In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them.
 If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly.
:'''Focus on the Moon and Mars'''
 The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination.
 The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay.
 Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places.
 A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth.
=='''2.0 - New Knowledge and Technologies'''==
 
 Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment.
==='''2.1 - The Modern Solar System'''===
 
 The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year.
 Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System.
 In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier.
:'''Material Resources'''
 '''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction.
 This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth.
 The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects.
 Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating.
[[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]]
 91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found.
 Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones.
 '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them.
[[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]]
 The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible.
:'''Energy Resources'''
 The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies.
 It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space.
 Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher.
 In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment.
:'''The Illusion of Scarcity'''
 Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer.
 The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area.
 The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth.
 A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used.
==='''2.2 - New Technologies'''===
 
 For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology.
:'''Seed Factories'''
 Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient.
 We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways:
* Making parts for additional copies of current equipment.
* Making new types of items not in the starter set, and
* Making different versions of existing equipment (larger, more accurate, etc.).
 While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally.
 The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere.
 When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better.
:'''Locations and MakerNets'''
 When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects.
 The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost.
 Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials.
:'''Space Technologies'''
 New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include:
* '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past.
* '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved.
* '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology.
 Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications.
 Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer.
 
=='''3.0 - New Program Concept'''==
 
 For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods.
 This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas.
:<u>'''Goal 1 - Benefits on Earth'''</u>
 Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult.
 Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget.
 The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same.
 The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire.
 As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate.
 A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects.
 Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel.
:<u>'''Goal 2 - Benefits from Space'''</u>
 Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this:
* Access to materials on Earth is limited vertically because temperatures and pressure increase with depth.
* Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy
* Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment.
* There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space.
 So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment.
 Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations.
 Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed.
 Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society.
:<u>'''Program Advantages'''</u>
 Our new approach has a number of advantages:
* It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects.
* Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable.
* In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites.
* A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems.
* Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth.
==='''3.1 - Program Sequence'''===
 
 Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this:
* The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them.
* We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise.
* New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable.
* We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches.
[[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]]
 In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...).
[[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]]
 Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below.
==='''3.2 - Phases 0 to 3: Earth Locations'''===
 
 Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth.
 Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves.
 This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are:
: <u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed.
: <u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed.
: <u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products.
: <u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay.
: A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials.
==='''3.3 - Phases 4-6: Space Locations'''===
 
 The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space.
 At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet.
 As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are:
: <u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant.
: The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun.
: <u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots.
: <u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for.
 
=='''4.0 - Seed Factory Technology'''==
 
 Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology.
 '''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products.
 Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways:
* <u>Replication</u> - making copies of existing parts and equipment,
* <u>Diversification</u> - making parts for new equipment not in the current set,
* <u>Quality</u> - making items stronger, more accurate, or from different materials, and
* <u>Scaling</u> - making different size parts (usually larger) than the current ones.
 A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees.
 The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory.
:'''Self-Replication and Distributed Production'''
 A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine.
 Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring.
 Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating.
 Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products.
:'''Operations and Functions'''
 Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include:
* <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment.
* <u>Supply power</u> - this includes electricity, thermal heating, and other sources.
* <u>Extract materials</u> - mining and harvesting raw materials.
* <u>Process materials</u> - converting raw materials to usable inventory.
* <u>Fabricate parts</u> - use inventory stock to produce finished parts.
* <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed.
* <u>Assemble elements</u> - combine finished parts and materials to produce completed products.
* <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production.
 Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms.
 Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally.
 We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely.
 
 
=='''5.0 - Phase 0: Research and Development (R&D)'''==
 
 The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents.
 A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations.
:'''R&D Goals'''
 Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills.
 Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space.
:'''Production by R&D Phase'''
 Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use.
 Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs.
 Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases.
:'''Sharing Our Results'''
 We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally.
 The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them.
:'''R&D Tasks and Projects'''
 The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed.
 New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process.
 The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks.
 Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge.
 
=='''6.0 - Moderate Locations'''==
 
 Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences.
 Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial.
==='''6.1 - Phase 1: Starter Locations and Network'''===
 
:'''Goals'''
 The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places.
 Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site.
:'''Starting Points'''
 Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed.
 Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged.
 Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty.
 Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones.
:'''Later Improvements'''
 Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food.
 The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built.
 Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions.
==='''6.2 - Phase 2A: Distributed Locations'''===
 
:'''Goals'''
 The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation.
:'''Evolution'''
 Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets.
 When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places.
 Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate.
:'''Ownership'''
 In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills.
 When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently.
 By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners.
==='''6.3 - Phase 2B: Industrial Locations'''===
 
:'''Goals'''
 The main goal of this phase is to reach the most efficient production levels by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2.
:'''Growth and Specialization'''
 Industrial sites can evolve from distributed small business or commercial sites by continuing self-improvement and growth. They can also be built as new sites of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding.
 Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big site that can satisfy all of them.
 The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase.
 A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products.
 The overall production network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed.
 Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation.
 
=='''7.0 - Other Earth Locations'''==
 
:'''Goal'''
 The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress.
:'''Method'''
 One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials.
:'''New Locations'''
 Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started.
 Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range.
 If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people.
 We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects.
 The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity.
 That capacity then supplies products and services for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth.
==='''7.1 - Phase 3A: Difficult Earth Locations'''===
 
 We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are:
 '''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth.
 '''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay.
 '''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range.
 '''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters
 '''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are.
 Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply.
 Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere.
 '''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items.
 '''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year.
 A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population.
 Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs.
 '''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition.
 On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance.
 '''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days.
 '''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services.
 Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations.
 '''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation.
 On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits.
 Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with.
==='''7.2 - Phase 3B: Extreme Earth Locations'''===
 
 We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are:
 '''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts.
 '''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests.
 '''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground.
 '''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock.
 '''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty.
 '''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur.
 '''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically.
 '''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable.
 '''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation.
 '''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations.
 '''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used.
 
=='''8.0 - Phase 4: Orbital Locations'''==
 
[[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]]
:'''Goals'''
 The main goals of phases 4 through 6 are using space to bring benefits to Earth, and to help with some long-term problems and risks that can't be handled any other way.
 Figure 8.0-1 is an early concept for a rotating '''[https://en.wikipedia.org/wiki/Space_station Space Station]''', made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since the first practical silicon solar cell would not be made until 2 years later. We show this concept as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 75 years in the future. Despite that, we have to start somewhere and then make updates as needed.
:'''Approach'''
 This section (8.0) 9.0, and 10.0 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. We expect the various sub-phases to have different starting times due to relative difficulty in reaching their locations and distance from Earth. But once started the sub-phases would overlap and continue in parallel.
 Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) come next. They share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from than orbital locations in similar solar orbits. The local environments are also different on and around these bodies. Phase 6 (Interstellar Locations) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work.
:'''Current and Near-Term Space Industry'''
 Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According the '''[https://orbitalradar.com/how-many-satellites-in-orbit Orbital Radar]''' site there were over 18,000 active satellites orbiting the Earth in September 2026. There were also about 10,700 pieces of debris and leftover rocket parts. There are a smaller number of spacecraft and other items that have been sent beyond Earth orbit, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving.
 '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $429 billion as of 2025, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs.
 Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and over 3,000 '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level.
 Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight.
 Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. Replacing the equipmwnt adds to the cost of operating in space. Refueling, maintenance, and repair of space hardware is very limited. New production, upgrades, and recycling in space is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism.
:'''Long-Term Sustainability'''
 As of 2025 fossil fuels supplied 81.9% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it.
 These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is.
 Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant but low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both.
 At the same time, the world's population is growing, and not everyone has the benefits of high income economies. Full development of such economies would demand even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it would not reduce it to zero.
:'''Civilization-Level Risks'''
 Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release.
 Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce that risk. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent.
 There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery.
==='''8.1 - Using Space to Solve Earth's Problems'''===
 
 There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores.
 There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy output to equipment mass ratio is roughly 50 times higher.
 There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above.
:'''Lowering Space Operations Cost'''
 Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement.
 There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need.
 A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development.
 Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down.
 More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost".
:'''Space Development Process'''
 Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock.
 Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence.
 In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions.
 Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost.
 Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it.
:'''General Space Environment Features'''
 Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce.
 The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity.
 The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''.
* '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature.
* '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 times Earth's distance from the Sun (3 AU), where temperatures are low enough for ice to be stable in a vacuum.
* '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres.
* '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets.
* '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy.
: Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors.
* '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure.
* '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset.
: Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Space transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks.
* '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet.
* '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades.
* '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years.
* '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg.
==='''8.2 - Phase 4A: Low Orbit Locations'''===
 
 Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started.
 We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon.
:'''Low Orbit Features'''
 Earth orbits exist in a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''.
 Objects in low orbits are in the Earth's shadow about 22-40% of the time, reducing available solar energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time to a particular orbit location from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay.
 The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbit height and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially.
 Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations.
:'''Economic Uses'''
 We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the International Space Station and Hubble Telescope, and national security.
 Future uses may include tourism, orbital assembly and maintenance, payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others.
 We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position.
:'''Transport from Earth'''
 Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites.
 Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth requiring a minimum energy to reach orbit, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities:
[[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]]
 '''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices.
 A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in kilomdeters rather than meters lower g-forces and operating pressures. But the forces are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on a mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch.
 Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets.
 The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth.
 '''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option.
 High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense.
:'''Mining and Production'''
 Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there.
 There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks.
 When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end.
 A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse.
 Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere.
==='''8.3 - Phase 4B: High Orbit Locations'''===
 
:'''High Orbit Features'''
 We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as distance increases.
 The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations.
 High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold '''[https://en.wikipedia.org/wiki/Cosmic_microwave_background Cosmic Microwave Background]''', but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy.
 Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies.
:'''Economic Uses'''
 One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts.
 Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity varies with the Earth's distance from the Sun, and the Moon's orbit is not circular or in the same plane as the Earth and Sun. So uncontrolled objects will move around the region.
 Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can begin with transporting fuel and other items up or down through the region, to or from more distant early interplanetary locations and low orbit. This and other possible future activities depend on bringing transport costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels.
 There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They would let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Hazardous solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts.
 The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 750 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources could make civilization sustainable as long as the Sun lasts.
:'''Transport from Other Orbits'''
 Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years.
 Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://commons.wikimedia.org/wiki/File:Best_Research-Cell_Efficiencies.svg Solar Cell Efficiency Chart]'''). The engines are low thrust, which would expose unprotected people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, protected or more advanced transport methods can be used.
 Bulk materials mined from NEOs (Section 2.1 Material Resources) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed.
 The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all these types would supply the widest range of raw materials to make the widest range of products.
:'''High Orbit Production'''
 Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, plus active refrigeration if needed.
 A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations.
 Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth.
 Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies.
 Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, and a small amount of carbon added to make a steel alloy, and then cast into basic shapes.
 Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials.
 Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction.
 '''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. Reflectors and shades can be used in all kinds of industrial processes for thermal processing of materials.
 In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing is easier than trying to make them locally in space.
:'''Living in High Orbit'''
 After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities.
 Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear by adding at the ends, or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels.
 Layered growth adds new pressure shells with compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved or added to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed.
 
==='''8.4 - Phase 4C: Inner Interplanetary Locations'''===
 
:'''Inner Interplanetary Features'''
 These are orbits detached from the Earth's dominant gravity and orbit the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun and out to 1.8 times the Earth's average distance from the Sun (1.8 AU). This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, and Mars, and orbits around them, which are part of Phase 5 - Planetary Locations (Section 9.0 below).
 Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time.
 Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side.
 As noted in section 2.1, there are over 42,500 known near Earth Objects (NEOs) as of September 2026, and the number is currently increasing by 3,200 a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large.
 Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions.
 There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us.
:'''Economic Uses'''
 There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces.
 Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally.
:'''Inner Interplanetary Transport'''
 The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion.
 '''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit.
 Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region.
 Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal.
 Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space.
:'''Inner Interplanetary Production'''
 Global artificial primary energy consumption on Earth was 20.3 TeraWatts in 2025. Note that primary energy does not include sunlight used by plants. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits.
 Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it.
 The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with.
 If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain a civilization.
:'''Living Beyond Earth Orbit'''
 Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time.
 It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the equipment stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy.
 
==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''===
 
 Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials.
:'''Mid-Interplanetary Features'''
[[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]]
 This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2026 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.44 million other Main Belt asteroids, over 7300 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 16,700 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. New discoveries of mostly smaller objects has been about 80,000 a year. The region does not include Jupiter itself and the region within 20 million km of the planet (see Section 9.4).
 There are also around 500 known '''[https://en.wikipedia.org/wiki/Comet Comets]''' that cross the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements in the Universe, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of water ice, and if their orbits don't bring them closer can hold them permanently.
 Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years for minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including relays to avoid direct communication paths through the Sun.
 The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun.
:'''Economic Uses'''
 This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable starting with mining and transport to previous locations. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization.
:'''Mid-Interplanetary Transport'''
 The same transport methods can be used in this region as for the inner interplanetary region. The main difference would be adding lightweight reflectors to solar panels if needed to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, those methods also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency.
:'''Mid-Interplanetary Production'''
 The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels can benefit from reflectors to increase the light intensity like they do for transport/ Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials that are not at the bottom of gravity wells of large bodies.
 Many asteroids are covered with a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area can be covered to contain loose material.
 More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs if needed to factories for later production steps. For larger operations, a shell can surround the whole asteroid or comet, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter.
 
==='''8.6 - Phase 4E: Outer Interplanetary Locations'''===
 
 This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials.
:'''Outer Interplanetary Features'''
 Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2026 there are over 700 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also 4,470 known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 5,170 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered.
 Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from -113 to -223C for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours.
 The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the larger ones 'minor planets'.
:'''Outer Interplanetary Activities'''
 This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is uncertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them.
 Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, radioactives can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced.
 As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of distance. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region.
 We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule.
 If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop.
==='''8.7 - Phase 4F: Distant Orbit Locations'''===
 
 The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'.
:'''Distant Orbit Features'''
 Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's gravitational dominance at about 100,000 AU. As of 2026 there are about 1900 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a larger number of
'''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets.
 A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and from 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region.
 Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit.
 Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years.
:'''Distant Orbit Activities'''
 Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens.
 To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative for now. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must also remain speculative for now.
 
=='''9.0 - Phase 5 - Planetary System Locations'''==
 
 The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative to objects in the orbital regions, and third is the diversity of conditions found on and around the planets.
 Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest, and is preceded by orbital transport that can reach the locations carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time.
==='''9.1 - Phase 5A: Lunar Locations'''===
 
 Earth is one of the eight major planets in the Solar System. It is already occupied and developed, and we covered using our self-improvement approach earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities are more similar to those for smaller planets and the larger moons of the other planets.
:'''Lunar Features'''
 The Lunar region includes the Moon itself, and '''[https://en.wikipedia.org/wiki/Lunar_orbit Lunar Orbits]''' with semi-major axes below 35,000 km . These are close enough to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field. The Earth and Sun are also much more massive than the Moon, and have significant effects on objects orbiting it.
 The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location (Figure 9.1-1).
 Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Low orbit velocities are 1680 m/s or less, and 700 m/s more is needed to escape from them. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increases the total exposed surface area.
[[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]]
 Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same.
 The Moon is '''[https://en.wikipedia.org/wiki/Tidal_lockingt Tidally locked]''' to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day.
 Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth.
 The Moon has a somewhat variable and reasonably well understood '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements.
 The Moon is too small and warm to keep an atmosphere. With nothing to stop incoming objects, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles cause rocks to crack near the surface.
:'''Economic Uses'''
 The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits.
 Regolith mining can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without heavy mining methods and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment.
 Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space.
:'''Lunar Transport'''
 Early landings on the Moon would not have the support of local infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth. Carbonaceous type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and fully replace Earth supplies. How much would come from each source will depend on cost and availability.
 Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials to a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location.
 Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to and from the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. It would not be dropped directly on the surface because of the variable gravity field and heights of lunar mountains and crater walls.
 If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by electric propulsion at high efficiency.
 Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of lunar materials can provide shielding. With these people can live comfortably and safely. They would be close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions are using rotating habitats on the surface or limiting stay times.
:'''Lunar Production'''
 The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. But there are few low boiling-point materials left on the Moon, because it formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space, and some products are too hard or expensive to make there relative to delivery from Earth. So two-way trade can develop for lunar activities to support themselves.
 Early Lunar production can start with mining bulk regolith for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory equipment can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease.
 Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful.
 Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore.
 Other energy sources for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night.
:'''Living in Lunar Locations'''
 Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time.
 We have essentially no data on how much gravity is enough between zero and 1.0. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control.
 The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best.
==='''9.2 - Phase 5B: Mars Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between.
:'''Mars Features'''
 The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin.
 Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding.
 Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way.
 The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. They are likely collected impact debris, so similar to Mars in composition.
[[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]]
 The atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass.
 Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps.
:'''Economic Uses'''
 Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids.
 Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available.
 As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth.
:'''Mars Transport'''
 In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit.
 Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more.
 Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs.
 When the transfer station is built up enough, a set of crew detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface.
 Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems.
 Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred.
:'''Mars Production'''
 Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries.
 Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first.
:'''Living in Mars Locations'''
 Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats.
 '''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier.
 An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection.
==='''9.3 - Phase 5C: Venus and Mercury Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. There are relatively few nearby asteroids to start orbital development with.
:'''Venus and Mercury Features'''
 The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU.
 Solar flux is 1.9 times higher than near Earth at Venus, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the atmosphere mostly eliminates temperature changes.
 Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively.
 The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters
:'''Economic Uses'''
 Near-term use of Venus and Mercury is more difficult because of the higher velocity to reach them and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed.
 Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry.
 It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric thrusters. This does not account for gravity assists or skyhook transfers. These require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun.
:'''Venus and Mercury Transport'''
 Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow.
 For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines.
:'''Venus and Mercury Production'''
 Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from Venus orbit. There are only 59 known asteroids whose orbit is entirely inside Earth's, and less than 2500 others whose orbit is smaller than Earth's and cross inside of it. This is only 0.2% of the total known, so many materials may have to be imported from farther away.
 Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time.
:'''Living at Venus and Mercury'''
 Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term.
==='''9.4 - Phase 5D: Jupiter System Locations'''===
 
 Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow the Mid-Interplanetary (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury.
:'''Jupiter System Features'''
 The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2023 there are 91 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reaxonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system.
 Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above the atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations.
 Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmopshere from orbit.
 The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth.
 Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side.
:'''Economic Uses'''
 Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 12,500 Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges.
 The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility.
:'''Jupiter System Transport'''
 Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required. The other Gas Giants are easier to access and have milder radiation belts.
:'''Jupiter System Production'''
 Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat.
:'''Living in the Jupiter System'''
 Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it.
==='''9.5 - Phase 5E: Outer Giant Locations'''===
 
 The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around.
:'''Outer Giant Features'''
 The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars).
 Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby.
 Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips.
 Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System.
 Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible.
:'''Economic Uses'''
 The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now.
 Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research.
 If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time.
:'''Outer Giant Transport'''
 Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical.
 Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be.
:'''Outer Giant Production and Living'''
 We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question.
=='''10.0 - Interstellar Locations'''==
 
 The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance.
 Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order.
==='''10.1 - Phase 6A: Interstellar Space Locations'''===
 
:'''Interstellar Features'''
 We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun.
 Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average.
 The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System.
 The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is.
:'''Economic Uses'''
 We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities.
:'''Interstellar Transport'''
 Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development.
 Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue.
&emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now.
:'''Interstellar Production'''
 We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades.
==='''10.2 - Phase 6B: Stellar Locations'''===
 
:'''Stellar System Features'''
 We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them.
 Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits.
 The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks.
:'''Economic Uses'''
 Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars.
:'''Exostellar Transport'''
 Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources.
:'''Exostellar Production'''
 As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available.
</div>
1al3d95276pufi3xr5w1ui384fr7kvp
Trainz/Versions/TS2010-versions
0
304161
4672168
4567332
2026-09-24T15:33:19Z
R. Henrik Nilsson
3395618
commited > committed
4672168
wikitext
text/x-wiki
<noinclude>{{ORP-top|alttitle2=Combined TS2010EE Technical Evolution data|both=1
|sort=aTS10,combined{{SUBPAGENAME}}}}
</noinclude>
=TS10-SP0=
:'''''Main article:''' {{TL|Trainz Simulator 2010: Engineers Edition}}''
== Main differences to TS09==
{{Lorem}}
{{TRS-underconstruction}}
{{Lorem}}
==TS10 Service Packs ==
===TS2010-SP1===
'''TS2010-SP1''' (or '''TS2010 SP1''') is the first patch release to the {{TL|TS2010}} product. It fixes a small number of important issues that were reported by the community after the public release of '''''TS2010''''' and adds a new "Content Updates" button to the main menu.
===Changes since TS2010-SP0===
The following list represents the major user-visible changes in {{N3V|TS2010_SP1|TS2010 SP1}} as compared to the {{TL|TS2010}} online release build, which will create '''code build version 41615''' when manually patched.<ref
name="TS10-SP1_on_TrainzOnline">Source data for TS10-SP1: {{N3V|TS2010_SP1}}</ref><ref
name="TS10SP1_announcement" >TS2010 SP1 announcement, December 17th, 2009, 12:32 AM, [http://forums.auran.com/trainz/showthread.php?49580-TS2010-EE-SP1 Auran Forums Thread: TS2010:EE SP1], by 'Spiffy' Web and IT manager.</ref> This was the boxed set DVD release version produced.<ref
group="notes" name="Note-1">Translating, implicit in the previous sentence.</ref> Bold emphasis added as very important fix or advances; ''Italics'' a important grade change.
# '''Speedtrees now appear correctly with ATI graphics cards.'''
# ''Local assets are now organised differently.''
# '''Non-builtin local assets can now be recommitted.'''
# New "Content Updates" Menu button for updating built-in assets.
# ''Maximum number of speedtree types available at once has been relaxed.''
# '''Speedtrees that had been previously locked can now be moved, rotated or deleted.'''
# Minor Changes to the favorites system.
# Regions can now be selected when the favorites filter is on.
# ''Auto-Patcher Fixed''
===TS2010-SP2===
'''TS2010-SP2''' (or '''TS2010 SP2''') is the second patch release to the {{N3V|TS2010}} product. It fixes a number of important issues that were reported by the community after the public release of {{N3V|TS2010_SP1|TS2010-SP1}} and adds a modest amount of new content and new functionality.<ref
name="TS10-SP2">Source data for TS10-SP2: {{N3V|TS2010_SP2}}</ref>
====Changes since TS2010-SP1====
The following list represents the major user-visible changes in {{N3V|TS2010_SP2|TS2010 SP2}} as compared to the {{N3V|TS2010_SP1|TS2010 SP1/TS2010-SP1}} patch. Bold emphasis added as very important fix or advances; ''Italics'' a important grade change.
# ''Fixed an issue with cabin/interior related function.''
# Improvements to handling server achievement data messages.
# Driver - Tweaked framing for tracking camera.
# '''Surveyor - Hangs when copying and pasting on large routes.'''
# '''Main Menu - Saved sessions menu does not show details correctly.'''
# Fixed issue where some scenarios appear to be loading twice.
# ''CM - "View Mesh Details" now shows information the first time it is used.''
# Made some small adjustments to the credits.
# '''CM - "View dependencies" list now correctly shows what assets are missing.'''
# CM - FCT report in CM now shows how much is actually left instead of 1000 days.
# Surveyor - Fixed crash when attempting to copy and paste track with a train on it.
# Added latest French Asset translations.
# '''Surveyor - Fixed an issue when attempting to place a train on a piece of track already containing a hidden train.'''
# '''Fixed a crash bug when loading a scenario.'''
# Added new french content.
# New menubar icons.
# CM - Download panel x of x figures now shows properly
# CM - TADThumbnailTable improvments
# Driver - New control type art
# CM - "Assets already installed" text does now fits correctly
# ''Misc. track placement fixes and tweaks''
# CHN ND5-1 no longer appears all white
# Some missing signals added to ECML
# Misc. track and object movement fixes and tweaks
# Downtown Traction missing dependencies added
# '''Surveyor - Fixed a crash when click on a broken (showing red) texture'''
# ''Various texture fixes''
# ''Fixed an issue where water was not appearing on older routes''
# ''Fixed an issue where textures were not appearing on older routes''
# Improved CM's ability to grab a user's KUID
# '''Surveyor - Fixed an issue where it was impossible to overwrite existing routes/sessions'''
# Surveyor - Fixed an issue where opening a route would trigger "the route has changed, do you want to save" message
# CM - Asset details now shows a "downloading" message when grabbing an assets details from the DLS
# Added 'achievement-icon' query support in achievements servlet
# '''Added "trainzutil installfromdls" command'''
# ''Content Manager - Shift selection no longer selects one too many in thumbnail view''
# The default position for chat window needs has been shifted down about 50 pixels
# ''Content Manager - While in thumbnail view, pressing the down arrow now selects the asset below the current one (and above for the up arrow)''
# ''Content Manager - Selecting assets in thumbnail mode no longer briefly flashes up "<< Unknown data type >>" underneath the thumbnail''
# '''Surveyor now contains some default filters'''
# Surveyor - Attempting to place a train at the location of another train that is on a hidden layer now shows a warning
# Surveyor - Advanced topology buttons are now disabled unless there is a valid selection
# Content Manager - "Click here to resume your previous search" function no longer shown in some circumstances
# Surveyor - Using the "Get" tool now automatically selects the "Add" tool —ed: ''Boo!'', '''Darn it! Broke it again!'''
# Throttle shortcut keys now work when remote from the locomotive (camera focused on rolling stock, not loco itself).
# Driver - Changing ends now sends "Camera", "InteriorChanged"
# '''Fixed a case where TADDaemon could fail to accept login from a newly started TADCommandHost'''
# '''Improved handling of transient TADCommandHost startup failuremessage'''
# Added "achievement" category search to CM
# ''Exiting Surveyor while editing a session no longer breaks route thumbnail images''
# www.ts2010.com is now compatible with the in game web browser
# Achievements with multiple conditions are now treated as if the conditions are ORed, not ANDed
# Surveyor - Options for sky are now selectable in the Environment window - Renumbered 'Developer Settings' with a hopefully more unique KUID
# Fixed an issue where an asset with its KUID changed in-place did not show up correctly changed after a repair
# Improved error parsing to add {{TL|KUIDs}} for asset errors and warnings
# Achievement Grant now has a mechanism to request an urgent synchronisation
# Fixed an issue where CM shows <NULL> for unknown missing dependencies, instead of the actual KUID
# Layers - moving a scenery-with-track object between layers now moves the track
# Added group-mode and group-user-mode support to iTrainz
# Fixed a DriverModule script crash bug
# Content Manager - Now compiles scripts with transitive asset script includes
# Provided a separate error for 'crashed during validation' and 'unable to validate at the current time'
# Added 'name' support to the achievements servlet system in addition to 'kuid'
# Fixed various functions which incorrectly ignored the 'archive' part of various filepaths
# Improved clarity of TrainzUtil shutdown log
# Improved handling of assorted fault conditions
# Improved handling of unprocessed Base folder
# Corrected a few TrainzContent absolute sourcefile paths to relative
# Corrected the handling of new original/local asset filepaths
# CCP - There is now a way to save person details in the "Preferences..." > "Default" tab
# Surveyor - Fixed Crash when "Replace assets..." tool attempts to change an object on a locked layer
# Surveyor - Train shadows are no longer jerky when on a curvy track
# Fixed a bug where ResultsLog may double-localise some strings. This may reveal follow-on issues elsewhere, but is a correct change in itself
# Made the SurveyorList the default list in GclLib
# Fixed the SurveyorList not being generated until QuickDrive was loaded in Driver
# CCP - Creating an new asset, then exiting CCP without saving it no longer leaves the asset unable to be edited in CCP
# Prevented TADDaemon from providing PA login timestamp to clients prior to the database being fully loaded
# Moves all user-modifiable files into a UserData subfolder within the main program folder
# Abstracted all file path through a new set of functions in TrainzFiles
# SpeedTree assets now pause
# Surveyor - Content Search Filter input boxes now scroll to show all text
# Driver Setup window can now be stretched much wider
# Scroll arrows now quicker on IDriverOrderBar
# IDriverOrderBar clicks on orders now constrained in height to be just the orders, not the whole bar
# IDriverOrderBar scrollbar now accepts 'page' movement clicks (which scroll faster), and drag'n'drop scrolling
# Will now clear the trackpos of vehicles during a derail, so that later vehicles to wander past don't get unexpectedly chain-derailed
# Driver 'Paused' text is now better alligned
# Surveyor - Minimap - Mouse cursor now changes to indicate that the window is resizable
# Surveyor - Edit environment window - Snow line altitude units fixed
# Driver - Script Exception window no longer cancels pause
# CM2 - 'All' filter now displays a count in the bottom corner, rather than "All items displayed"
# Increased maximum route/session name length in save dialogs
# "Pause" will now continue to tick the game with zero delta-time, rather than stopping ticks completely. This allows assorted UI functionality (especially scripted functionality) to continue responding during a game pause
# The number of blocked messages permitted in a script thread's message queue has been raised significantly, but overflowing the queue has been changed from a log to a script exception
# Railyard -Distorted shed now fixed
# Created a trainz-object wrapper for the mozilla browser
# Credits - SNC credits now added to the in-game credits
# CM2 Download helper no longer scrolls to an item when a download finishes
# Industry based achievements now fully working
# Added support for copy and paste of track
# Surveyor - Drop down box no longer covers the accept button when saving a new session
# Launcher - Initial Database update optimised so it doesn't take too long
# Fixed memory leaks
# TAD performance fixed
# Products - Wagon with two products no longer show the wrong product in specific circumstances
# HTML Browser - Scrollbar calculation tweaked
# Fixed an issue where there is a visible texture seam/line across baseboard joins
# Added performance stats for script opcodes and pfx
# Improvements made to product handling for non-full queues with multiple permitted products
# The date is now being saved/loaded for saved sessions
# Layers - Added script function required for retrieving a list of valid layers
# Surveyor - Changing an asset's layer by using the '?' tool no longer reverts the layer to "route-layer" after saving
# Tutorials - Can now access driver help after loading a saved session
# Tutorials - Can now continue tutorial steps after loading a saved session
# Driving Experience is now tracked properly, in both DCC and Cab modes, and use of the AI is successfully detected and excluded
# Fixed a case where CM displays "please wait..." but isn't actually doing anything
# Underwater ambient sound now respects -disablesound flag
# Route menu - Session info text no longer alters size briefly when clicking the favourite or sort button
# Prevented a situation where specifying an "unscripted" asset as a script include would allow the include but not compile the "unscripted" asset. Includes of "unscripted" assets are now rejected
# iTrainz chat 'Add Buddy' text entry field now allows for long usernames
# Added native odometer support
# Seasonal variation is no longer out by one month
# Renamed "Tutorial Complete" to "Session Complete"
# Added environmental slider for SpeedTree wind
# Date now gets saved in sessions
# Surveyor - Route region can now be changed
# Surveyor - A few single line edit boxes have removed unnecessary scroll bars
# Cutom displacement brush is no longer green until 'get' is used
# Using 'get displacement' on a flat area no longer results in an all black displacement
===TS2010-SP3===
'''TS2010 SP3''' is the third patch release to the {{TL|TS2010}} product. It fixes a number of important issues that were reported by the community after the public release of {{N3V|TS2010|TS2010-SP1}} (above) and adds a modest amount of new content and new functionality.<ref
name="TS10-SP3">Source data for TS10-SP3: {{N3V|TS2010_SP3}}</ref>
===Changes since TS2010 SP2===
The following list represents the major user-visible changes in ''TS2010-SP3'' as compared to the ''TS2010 SP2'' patch. Bold emphasis added as very important fix or advances; ''Italics'' means 'graded' as ''an 'important' change''.
{{TRS-sect-stub|fix=Need to annotate and evaluate}}
# Streamlined achievement logging.
# Fixed a specific instance where the script error button could not be clicked on.
# Fixed a thread exception when entering the cab of a loco facing backwards in a consist.
# Fixed further issues with CM's region filter.
# CM now shows kuids for missing dependencies.
# Updated DLS license agreement.
# Undoing a paste operation now undoes water placement and removal.
# Fixed a script error in DriverModule when using the AI to run around.
# Added missing functionality to some signal states in specific French Signals.
# Faulty routes/sessions can now be deleted in game via the Routes Menu.
# Added French localisation to the game.
# Adding a "seasonal variant" tag no longer adds a "groundtexture" tag instead in CCP.
# Added "Interactive" keyword to all vehicles/industries that support product queues.
# Fixed "Backup Asset Keywords".
# Added German localisation to the game.
# Adjusted some UI elements for formatting issues.
# Adding a product to a wagon in surveyor now adds the product as a dependency.
# Assets downloaded from the DLS via CM are now automatically favourited.
# Fixed an issue where assets were unable to be committed because another process had locked them.
# Fixed an issue where built-in assets were being incorrectly marked faulty.
# Loading a saved session that uses "Display HTML Pages" no longer causes a script exception.
# Fixed an issue where saving in a specific way caused Trainz to hang.
# Decreased FCT checking time in CM.
# Added Polish localisation to the game.
# Added Russian localisation to the game.
# Uninstall now checks if trainz programs are running before uninstalling, and will attempt to shut them down.
# Improved CD key functionality.
# Made various minor changes resulting in assorted performance boosts.
# Added Spanish localisation to the game.
# Improved database asset searching.
# Corrected an issue where saved sessions were not being saved to the correct location.
# Modified some error messages and notifications to remove references to TS2009.
# Added Czech localisation to the game.
# Fixed an issue that could cause the object, track and train lists to not be sorted alphabetically.
# Fixed an issue where CM would stall after commiting large amounts of cloned assets.
# Added Dutch localisation to the game.
# Added extra localisation tokens to strings previously missing them.
# Strings in CM's archive helper now correctly show cyrillic text.
# Splines no longer draw all over the place when merging routes.
# Fixed an issue with layers that would sometimes render trackside objects incorrectly immovable.
# Fixed a script exception that could occur when a lot of updates are available via the "Content Updates" menu.
# The 'Driver commands' rule now shows commands even if one of them is faulty.
# Changing a route's region and saving now retains the new region.
# CM no longer appears to hang when adding certain archives.
# Fixed an issue where Trainz would not handle certain resolution changes correctly.
# Removed references to earlier versions of Content Manager in CM.
# Fixed a variety of potential script errors in older sessions.
# Added further checks in regard to achievements.
# Fixed a potential hang at the Routes Menu.
# Fixed an issue that would cause Trainz not to start when using OpenGL and fullscreen mode.
# Removed debug options that appeared in CM when it was run in Russian.
# Made various major improvements to the Patcher.
# 'Manual' button in the Launcher now works correctly when using the Russian Translations.
# Fixed an issue where detail strings were showing in English when they should be in Russian or German.
# CM now correctly shows how many assets are in a loaded archive.
# Fixed an issue with the Edit Environment tool that would cause the dates to lose their alignment.
# Fixed an issue where non-local assets could be attempted to be saved to a CDP.
# Added localisation tokens to key shortcuts.
# Prevent possible crash if Speedtree fails to load.
# Added MSVC runtime DLLs for extra support in Windows XP.
# Added localisation tokens for several key in-game strings.
# Steam engine sound are no longer one cycle out of sync.
# "Replace asset..." tool modified to work with track markers.
# Bumped version number to 3.3.
# Added additional support for Steam usage.
# Added additional support for the Blue Comet pack.
===TS2010-SP4===
{{N3V|TS2010 SP4}} is the fourth major Service Pack patch release to the {{TL|TS2010}} product.<ref name="TS10-SP4-pagecheck">accessdate=2014-0905</ref>
====Changes since TS2010 SP3====
The following list represents the ''major user-visible changes'' in {{N3V|TS2010_SP4|TS2010-SP4}} as compared to the {{N3V|TS2010_SP3|TS2010-SP3}} patch.
# Addition of a public beta of {{N3V|Trainz_Multiplayer|Trainz Multiplayer}}.
# Removal of compatibility mode, meaning that faulty content cannot be used in {{N3V|TS2010_SP4|TS2010-SP4|}}.
# Removal of support for Scenarios (assets of kind Activity which were first introduced in {{N3V|Trainz_SP3|Trainz-SP3}} and made obsoleted in {{N3V|TRS2006}}.)
# Addition of an in-game "Download All Updates" screen.
# Other documentation changes still listed as TBD<ref name="TS10-SP4-pagecheck"/>
==Notes and references==
===Footnotes===
{{notelist}}
===references and citations===
{{reflist}}
==Notes==
{{notelist|group="notes"}}
==Footnotes==
{{reflist}}
{{ORP-bot|cat1=Trainz Version pages|url=http://online.ts2009.com/mediaWiki/index.php/TS2010|sort=aTS10,combined{{SUBPAGENAME}}}}
mzfbay3dqvtt0k85i43ddtns32sb2ay
Annotated Republic of China Laws/Criminal Code of the Armed Forces/2001
0
305810
4672170
4098390
2026-09-24T15:35:04Z
R. Henrik Nilsson
3395618
commited > committed
4672170
wikitext
text/x-wiki
{{Header
| title = Criminal Law of the Armed Forces
| author = |override_author= Republic of China (Taiwan) Law
| section = 2001
| previous = [[../1937/]]
| next =
| notes ={{Wikisource|zh:陸海空軍刑法 (民國90年)}}
Articles 27, 44, 54, 66, 72, 75 and 79 have been amended.<ref>{{cite web |url=https://law.moj.gov.tw/ENG/LawClass/LawAll.aspx?PCode=F0120001 |title=Criminal Code of the Armed Forces |author= |date=2017-04-19 |work=Laws & Regulations Database of The Republic of China |publisher=Ministry of Justice (Taiwan) |accessdate=2019-11-21}}</ref>
}}
==Part One: General Provisions==
;Article 1
*A person who is in active military service offences the law shall be punished according to the Code.
;Article 2
*The Code also applies to the following kinds of offences committed by a soldier who is not in active service in wartime:
#Offences of the provision as specified in Article 16;
#Offences of the provision as specified in paragraph Ι of Article 17, clause Ι or II of paragraph Ι of Article 18;
#Offences of the provision as specified in paragraph Ι of Article 53, paragraph Ι of Article 58, paragraph Ι of Article 59, paragraph Ι of Article 63;
#Offences of the provision as specified in paragraph Ι or II of Article 67, paragraph II of Article 68;
#Offences of the provision as specified in Article 72 causing the loss on military.
*And also apply to the non-penetration of the preceding paragraphs about the offences of the provision as specific in paragraph Ι of Article 17, clause Ι or II of paragraphΙof Article 18, paragraph Ι of Article 53, paragraph Ι of Article 58, paragraph Ι of Article 59, paragraph Ι of Article 63, paragraph Ι or II of Article 67 as well.
;Article 3
*The Code shall apply to a soldier who forfeited the position of soldier after an offence was committed.
;Article 4
*The Code shall apply to an offence committed by a soldier beyond the territory of the Republic of China, and an offence in Article 2 committed in wartime by a soldier who is not in active service are as well.
;Article 5
*If an offence in the Criminal Law of Republic of China or other laws committed by a soldier within the occupied territory of the army of Republic of China will be considered an offence committed within the territory of the Republic of China.
;Article 6
*The words "soldier" in the Code denotes a person who is in active service of officers, Sergeants, and privates under the law of military service or other laws.
;Article 7
*A person who serves in the armed forces and subsumes in battle disposition in wartimes is consider to be a soldier who is in active service.
;Article 8
*The word "commander" in the Code denotes an officer or Sergeants that has the authority to command or the superior position;
*The word "senior officer" in the Code denotes an officer or Sergeant that has the superior official rank.
;Article 9
*The word "troops" in the Code denotes the Ministry of National Defense and forces, academies, and organizations its.
;Article 10
*The word "enemy" in the Code denotes any country or organization that engages in or whose force confronts with the Republic of China.
;Article 11
*The Code shall apply to the period and area that the president declares the war according to the provisions of wartime, and as well as the period and districts under martial laws for the war or the revolt. If the Legislative Yuan doesn’t approve the proclamation of war or the martial law, this Code does not apply.
;Article 12
*An act is not punishable when committed for maintaining the momentous profit on national defenses or military affairs in desperation. Provided, If the act was excessively improper, punishment may be reduced or remitted.
;Article 13
*The Code shall apply to the General Provisions of the [[Criminal Code]] if not against each other.
==Part Two: Special Provisions==
===Chapter I: OFFENCES AGAINST THE ALLEGIANCE TO THE NATION===
;Article 14
*A person who commits an overt act with intent to destroy the organization of the State, seize State territory, change the Constitution, or overthrow the Government by strong-arm means or threatening with force shall be punished with imprisonment for not less than ten years; an ringleader shall be punished with imprisonment for not less than ten years, death or imprisonment for life.
*A person who prepares to commit an offence specified in the preceding paragraph shall be sentenced to imprisonment for not less than one year and not more than seven years.
;Article 15
*A person who conspire to commit with violence an offence specified in the preceding paragraph shall be sentenced to imprisonment for not less than seven years or for life; an ringleader shall be sentenced to death or imprisonment for life.
*A person who prepares or conspires to commit an offence specified in the preceding paragraph shall be sentenced to imprisonment for not less than three years and not more than ten years.
;Article 16
*A person who incites the soldier in active service to riot by writing, drawing, speech and any other means specified in paragraph I of Article 14 shall be sentenced to imprisonment for not less than seven years.
;Article 17
*A person who commits an offence specified in one of the following circumstances shall be punished with death or imprisonment for life:
#Giving the military facilities or the materials for military use to an enemy in paragraph I of Article 58 or paragraph I of Article 59;
#Committing an act of espionage for an enemy or rendering aid to an enemy's spy;
#Semaphoring or, sending or transmitting telecommunication to an enemy;
#Rendering aids to an enemy to invade a military post, an airport, a naval base, or any other military places or structures; or to guide an enemy or to indicate the geographical features for an enemy;
#Committing an act with violence, threats, or intimidation to a commander or a senior officer to surrender to an enemy;
#Seizing or letting go the captured vessels, aircrafts, or captives for an enemy.
*An attempt to commit an offence specified in the preceding paragraph is punishable.
*A person who prepares or conspires to commit an offence specified in paragraph I shall be punished with imprisonment for not less than one year and not more than seven years.
*If the offence committed in the three preceding paragraphs was slight, the punishment may be reduced.
;Article 18
*A person who profited an enemy intentionally, and committed an offence specified in one of the following circumstances shall be punished with death or imprisonment for life:
#Destroying, or damaging the military facilities and materials for military use in paragraph I of Article 58 or paragraph I of Article 59;
#Obstructing the way in the land and water, or destroying, damaging the bridge, beacon, signs or other things to interfere the military traffic;
#The commander leads the troups not to go to the assigned defensive place or causes the troups to have unauthorized departure from the arranged deployment;
#Dispersing the troups or tempting the troups to disorder so that interference the communication and gathering;
#An act of causing the lack of arms, ammunition, food, coverlets and clothes and other important materials for military use;
#Committing an offence specified in paragraph I or paragraph IV of Article 16.
*An attempt to commit an offence specified in the preceding paragraph is punishable.
*A person who prepares or conspires to commit an offence specified in paragraph I shall be sentenced to imprisonment for not less than six months and not more than five years.
*If the offence committed specified in the three preceding paragraphs was slight, the punishment may be reduced.
;Article 19
*A person who renders military aids to an enemy or causes injury to the military interests of the Republic of China or an ally of the Republic of China with means excluding the two preceding articles shall be sentenced to imprisonment for ten years, death or imprisonment for life.
*An attempt to commit an offence specified in the preceding paragraph is punishable.
*A person who prepares or conspires to commit an offence specified in paragraph I shall be sentenced to imprisonment for not less than six months and not more than five years.
*If the offence committed specified in the three preceding paragraphs was slight, the punishment may be reduced.
;Article 20
*A person who discloses or delivers a document, plan, information, electromagnetic record, or other things of a secret nature concerning the defence of the Republic of China shall be punished with imprisonment for not less than three years and not more than ten years. That if he committed the offence in wartime shall be punished with imprisonment for not less than seven years or imprisonment for life.
*A person who discloses or delivers to an enemy the military secrets in the preceding paragraph shall be punished with death or imprisonment for life.
*An attempt to commit an offence specified in one of the two preceding paragraphs is punishable.
*A person who commits the offence unpremeditatedly in the preceding paragraph shall be punished with imprisonment for not less than three years, detention, or a fine of not more than 300,000 yuan. That if he committed the offence in wartime shall be punished with imprisonment for not less than one year and not more than ten years.
*An attempt to commit an offence specified in paragraph I or II shall be punished with imprisonment for not less than five years.
;Article 21
*A person who discloses or delivers military confidential information in the preceding paragraph which he had knowledge or possession because of his official position may be punished for such an offence increased by one second.
;Article 22
*A person who searches out or gathers military confidential information in paragraph I of Article 20 shall be punished with imprisonment for not less than one year and not more than seven years. That if he committed the offence in wartime shall be punished with imprisonment for not less than three year and not more than ten years.
*A person who searches out or gathers intelligence for an enemy in paragraph I of Article 20 shall be punished with imprisonment for not less than five years and not more than ten years. If he committed the offence in wartime shall be punished with imprisonment for not less than seven year or imprisonment for life.
*An attempt to commit an offence specified in one of the two preceding paragraphs is punishable.
*A person who commits the offence unpremeditatedly in the preceding paragraph shall be punished with imprisonment for not more than two years, detention, or a fine of not more than 200,000 yuan.
;Article 23
*A person who without authority enters into or remains in a strategic military
point, naval base, military vessel, or other places or structures of the military with intent to search out or gather the military intelligence in paragraph I of Article 20 shall be punished with imprisonment for not less than three years and not more than ten years. That if he committed the offence in wartime may have the punishment prescribed for such offence increased by one second.
*An attempt to commit an offence specified in the preceding paragraph is punishable.
*A person who commits the offence premeditatedly in the preceding paragraph shall be punished with imprisonment for not more than two years, detention, or a fine of not more than 200,000 yuan.
;Article 24
*A person who surrenders to an enemy will be sentenced to death, imprisonment for life or imprisonment for not less than ten years.
*A person who derelicts duty and surrenders to an enemy will be punished with imprisonment for not less than one year and not more than seven years.
*An attempt to commit an offence specified in the two preceding paragraphs is punishable.
*A person who commits the offence premeditatedly in the preceding paragraph shall be punished with imprisonment for not less than six months and not more than five years.
;Article 25
*A person who is punished for voluntary surrendering may have the punishment reduced or remitted, and if such person confesses during investigation or trial, the punishment may be reduced.
===Chapter II: OFFENCES AGAINST THE MILLITARY DUTY OR SERVICE===
;Article 26
*A commander that starts wars without cause will be punished with death, imprisonment for life or imprisonment for not less than ten years.
;[[../Article 27/]] (later amended)
;Article 28
*A person who takes the duty of medical affairs in wartime deserts injured soldiers and will be punished with imprisonment for not less than one year and not more than seven years.
*If the death results from the commitment of the offence, the offender shall be punished with imprisonment for life or imprisonment for not less than seven years; if serious bodily harm results, the offender shall be punished with imprisonment for not less than three years and not more than ten years.
;Article 29
*A person who takes the duty of service on the military vessel, aircrafts, tank, gun tank, armored vehicles, arms, ammunition, or other important military facilities and materials do not fulfill the duty, or know the damage of the machinery without report and put the executants in danger shall be punished with imprisonment for not more than five years.
*If the death of the executants results from the commitment of the offence of the preceding paragraph, the offender shall be punished with imprisonment for life or imprisonment for not less than seven years; if the executants have serious harmful results, the offender shall be punished with imprisonment for not less than three years and not more than ten years.
;Article 30
*A person who provides the troops with harmful food or other things will be punished with imprisonment for not more than seven years.
*If the death of the executants results from the commitment of the offence against the preceding paragraph, the offender shall be punished with imprisonment for life or imprisonment for not less than seven years; if the executants have serious harmful results, the offender shall be punished with imprisonment for not less than three years and not more than ten years.
*An attempt to commit an offence specified in the first paragraph is punishable.
;Article 31
*A person who discards a document, plan, information, electromagnetic record, or other things shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*A person who discards the materials in the preceding paragraph to an enemy shall be punished with imprisonment for not more than seven years.
*A person who commits the offences in the two preceding paragraphs unpremeditatedly and causes injury to the military interests shall be punished with imprisonment for not more than two years, detention, or a fine of not more than 200,000 yuan.
*A person who commits the offence in the two preceding paragraphs in wartime shall be punished with imprisonment for life or imprisonment for not less than seven years; if the offence caused injury to military interest shall be punished with death, imprisonment for life or imprisonment for not less than ten years; a person who commits the offence in the third paragraph shall be punished with imprisonment for not less than one year and not more than seven years.
;Article 32
*A person who takes the duty of supplying or transporting arms, ammunition, food, coverlets and clothes and other important materials for military use causes the lack or delay without reasons and causes the injury of the military shall be punished with imprisonment for not less than one year and not more than seven years.
*A person who commits the offences in the preceding paragraphs unpremeditatedly shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*A person who commits the offence in the first paragraph in wartime shall be punished with imprisonment for life or imprisonment for not less than seven years; if he committed the offence in the second paragraph in wartime shall be punished with imprisonment for not less than three years and not more than ten years.
;Article 33
*A person, the prisoner in custody and sets free or facilitates his escape shall be punished with imprisonment for not less than one year and not more than seven years.
*A person who commits the offences in the preceding paragraphs unpremeditatedly shall be punished with imprisonment for not more than one year, detention, or a fine of not more than 100,000 yuan.
*An attempt to commit an offence specified in the preceding paragraph is punishable.
;Article 34
*A guard, sentry, or a person who takes the duty of guarding on the alert neglects the duty for sleep, drunkenness or other similar situations and causes injury to military interests shall be punished with imprisonment for not more than five years.
*A person who commits the offence in the preceding paragraph in wartime shall be punished with imprisonment for not less than one year and not more than seven years; if the offence causes the injury to the military shall be punished with imprisonment for life or imprisonment for not less than seven years.
*A person who commits the offences in the first paragraphs unpremeditatedly in wartime shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
;Article 35
*A guard, sentry, or a person who takes the duties of guarding on the alert, transmitting or dispatching orders makes unauthorized absence or departure form the duty shall be punished with imprisonment for not more than one year, detention, or a fine of not more than 100,000 yuan. If the offence caused the injury to the military shall be punished with imprisonment for life or imprisonment for not less than one year and not more than seven years.
*A person who commits the offences in the preceding paragraphs unpremeditatedly and caused the injury to the military shall be punished with imprisonment for not more than six months, detention, or a fine of not more than 50,000 yuan.
*A person who commits the offences in the first paragraphs in wartime shall be punished with imprisonment for not more than five years. If the offence caused the injury to the military shall be punished with imprisonment for life or imprisonment for not less than one year and not more than seven years.
*A person who commits the offences in the first paragraph unpremeditatedly in wartime shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
;Article 36
*A person who is against the regulations prevent those personsfrom on duty handing over the duty shall be punished with imprisonment for not more than one year, detention, or a fine of not more than 100,000 yuan. If the offence caused the injury to the military shall be punished with imprisonment for life or imprisonment for not less than one year and not more than seven years.
*The code shall apply to the offender who cause to be against other duty.
;Article 37
*A person who pretends to be sick, hurt, or other acts of malingering to escape the duty shall be punished with imprisonment for not less than one year and not more than seven years.
*An attempt to commit an offence specified in the preceding paragraph is punishable.
;Article 38
*A person who by fraud or other illegal means avoids all or part of important military duties shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*An attempt to commit an offence specified in the preceding paragraph is punishable.
;Article 39
*A person who tries to get rid of military service over a long period of time or to escape to assume service shall be punished with imprisonment for not more than five years; if the escaping person return within six days may have the reduced punishment reduced.
*A person who commits the offences in the preceding paragraph in wartime shall be punished with imprisonment for life or imprisonment for not more than ten years.
*An attempt to commit an offence specified in the two preceding paragraphs is punishable.
;Article 40.
*A person who leaves the position in service without reasons or does not assume his /her service over six days shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*A person who leaves the position in service without reasons or does not assume service over six days in wartime shall be punished with imprisonment for not less than three years and not more than ten years.
*A person who leaves the position in his /her without reasons or does not to assume service over thirty days or of which over six days in wartime shall be punished according to the preceding regulation.
;Article 41
*A person who takes out military armaments, ammunition or other materials and leaves the position in service without reasons or does not assume service shall be punished with imprisonment for not less than seven years. If the person who commits the offences in the preceding paragraph in wartime shall be sentenced to death, imprisonment for life or imprisonment for not less than ten years.
*A person who commits the offences in the preceding paragraph confesses the crime and surrenders the arms may have his /her punishment reduced or remitted; if such person confessed during investigation or trial and surrenders the arms may have the reduced punishment.
*An attempt to commit an offence specified in the first paragraph is punishable.
===Chapter III: OFFENCES AGAINST THE MILLITARY DUTY OF OFFICER===
;Article 42
*A commander who leaves the subordinate, leaves the assigned defensive place or move the post without authorization shall be punished with imprisonment for not less than one year and not more than seven years.
*If the above-mentioned offence committed in wartime shall be punished with imprisonment for life or imprisonment for not less than seven years.
If the offence caused the injury to the military shall be punished with death or imprisonment for life.
;Article 43
*A commander who deserts the injured subordinate without reasons shall be punished with imprisonment for not less without reasons than one year and not more than seven years.
*If the death of a soldier results from the commitment of the offence, the commander shall be punished with imprisonment for life or imprisonment for not less than seven years; if the soldier is seriously harmed , the commander shall be punished with imprisonment for not less than three years and not more than ten years.
;[[../Article 44/]] (later amended)
;Article 45
*A commander who punishes the subordinate’s act which the commander knows is not punishable shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*A commander who punishes the subordinate without the regulations category and limitation as the Code shall be punished with imprisonment for not more than one year, detention, or a fine of not more than 100,000 yuan.
;Article 46
*A commander who by violence, threat, or fraud obstructs the subordinate to present a petition, complaint, litigate, state and plead shall be punished with imprisonment for not more than three year, detention, or a fine of not more than 300,000 yuan.
*A person who takes the duty of examining or informing and the offence of the preceding paragraph is also punishable.
===Chapter IV: OFFENCES AGAINST THE MILLITARY DUTY OF SUBORDINATE===
;Article 47
*A person who disobeys the military orders of which transmitted or announced from higher authorities or within the commander's powers shall be punished imprisonment for not more than five years.
*A person who commits the offences in wartime shall be punished with death or the imprisonment for life.
*A person who commits the offence unpremeditatedly and causes the injury to the military interest shall be punished with imprisonment for not less than five years and not more than twelve years.
*If the offender voluntarily and timely executes the duty that needn’t be executed immediately when the offence of the first paragraph was committed may have the punishment reduced or remitted.
;Article 48
*A person who participates in an open assembly with offence of the first paragraph shall be punished with imprisonment for not less than one year and not more than seven years; the ringleader shall be punished with imprisonment for not less than three years and not more than ten years.
*If the offence in the preceding paragraph committed in wartime shall be punished with death, imprisonment for life or imprisonment for not less than ten years; the ringleader shall be punished with death or imprisonment for life.
;Article 49
*A person who uses violence, threat to a commander or puts the commander in fear shall be punished with imprisonment for not less than one year and not more than seven years.
*A person who commits the offence of the preceding paragraph in wartime shall be punished with death, imprisonment for life or imprisonment for not less than ten years.
*A person who commits the offence in the first paragraph to the senior officer shall be punished with imprisonment for not more than three year, detention, or a fine of not more than 300,000 yuan. If the offence committed in wartime shall be punished with imprisonment for life or imprisonment for not less than seven years.
*An attempt to commit an offence specified in the three preceding paragraphs is punishable.
;Article 50
*A person who participates in an open assembly and commits the offence of the preceding paragraph shall be punished with imprisonment for not less than one year and not more than seven years; the ringleader shall be punished with imprisonment for not less than seven years; a person who actually commits shall be punished with imprisonment for not less than five years.
*A person who is involved and commits the offence of the preceding paragraph in wartime shall be punished with death, imprisonment for life; the ringleader shall be punished with death, imprisonment for not less than seven years; a person who actually commits shall be punished with death, imprisonment for life or imprisonment for not less than ten years.
*An attempt to commit an offence specified in the two preceding paragraphs is punishable.
;Article 51
*A person who commits the offence in the two preceding paragraph may have the reduced punishment because of extenuating circumstances.
;Article 52
*A person who publicly insults a commander shall be punished with imprisonment for not more than two years, detention or a fine of not more than 200,000 yuan.
*A person who publicly insults a senior officer shall be punished with imprisonment for not more than one year, detention or a fine of not more than 100,000 yuan.
*A person who by circulating a writing, drawing, speech or other means commits an offence specified in the two preceding article shall have the punishment increased up to one half.
*Prosecution for an offence specified in the three preceding articles may be instituted only upon complaint.
===Chapter V: OTHER MILITARY OFFENCES===
;Article 53
*A person who by violence, treats or other ways kidnaps military vessel, aircraft or controls its navigation shall be punished with death, imprisonment for life or imprisonment for not less than ten years.
*An attempt to commit an offence specified in the preceding paragraphs is punishable.
*A person who prepares to commit an offence specified in paragraph I shall be punished with imprisonment for not less than six months and not more than five years.
;[[../Article 54/]] (later amended)
;Article 55
*A person who attacks hospital, medical installation, medical transportation or medical staff with reasons shall be punished with imprisonment for not less than one year and not more than seven years. The Code also applies to a person who attacks a negotiation representative or a field correspondent.
;Article 56
*A person who grabs belongings of the dead or the injured soldiers from his own country, friendly country or the enemy without reason shall be punished with imprisonment for not less than one year and not more than seven years.
*An attempt to commit an offence specified in the preceding paragraphs is punishable.
;Article 57
*A person who goods and materials, installation or financial resources of the people without following the requisitions shall be punished with imprisonment for not less than three years and not more than ten years.
*An attempt to commit an offence specified in the preceding paragraphs is punishable.
;Article 58
*A person who destroys military airport, harbor, tunnel, blockhouse, strategic point, military vessel, aircraft, vehicle, arms, ammunition, radar, signal communication, information facilitates and equipments, or other important military facilitates and materials for war, or otherwise making the military facilities useless and material for military use shall be punished with imprisonment for life or imprisonment for not less than seven years.
*A person who commits the offence negligently shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*A person who commits an offence specified in paragraph I in wartime shall be punished with death or imprisonment for life; a person who commits paragraph II may have the punishment increased up to one half.
*An attempt to commit an offence specified in the paragraph I and III is punishable.
*A person who prepares to commit an offence specified in paragraph I shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*If the offence of the four paragraphs is committed the punishment may be reduced.
;Article 59
*A person who destroys, damages or causes a military factory useless, depot, dock, bridge, road and waterway, oil, army provisions, raw materials for producing arms, ammunition or other important military facilitates shall be punished with imprisonment for not less than three years and not more than ten years.
If the offence of the four preceding paragraphs is committed shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*A person who commits the offence negligently shall be punished with imprisonment for not more than two years, detention, or a fine of not more than 200,000 yuan.
*A person who commits an offence specified in paragraph I in wartime shall be punished with imprisonment for life or imprisonment for not less than seven years; a person who commits paragraph II may have the punishment increased up to one half.
*An attempt to commit an offence specified in the paragraph I and III is punishable.
*If the offence of the three preceding paragraphs is committed the punishment may be reduced.
;Article 60
*A person who destroys, damages or causes the military facilitates useless against the two preceding paragraph shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*Prosecution for an offence specified in the preceding articles may be instituted only upon complaint.
;Article 61
*A person who endangers public or military security by losing arms, ammunition or other materials military operations shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
;Article 62
*A person who damages historic monuments or historical cultural relics without reason in wartime shall be punished with imprisonment for not more than five years.
If the offence of the four preceding paragraphs is committed under serious circumstances shall be punishment with imprisonment for not less than one year and not more than seven year.
;Article 63
*A person who exports, interferes, changes electromagnetic records or hinders its accuracy by other illegally means shall be punished with imprisonment for not more than five years.
*If the offence committed in wartime shall be punished with imprisonment for not less than three years and not more than ten years. If the offence caused the injury to the military shall be punished with imprisonment for life or imprisonment for not less than seven years.
;Article 64
*A person who illegally occupies military arms or ammunition shall be punished with imprisonment for not less than three years and not more than ten years.
*A person who commits the offence of the preceding paragraph with intent to commit a crime for him self or for others shall be punished with imprisonment for life or imprisonment for not less than ten years.
*A person who illegally occupied military materials that were not mentioned in the preceding paragraph shall be punished with imprisonment for not less than one year and not more than seven years.
*An attempt to commit an offence specified in the three preceding paragraph is punishable.
*If the offence of preceding paragraph I and III is committed shall be punished with imprisonment for not more than five years.
;Article 65
*A person who manufactures, sales or transports military arms or ammunition without authorization shall be punished with death, imprisonment for life or imprisonment for not less than ten years.
* A person who commits the offence of the preceding paragraph with intent to facilitate himself or others to commit a crime shall be punished with death or imprisonment for life.
*A person who manufactures, sales or transports the main components of military arms or ammunition without authorization shall be punished with imprisonment for life or imprisonment for not less than seven years.
*An attempt to commit an offence specified in the three preceding paragraph is punishable.
;[[../Article 66/]] (later amended)
;Article 67
*A person who commits violence, threats, or intimidation to a guard, sentry, or a person who takes the duty of guarding on the alert or on transmission shall be punished with imprisonment for not less than six months and not more than five years.
*A person who is involved and commits the offence of the preceding paragraph shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan; the ringleader shall be punished with imprisonment for not less than three years and not more than ten years; a person who actually commits shall be punished with imprisonment for not less than one year and not more than seven years.
*An attempt to commit an offence specified in the two preceding paragraph is punishable.
;Article 68
*A person who commits violence, threats, or intimidation to a person who takes the duty that is not mentioned in the preceding paragraph shall be punished with imprisonment for not more than three years, detention, or a fine of not more than 300,000 yuan.
*A person who is involved at present and commits the offence of the preceding paragraph shall be punished with imprisonment for not more than two years, detention, or a fine of not more than 200,000 yuan; the ringleader shall be punished with imprisonment for not less than one year and not more than seven years; a person who actually commits shall be punished with imprisonment for not less than six months and not more than five years.
*An attempt to commit an offence specified in the two preceding paragraph is punishable.
;Article 69
*A person who forms a gang more than three persons and occupies a government office, railway, highway, railway station, port, airport, broadcasting station, television station, telecommunication station or other similar places forcibly shall be punished with imprisonment for not less than three years and not more than ten years.
*An attempt to commit an offence specified in the preceding paragraph is punishable.
;Article 70
*A person who insults a guard, sentry, or a person who takes the duty of guarding on the alert or on transmission presently or insults the duty that is in execution publicly shall be punished with imprisonment for not more than one year, detention, or a fine of not more than 100,000 yuan.
;Article 71
*A person who defrauds a guard, sentry, or a person who takes the duty of guarding on the alert to pass the place on the alert, or to pass with recalcitrance shall be punished with imprisonment for not more than one year, detention, or a fine of not more than 100,000 yuan.
;[[../Article 72/]] (later amended)
;Article 73
*A person who intends to influence a person who has the power to appoint, propose, deliberate, ratify the decision of appointment, promoting, degradation and sends fake information which is disadvantageous to others anonymously shall be punished with imprisonment for for not more than one year, detention, or a fine of not more than 100,000 yuan.
*A person who knows the anonymous information is fake still offers a person who has the power of investigation or the authority of personnel office as referring shall be punished with imprisonment for not more than six months, detention, or a fine of not more than 50,000 yuan.
;Article 74
*A person who openly without authority wears the uniforms or badges or makes use of the military titles of a soldier shall be punished with imprisonment for not more than one year, detention, or a fine of not more than 100,000 yuan.
*A person who commits the offence of the preceding paragraph and exercises powers as such shall be punished with imprisonment for not more than five years.
;[[../Article 75/]] (later amended)
==Part Three: Additional Provisions==
;Article 76
*A soldier who is in the military service commits the following offences of Criminal Code will be punished according to it as provided in this Code:
#Offences against the External Security of the Nation in Article 109 to 112 of chapter II.
#Chapter of Offences of Malfeasance in Office.
#A person commits Offence against Public Safety intentionally in Article 173 to 177, paragraph I,II and IV of Article185, paragraph I of Article 190 and paragraph I of Article 191.
#Chapter of Offences of Forging Instruments or Seals.
#Chapter of Offences of Homicide.
#Offences of paragraph II in Article 277 and paragraph II Article 278 in Chapter of Offences of Causing Bodily Harm.
#Chapter of Offences against Sex Liberty.
#Offences of Larceny committed in the area of military base, vessel and structures.
#Chapter of Offences of forcible Taking, Robbery and Piracy.
#Chapter of Offences of Intimidation and Kidnapping for Ransom.
*The offences of the preceding paragraphs will follow the special provision if other law or order prescribes the punishment.
*The offences of the two preceding paragraphs are committed in war time, the punishment may be increased up to one half.
;Article 77
*A soldier who is in the military service offences the Regulations of Prevention and Cure to the Drugs shall be punished according to the Code.
;Article 78
*The Ministry of National Defense shall provide the category, extent and level of electromagnetic of writing, drawing, and information, electromagnetic record or other similar materials about the military of the Republic of China or superintends the Ministry of National Defense.
;[[../Article 79/]] (later amended)
[[zh:中華民國法律註解/陸海空軍刑法/2001年]]
n07dg7ri9eivfr83r7qej631atlx4x9
Introduction to Radioisotope Geochronology/Part Eight - Examples of Application
0
310062
4672290
3664343
2026-09-25T09:41:44Z
WereSpielChequers
248949
typo
4672290
wikitext
text/x-wiki
{{TOC}}
[[File:Gravimetric U-Pb.jpg|left|350px]]
==Introduction==
Radio-isotopic dating is the determination of ages of geologic materials through the comparison between the observed abundance of a naturally occurring radioactive isotope and its decay products, using known decay rates.
</br>
==Age of the Earth==
</br>
===Brief History of Determining the Age of the Earth===
In regards to the [[w:age of the Earth|age of the Earth]], the first accurate estimate that is still broadly accepted today was proposed by [[w:Claire Patterson|Claire Patterson]] in 1953. Patterson's dissertation project was focused on using [[w:Isotopes_of_lead|radiogenic lead]] (i.e. lead that was produced by the radioactive decay of [[w:uranium|uranium]]) to calculate the age of [[w:meteorites|meteorites]]. It was assumed that meteorites and asteroids represented the left-over materials from the formation of the [[w:Solar System|Solar System]] and had remained relatively undisturbed and therefore by measuring the lead isotopes of a meteorite on could assume the age of the Earth to be equivalent. Patterson found that the age of five meteorites from [[w:Canyon_Diablo_(meteorite)|Canyon Diablo]] in Arizona, [[w:Eucrite|Nuevo Laredo]] in Mexico, and [[w:Henbury_Meteorites_Conservation_Reserve|Henbury]] in Northern Australia was 4.55±0.07 billion years old.<ref name="Patterson">{{cite journal | last=Patterson | first=C. | authorlink=Claire Patterson | title=Age of meteorites and the earth | journal=Geochimica et Cosmochimica Acta | date=1956 | volume=10 | pages=230-237 | doi=10.1016/0016-7037(56)90036-9}}</ref> Amazingly, the current estimate for the [[w:age of the Earth|age of the Earth]] is still within uncertainty of Patterson's first calculation at 4.54 ± 0.05 billion years {{nowrap|(4.54 × 10<sup>9</sup> years ± 1%).}}<ref name="USGS1997">{{cite web
| date=1997 | title=Age of the Earth
| url=http://pubs.usgs.gov/gip/geotime/age.html
| publisher=U.S. Geological Survey
| accessdate=2006-01-10
| archiveurl= http://web.archive.org/web/20051223072700/http://pubs.usgs.gov/gip/geotime/age.html| archivedate= 23 December 2005 <!--DASHBot-->| deadurl= no}}</ref><ref>{{cite journal
| last=Dalrymple | first=G. Brent
| title=The age of the Earth in the twentieth century: a problem (mostly) solved | journal=Special Publications, Geological Society of London
| date=2001 | volume=190
| issue=1 | pages=205–221
| doi=10.1144/GSL.SP.2001.190.01.14 |bibcode = 2001GSLSP.190..205D }}
</ref>
</br>
==Tectonic Applications==
</br>
==Stratigraphic Applications==
[[Image:KT boundary 054.jpg|thumb|right|400px|[[Badlands]] near [[Drumheller, Alberta]], where erosion has exposed the [[K–T boundary]]]]
The '''Cretaceous–Tertiary extinction event''', which occurred approximately 65.5 ([[Annum|Ma]]), was a large-scale [[extinction event|mass extinction]] of animal and plant species in a geologically short period of time. Widely known as the '''K–T extinction event''', it is associated with a geological signature known as the [[K–T boundary]], usually a thin band of sedimentation found in various parts of the world. ''K'' is the traditional abbreviation for the [[Cretaceous]] [[Period (geology)|Period]] derived from the German name ''Kreidezeit'', and ''T'' is the abbreviation for the [[Tertiary]] Period. The event marks the end of the [[Mesozoic]] Era and the beginning of the [[Cenozoic]] Era.<ref name="Fortey">{{cite book |last=Fortey|first= R |title=Life: A Natural History of the First Four Billion Years of Life on Earth |publisher=Vintage |year=1999 |pages=238–260 |isbn=9780375702617}}</ref> With "Tertiary" being discouraged as a formal time or rock unit by the [[International Commission on Stratigraphy]], the K–T event is now called the '''Cretaceous–Paleogene''' (or '''K–Pg''') '''extinction event''' by many researchers.<ref>{{cite book |last=Gradstein|first= F|coauthors= Ogg J, Smith A |title=A Geologic Time Scale 2004 |url=http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=0521781426}}</ref>
[[File:Geochronologist collecting ash.jpg|thumb|400px|Two geochronologists and a Paleontologist collecting an ash bed at the Cretaceous-Paleogene Boundary, Wyoming]]
==Thermochronology==
</br>
==Quaternary Geochronology==
See Stirling and Mortensen (2009){{ref|StirlingAndersen2009}} for a recent review of the U-Th chronometer applied to fossil coral reefs.
==References==
# {{note|StirlingAndersen2009}} Uranium-series dating of fossil coral reef: Extending the sea-level record beyond the last glacial cycle. Earth and Planetary Science Letters, 284 (2009) 3269-283 [http://dx.doi.org/10.1016/j.epsl.2009.04.045]
# {{note|Amelin2002}} Yuri Amelin, et al. Science '''297''', 1678 (2002)
{{BookCat}}
4t652bakot2wrcguyehndglv83h0k1i
Modern Greek/Lesson 05.4
0
367918
4672258
3294491
2026-09-25T03:30:04Z
It-is-Truly-Meet
3624460
4672258
wikitext
text/x-wiki
= Lesson 5.4 =
In this lesson you'll hear some sample dialogues that will get you used to listening to directions and teach you some more vocab.
== Directions ==
[[Image:Compass Rose North.svg|right|300px]]
{| {{Modern Greek/Translations table|Vocabulary|Question words|TBC}}
|βόρειος || north
|-
|νότιος || south
|-
|ανατολή || east
|-
|δύση || west
|-
|δεξιός || right
|-
|αριστερός || left
|-
|ευθεία μπροστά || straight ahead
|-
|δίπλα σε || next to
|-
|μπροστά από||in front of
|-
|πίσω||behind
|-
|πάνω από||above
|-
|κάτω||down
|-
|κοντά σε||near (to)
|-
|πολύ μακριά από||far (from)
|}
{| {{Modern Greek/Translations table|Vocabulary|Places in a City|TBC}}
|
|}
== Dialogue 1 ==
{{French/Dialogue list
| a = Μάρκος
| b = Ανδρέας
| Με συγχωρείτε, πού είναι η κοντινότερη τράπεζα; | Excuse me, where is the nearest bank?
| Γεια σας. Προχωρήστε ευθεία, περάστε το καφέ Carpo, στρίψτε δεξιά και συνεχίστε ευθεία, μετά στρίψτε αριστερά στο Xotic και προχωρήστε ευθεία μέχρι να φτάσετε στην CrediaBank. | Hello. Go straight ahead past Cafe Carpo, take a right and go straight, then make a left at Xotic, and go straight ahead until you reach CrediaBank.
| Σας ευχαριστώ πολύ! | Thank you very much!
| Παρακαλώ. Να έχετε μια καλή μέρα.| You're welcome. Have a good day.
| Γεια σας!| Bye!
| audio = .ogg
}}
{{Modern Greek}}
o0x4s9bjixze08qd6p709z18ouz7y0n
Modern Greek/Vocab Countryside
0
368528
4672250
4662164
2026-09-25T00:30:48Z
It-is-Truly-Meet
3624460
4672250
wikitext
text/x-wiki
= Vocab: Countryside =
[[Image:Bull Oostvaardersplassen.JPG|thumb|right|200px|ο ταύρος]]
[[Image:Farmland_somewhere_in_North_Carolina.jpg|thumb|right|200px|το αγρόκτημα]]
[[Image:A_deciduous_beech_forest_in_Slovenia.jpg|thumb|right|200px|τα δέντρα]]
{| {{Modern Greek/table|Vocab|Nature|Η φύση}}
| η ύπαιθρος
| the countryside ("open air", ~"ether")
|-
| το χωριό
| the village
|-
| η φύση
| the nature (~"physics")
|-
| το αγρόκτημα
| the farm (~"agriculture")
|-
| ο αγρότης
| the farmer
|-
| το ζώο
| the animal (~"zoo")
|-
| το φυτό
| the plant
|-
| το δέντρο
| the tree (~"dendrite")
|-
| το δάσος
| the forest
|-
| ο γάïδαρος
| the donkey
|-
| το άλογο
| the horse
|-
| η αγελάδα
| the cow
|-
| ο ταύρος
| the bull (~"taurus")
|-
| η κατσίκα
| the goat
|-
| το πουλί
| the bird
|-
| το κοτόπουλο
| the chicken
|-
| πετώ
| to fly
|-
| η μύγα
| the fly
|-
| η μέλισσα
| the bee (~"mellifluous", honeyed)
|-
| το μυρμήγκι
| the ant
|-
| το μονοπάτι
| the path, trail
|-
| στενός
| narrow (~"stenographer")
|-
| το στενό
| the mountain pass
|-
| πάω περίπατο/πάω βόλτα
| to go for a walk (~"peripatetic")
|-
| το βουνό
| the mountain
|-
| ο λόφος
| the hill
|-
| η κοιλάδα
| the valley
|-
| ο ποταμός/το ποτάμι
| the river (~"hippopotamus")
|-
| το ρυάκι
| the stream, creek
|-
| ο βράχος
| the rock
|-
| το έδαφος
| the soil
|-
| ο βορράς; βόρειος
| the north; northern (~"aurora borealis")
|-
| ο νότος; νότιος
| the south; southern
|-
| η ανατολή; ανατολικός
| the east; eastern (~"Anatolia")
|-
| η δύση; δυτικός
| the west; west
|-
| ο ήλιος
| the sun (~"helium," which was first detected in the sun)
|-
| η σελήνη
| the moon
|-
| ο ουρανός
| the sky (~"Uranus," the sky god)
|-
| η σκιά
| the shadow
|-
| το αστέρι/το άστρο
| the star (~"astronaut")
|-
| η Γη
| the Earth
|}
Examples:
{| {{Modern Greek/Table|Examples}}
| Πού είναι το μονοπάτι;
| Where is the path?
|-
| Το μονοπάτι είναι στενό.
| The trail is narrow.
|-
| το άλογο του αγρότη
| the farmer's horse
|-
| η κοιλάδα της σκιάς του θανάτου
| the valley of the shadow of death
|}
<br>{{Modern Greek}}
{{BookCat}}
jj1kuruor9qdpi1ozzgtgqi92ebbn9a
PHP Programming/Comparison
0
370331
4672177
4665642
2026-09-24T15:51:25Z
~2026-51585-89
3626759
delete duplicate row
4672177
wikitext
text/x-wiki
<noinclude>{{Nav}}</noinclude>
The operators for comparison in PHP are the following:
{| class="wikitable"
|-
! Operator !! Name !! Returns <code>true</code>, if…
|-
| align="center" | <code>==</code> || align="center" | equal || left & right side equals
|-
| align="center" | <code>===</code> || align="center" | identical || <code>==</code> is <code>true</code>, and both sides have the same type
|-
| align="center" | <code>!=</code> || align="center" | not equal|| left & right are not equal after type juggling
|-
| align="center" | <code><></code> || align="center" | not equal|| synonym of <code>!=</code>
|-
| align="center" | <code>!== </code> || align="center" | not identical || <code>!=</code> is <code>true</code>, or their types differ
|-
| align="center" | <code><</code> || align="center" | less than || left side is strictly less than right side
|-
| align="center" | <code>></code> || align="center" | greater than || left side is strictly greater than right side
|-
| align="center" | <code><=</code> || align="center" | less than or equal to || left side is less than or equal to right side
|-
| align="center" | <code>>=</code> || align="center" | greater than or equal to || left side is greater than or equal to right side
|-
| align="center" | <code><=></code> || align="center" | spaceship || integer less than, equal to, or greater than zero when left side is respectively less than, equal to, or greater than right side (≥ PHP 7).
|-
| align="center" | <code>$a</code> <code>??</code> <code>$b</code><br/><code>??</code> <code>$c</code> || align="center" | null coalescing || first operand from left to right that exists and is not <code>NULL</code>. <code>NULL</code>, if no values are defined and that not <code>NULL</code> (≥ PHP 7).
|}
==Example of comparisons==
{{Code:PHPHTML
|This example sets and prints arrays.
|<syntaxhighlight lang="php">
<?php
$value1 = 5;
$value2 = 7;
if ($value1 == $value2) {
print('value1 is equal to value2');
} else {
print('value1 is unequal to value2');
}
?>
</syntaxhighlight>
|<pre>
value1 is unequal to value2
</pre>
|value1 is unequal to value2
|
}}
==External Links==
* [http://php.net/manual/en/language.operators.comparison.php PHP Manual on Comparison Operators]
{{Nav}}
4bbz61n5lwfbohaxk1lk0e4e6kun1gk
An Answer Key to Latin for Beginners by Benjamin L. D’Ooge
0
391739
4672172
4584138
2026-09-24T15:35:37Z
R. Henrik Nilsson
3395618
commited > committed
4672172
wikitext
text/x-wiki
{{status|75%}}
{{TOCright}}
This Wikibook is based on an answer key produced by Textkit forum members. The original contributors were Textkit forum members Skylax, Episcopus, Keesa, Mariek, jsc01, Tim, and of course, Jeff.
=== About References ===
The references are to the paragraph numbers (''§ N'') and the original page numbers (''p. N'') of ''Latin for Beginners''. These numbers are unlikely to coincide with the page numbers of a PDF file, in case you're using one of those. The page numbers of a PDF file are often just a running pagination number, whereas the original page numbers of ''Latin for [[Beginners Guide to Ladino/Verbs in Ladino|Beginners]]'' do not consider the book's front cover and index, for example, as being part of the numbering.
===Online copies===
Copies of the book can be found online at
* [https://www.gutenberg.org/ebooks/18251 Project Gutenberg]
* [[wikisource:Latin for beginners (1911)|Latin for Beginners at Wikisource]]
* [[wikisource:Latin for beginners (1911)/Teachers Manual|Teachers' Manual at Wikisource]]
=== Abbreviations ===
{|
|-
| ''acc'' || accusative
|-
| ''act'' || active voice
|-
| ''abl'' || the ablative case
|-
| ''dat'' || the dative case
|-
| ''gen'' || the genitive case
|-
| ''imp'' || the imperative mood
|-
| ''imperf'' || the imperfect tense
|-
| ''ind'' || the indicative mood
|-
| ''inf'' || the infinitive mood
|-
| ''nom'' || the nominative case
|-
| ''pass'' || the passive voice
|-
| ''perf'' || the perfect tense
|-
| ''pl'' || the plural
|-
| ''pluperf'' || the pluperfect tense
|-
| ''sg'' || the singular
|-
| ''subj'' || the subjunctive mood
|}
== Exercises ==
=== § 10, p. 8 ===
Va'-de ad for-mi'-cam, O pi'-ger, et con-si'-de-ra vi'-as ei'-us et dis'-ce sa-pi-en'-ti-am: quae cum non ha'-be-at du'-cem nec prae-cep-to'-rem nec prin'-ci-pem, pa'-rat in aes-ta'-te ci'-bum si'-bi et con'-gre-gat in mes'-se quod co'-me-dat.
=== § 22, p. 13 ===
# America est patria mea.<br>''America'' subject, noun; ''est'' copula; ''patria'' noun; ''est patria mea'' predicate.
# Agricolam fīliam amat.<br>''Agricola'' subject, noun; ''filiam'' object, noun; ''amat'' verb; ''filiam amat'' predicate.
# Fīlia est Iūlia.<br>''Filia'' subject, noun; ''Iulia'' noun; ''est Iulia'' predicate.
# Iūlia et agricola sunt in īnsula.<br>''Iulua'' noun; ''agricola'' noun; ''Iulia et agricola'' subject; ''sunt'' copula; ''insula'' noun; ''sunt in insula'' predicate (Note the plural subject, ''Iulia et agricola'').
# Iūlia aquam portat.<br>''Iulia'' subject, noun; ''aquam'' object, noun; ''portat'' verb; ''aquam portat'' predicate.
# Rosam in comis habet.<br>''Rosam'' object, noun; ''comis'' noun; ''habet'' verb; ''in comis habet'' predicate.
# Iūlia est puella pulchra.<br>''Iulia'' subject, noun; ''est'' copula; ''puella'' noun; ''est puella pulchra'' predicate.
# Domina fīliam pulchram habet.<br>''Domina'' subject, noun; ''filiam'' object, noun; ''habet'' verb; ''filiam pulchram habet'' predicate.
=== § 26, p. 14 ===
agricola, agricolae; aqua, aquae; causa, causae; domina, dominae; fīlia, fīliae; fortūna, fortūnae; fuga, fugae; iniūria, iniūriae; lūna, lūnae; nauta, nautae; puella, puellae; silva, silvae; terra, terrae
=== § 30, p. 15 ===
amat, amant; labōrat, labōrant; nūntiat, nūntiant; portat, portant; pugnat, pugnant
=== § 31, p. 15 ===
<ol type="I" start="1">
<li>
<ol>
<li>Fīlia amat, fīliae amant.</li>
<li>Nauta portat, nautae portant.</li>
<li>Agricola labōrat, agricolae labōrant.</li>
<li>Puella nūntiat, puellae nūntiant.</li>
<li>Dominae portant, domina portat.</li>
</ol>
</li>
<li>
<ol>
<li>The sailor fights / is fighting / does fight, the sailors fight / are fighting / do fight.</li>
<li>The girl loves, the girls love.</li>
<li>The farmer carries, the farmers carry.</li>
<li>The daughter labours, the daughters labour.</li>
<li>The sailor is announcing, the sailors announce.</li>
<li>The ladies love, the lady loves.</li>
</ol>
</li>
</ol>
=== § 34, p. 17 ===
# forest, nom.sg.; forests, acc.pl.; forest, acc.sg.
# flight, acc.sg.; flights, gen.sg./nom.pl.; flight, nom.sg.
# earths', gen.pl.; earths, gen.sg./nom.pl.; earths, acc.pl.
# waters, acc.pl.; cause, acc.sg; moons, acc.pl.
# daughters, nom.pl./gen.sg; fortunes, gen.sg./nom.pl.; moons, gen.sg./nom.pl.
# injuries, acc.pl.; farmers', gen.pl.; waters', gen.pl.
# injuries', gen.pl.; farmers, gen.sg./nom.pl.; daughters, acc.pl.
# sailor, acc.sg.; farmers, acc.pl.; sailors, acc.pl.
# farmer, acc.sg.; girl, acc.sg.; forests' gen.pl.
=== § 39, p. 19 ===
<ol type="I" start="1">
<li>
<ol>
<li>Diana is a goddess.</li>
<li>Latona is a goddess.</li>
<li>Diana and Latona are goddesses.</li>
<li>Diana is the goddess of the moon.</li>
<li>Diana is Latona's daughter. / Diana is the daughter of Latona.</li>
<li>Latona loves Diana.</li>
<li>Diana is the goddess of the woods/forests.</li>
<li>Diana loves the wood/forest.</li>
<li>Diana carries arrows.</li>
<li>Diana kills the wild beasts of the wood/forest.</li>
<li>The wild beasts of the lands are fighting.</li>
</ol>
</li>
<li>
<ol>
<li>Fīlia Lātōnae silvās amat.</li>
<li>Fīlia Lātōnae sagittās portat.</li>
<li>Fīliae agricolārum labōrant.</li>
<li>Fīlia agricolae aquās silvae amat.</li>
<li>Nauta fugam puellārum nuntiat.</li>
<li>Puellae iniūrias nautārum nūntiat.</li>
<li>Fīlia agricolae labōrat.</li>
<li>Sagittae Diānae ferās terrae necant.</li>
</ol>
</li>
</ol>
=== § 40, p. 19 ===
# ''Quis est Diāna?''<br>Who is Diana?<br>''Diāna est dea silvārum et lūnae.'', ''Diāna dea est.''
# ''Cuius fīlia est Diāna?''<br>Whose daughter is Diana?<br>''Diāna est fīlia Lātōnae.''
# ''Quis Diānam amat?''<br>Who loves Diana?<br>''Lātōna Diānam amat.''
# ''Quis silvam amat?''<br>Who loves the forest?<br>''Diāna silvam amat.''
# ''Quis sagittās portat?''<br>Who carries/is carrying arrows?<br>''Diāna sagittās portat.''
# ''Cuius fīliae labōrant?''<br>Whose daughters labour/are labouring?<br>''Fīliae agricolārum labōrant.''
=== § 47, p. 21 ===
A direct object is ''italicised'', an indirect object is <u>underlined</u>, and the genitive of the possessor is '''bolded'''.
<ol type="I" start="1">
<li>
<ol>
<li>Who gives ''money'' <u>to the sailors</u>?</li>
<li>The daughters '''of the farmer''' are giving/give money <u>to the sailors</u>.</li>
<li>Who announces/is announcing ''the fortune'' '''of the battle'''.</li>
<li>Galba is announcing ''the fortune'' '''of the battle''' <u>to the farmers</u>.</li>
<li><u>To whom</u> does the mistress of the house/lady tell ''the story''?</li>
<li>The mistress of the house/lady tells ''the story'' <u>to the farmer's daughter</u>.</li>
<li>Who is giving ''the wreath'' <u>to Diana</u>? / Who gives <u>Diana</u> ''a crown''?</li>
<li>The girl is giving ''the wreath'' <u>to Diana</u> because she loves ''Diana''. / The girl gives <u>Diana</u> ''a crown'' because she loves ''Diana''.</li>
<li>The goddess '''of the moon''' carries ''arrows'' and kills ''wild beasts'' '''of the forests'''.</li>
<li>'''Whose''' ''victory'' is Galba announcing?</li>
<li>Galba is announcing ''the'' '''sailor's''' ''victory''.</li>
</ol>
</li>
<li>
<ol>
<li>Cui puellae corōnam dant?</li>
<li>Puellae Iūliae corōnam dant, quia Iūlia corōnās amat.</li>
<li>Nautae dominīs fābulam nārrant, quia dominae fābulās amant.</li>
<li>Agricola fīliae aquam dat.</li>
<li>Galba nautae causam pūgnae nūntiat.</li>
<li>Dea lūnae aquās silvae amat.</li>
<li>Cuius corōnam Lātōna portat? Diānae.</li>
</ol>
</li>
</ol>
=== § 53, p. 23 ===
In aquā, in terrā, dē silvā, cum fortūnā, ē silvīs, ā victōriā, ex aquīs, cum nautīs, dē lūna.
=== § 56, p. 24 ===
Julia: Who, Galba, is Diana?<br>
Galba: Diana, Julia, is the beautiful goddess of the moon and woods/forests.<br>
J: Whose daughter, Galba, is Diana?<br>
G: Diana is Latona's daughter, Julia.<br>
J: What does Diana carry?<br>
G: Diana carries arrows.<br>
J: Why does Diana carry arrows?<br>
G: Diana carries arrows, Julia, because she kills the bad wild beasts of the large/big forest.<br>
J: Does Latona love her daughter?<br>
G: She does, and her daughter loves Latona.<br>
J: What does your little daughter carry?<br>
G: My little daughter carries pretty wreaths / beautiful crowns.<br>
J: To whom does your daughter give these pretty wreaths / beautiful crowns?<br>
G: She gives the wreaths / crowns to Diana.<br>
J: Who is with your daughter? Is she alone?<br>
G: She is not alone; my little daughter is with my maidservant.<br>
=== § 62, p. 26 ===
<ol type="I" start="1">
<li>
<ol>
<li>The farmer lives with his daughter in the cottage.</li>
<li>The farmer's good daughter prepares dinner.</li>
<li>Dinner is pleasing to the farmer, and the farmer praises his good daughter.</li>
<li>Then the farmer's daughter calls the hens to dinner.</li>
<li>The hens love the farmer's daughter.</li>
<li>Bad daughters do not prepare good dinners.</li>
<li>The daughter of the farmer is pleasing to the lady/mistress of the house.</li>
<li>The lady lives on a large island.</li>
<li>The lady gives money to the good little girl.</li>
</ol>
</li>
<li>
<ol>
<li>Ubi agricola habitat?</li>
<li>Agricola in casā parvā habitat.</li>
<li>Quis cum agricolā habitat?</li>
<li>Fīlia parva cum agricolā habitat.</li>
<li>Fīlia agricolae bonam cēnam parat.</li>
<li>Agricola bonam cēnam laudat.</li>
<li>Bona cēna fīliae agricolae grāta est.</li>
</ol>
</li>
</ol>
=== § 63, p. 27 ===
# ''Quis cum agricolā in casā habitat?''<br>Who lives in the cottage with the farmer?<br>''Fīlia cum agricolā in casā habitat.'' / ''Fīlia agricolae.'' / ''Fīlia agricolae in casā cum agricolā habitat.''
# ''Quid bona fīlia agricolae parat?''<br>What does the farmer's good daughter prepare?<br>''Fīlia bona cēnam parat.'' / ''Cēnam.'' / ''Fīlia bona agricolae cēnam parat.''
# ''Quem agricola laudat?''<br>Whom does the farmer praise?<br>''Agricola fīliam laudat.'' / ''Fīliam agricolae.'' / ''Fīliam laudat.''
# ''Vocatne fīlia agricolae gallīnās ad cēnam?''<br>Does the farmer's daughter call the hens to dinner?<br>''Vocat.''
# ''Cuius fīlia est grāta dominae?''<br>Whose daughter is pleasing to the lady?<br>''Fīlia agricolae est grāta dominae.'' / ''Fīlia agricolae.''
# ''Cui domina pecūniam dat?''<br>To whom does the lady give money?<br>''Domina bonae puellae parvae pecūniam dat.'' // ''Puellae bonae parvae.'' / ''Domina puellae pecūniam dat.''
=== § 69, p. 30 ===
Emphatic words are ''italicised''.
# ''Longae'' nōn sunt ''tuae'' viae.<br>Your ways are not long.
# Suntne tubae novae in ''meā'' casā? Nōn sunt.<br>Are not the new trumpets in my cottage? They are not.
# Quis lātā in silvā habitat? Diāna, lūnae clārae ''pulchra'' dea, ''lātā'' in silvā habitat.<br>Who lives in the wide forest? Diana, the beautiful goddess of the clear moon, lives in the wide forest.
# Nautae ''altās'' et ''lātās'' amant ''aquās''.<br>The sailors love deep and wide waters.
# Quid ancilla tua portat? Ancilla mea tubam novam portat.<br>What does your maidservant carry? My maidservant carries a new trumpet.
# Ubi sunt Lesbia et Iūlia? In ''tuā'' casā est Lesbia et Iūlia est in meā.<br>Where are Lesbia and Julia? Lesbia is in your cottage, and Julia is in mine.
# Estne Italia lāta terra? Longa est Italia, nōn lāta.<br>Is Italy a wide land? Italy is long, not wide.
# Cui Galba agricola fābulam novam nārrat? Fīliābus dominae clārae fābulam novam nārrat.<br>To whom does Galba, the farmer, tell the new story? He tells the new story to the daughters of the famous lady.
# Clāra est īnsula Sicilia.<br>The island of Sicily is famous.
# Quem laudat Lātōna? Lātōna laudat fīliam.<br>Whom does Latona praise? Latona praises her daughter.
=== § 77, p. 33 ===
Galba: Who, O Marcus, is the lieutenant with the spear and the trumpet?<br>
Marcus: The lieutenant, O Galba, is Sextus.<br>
G: Where does Sextus live?<br>
M: Sextus lives in the town with his daughters.<br>
G: Do the townspeople like Sextus?<br>
M: The townspeople like Sextus and praise him, because he fights with great firmness.<br>
G: Where, O Marcus, is your maidservant? Why is she not preparing dinner?<br>
M: My maidservant, O Galba, is giving water and grain to the lieutenant's horse.<br>
G: Why doesn't Sextus' slave care for his master's horse?<br>
M: Sextus and his slave are hastening to the town's wall. The townspeople are preparing for war.<br>
=== § 78, p. 34 ===
# Ubi fīliae Sextī habitant?<br>Where do the daughters of Sextus live?<br>Fīliae in oppidō habitant.<br>Cum Sextō in oppidō habitant.
# Quem oppidānī amant et laudant?<br>Whom do the townspeople love and praise?<br>Oppidānī Sextum amant et laudant.
# Quid ancilla equō lēgātī dat?<br>What does the maidservant give to the horse of the lieutenant?<br>Ancilla equō aquam et frūmentum dat.
# Cuius equum ancilla cūrat?<br>Whose horse does the maidservant care for?<br>Ancilla equum Sextī cūrat. / Ancilla cūrat equum lēgātī.
# Quis ad mūrum cum Sextō properat?<br>Who is hurrying to the wall with Sextus?<br>Servus cum Sextō ad mūrum properat.
# Quid oppidānī parant?<br>What are the townspeople preparing for?<br>Oppidānī bellum parant.
=== § 82, p. 35 ===
<ol type="I" start="1">
<li>
<ol>
<li>The fatherland of the good slave, the village of the good servants, O good people.</li>
<li>The people of the great town, in the large town, in the great towns.</li>
<li>With long spears, to long spears, to the wide walls.</li>
<li>O wicked lieutenant, friends of the bad lieutenant / of the friend of the bad lieutenant, dinners pleasing to the good lord.</li>
<li>Wheat of the small horses, O good lord, to the famous lieutenants.</li>
<li>The Rhine is in Germany, my fatherland.</li>
<li>Sextus, the lieutenant, carries a long spear.</li>
<li>The good townspeople give money to Sextus, the renowned lieutenant.</li>
<li>The bad slaves kill the good horse of Marcus, the master.</li>
<li>Galba, the farmer, and Julia, his good daughter, are labouring.</li>
<li>Marcus, the sailor, lives on the island of Sicily.</li>
</ol>
</li>
<li>
<ol>
<li>Quis, serve male, amīcus tuus est? Cūr Galbam dominum tuum nōn laudat?</li>
<li>Amīcus est ex vīcō Germāniae, patriae meae.</li>
<li>Amīcus populum Italiae nōn amat.</li>
<li>Quis equum bonum Galbae agricolae cūrat?</li>
<li>Ubi, Mārce, est Lesbia ancilla?</li>
<li>Ad casam parvam Iūliae filiae agricolae properat.</li>
</ol>
</li>
</ol>
=== § 86, p. 37 ===
<ol type="I" start="1">
<li>
<ol>
<li>In the village there is a good sailor.</li>
<li>Sextus is a friend of the good sailor.</li>
<li>Sextus gives a helmet to the good sailor.</li>
<li>The Roman people praise the good sailor.</li>
<li>Sextus carries the booty with the good sailor.</li>
<li>Where, good sailor, are the arms and offensive weapons of the Roman lieutenant?</li>
<li>The good sailors are hastening to war.</li>
<li>The reputation of the good sailors is clear.</li>
<li>Battles are pleasing to good sailors.</li>
<li>The townsmen are caring for the good sailors.</li>
<li>Why, good sailors, are the wicked farmers hastening to the Rhine?</ li>
<li>The bad farmers are fighting with the good sailors.</li>
</ol>
</li>
<li>
<ol>
<li>Agricola malus cum praedā ad vīcum properat.</li>
<li>Fāma agricolae malī bona nōn est.</li>
<li>Cūr fīlia Galbae agricolae malō arma et tēla dat?</li>
<li>Lesbia nautam bonum ad cēnam vocat.</li>
<li>Cūr Lesbia cum nautā bonō ā/ex casā properat?</li>
<li>Ubi, Sexte, est galea mea?</li>
<li>Nautae bonī ad pūgnam dūram properant.</li>
<li>Equī agricolārum malōrum parvī sunt.</li>
<li>Populus Rōmānus nautīs bonīs pecūniam dat.</li>
<li>Amīcī nautās bonōs cūrant.</li>
<li>Cuius amīcī agricolīs malīs pūgnant?</li>
</ol>
</li>
</ol>
=== § 90, p. 38 ===
<ol type="I" start="1">
<li>
<ol>
<li>The grain of the good land, of the bad sword, of the long war.</li>
<li>Great firmness, great garrisons, o famous Vergil.</li>
<li>O bad servant, o famous town, o bad son, (o) bad sons, of the bad son.</li>
<li>Of the long river, the long rivers, of the long rivers, the fame of the great garrison.</li>
<li>With small swords, with the famous goddesses, to the famous sailors. </li>
<li>Of the many battles, of great spoils / to great spoils, to the hard battles.</li>
</ol>
</li>
<li>
Germany, the fatherland of the Germans, is a famous land. In Germany there are many rivers. The great and wide Rhine is a river of Germany. In the wide forests of Germany there are many wild beasts. Many Germans live in great towns and in small villages and many are good farmers. The wars of the Germans are great and famous. The people of Germany love war and battles, and they often fight with their neighbours. The river Rhine is near to many famous towns.
</li>
</ol>
=== § 95, p. 40 ===
Great is the fame of Italy, the fatherland of the Romans, and famous is Rome
mistress of the world. Who does not praise the Tiber, the Roman river, and
the beautiful fields neighbouring the river? Who does not praise the high
walls, the long and hard wars, and the famous victories? Beautiful is the
land of Italy. The good fields give farmers great rewards, and the farmers'
horses carry plenty of grain / an abundance of wheat to the towns and
villages. In the fields of the Roman people labour many slaves. The roads of
Italia are long and wide. Neighbouring Italy is the island of Sicily.
=== § 96, p. 41 ===
Cornelius: Where, O Marcus, is your son? Is he in the beautiful land of Italy?<br>
Marcus: He is not in Italy, O Cornelius. He is hastening to the river Rhine with the Roman troops because there is a rumour of a new war with the Germans. The free people of Germany do not love the Romans.<br>
C: Is your son a lieutenant of the Roman troops?<br>
M: A lieutenant he is not, but he is among the legionary soldiers.<br>
C: What (kind of) arms does he bear / carry?<br>
M: He bears a large shield and a hard coat of mail and a beautiful helmet.<br>
C: What (kind of) weapons of offense does he bear / carry?<br>
M: He bears a sword and a long spear.<br>
C: Does the lieutenant love your son?<br>
M: He does, and he often gives my son beautiful rewards and many spoils.<br>
C: Where is the land of the Germans?<br>
M: The land of the Germans, O Cornelius, is beside the Rhine, the great and deep river.<br>
=== § 99, p. 43 ===
<ol type="I" start="1">
<li>
<ol>
<li>Marcus accounces his plan to his friend Sextus.</li>
<li>There is plenty of grain in our fields.</li>
<li>My friends are praising the good dinner of your maidservant.</li>
<li>Your coat of mail, O my son, is hard.</li>
<li>Our shields and spears, my friend, are in the Roman camp.</li>
<li>Are not the men of your fatherland free? Yes, they are.<br>NB: ''liberi'' could also mean "children", but then the sentence wouldn't make sense.</li>
<li>Where, O Cornelius, is your beautiful helmet?</li>
<li>My helmet, O Sextus, is in my cottage.</li>
<li>The long spear is yours, but the sword is mine.</li>
<li>Julia loves her beautiful hens and the hens love their mistress.</li>
<li>Our camp is your camp.</li>
<li>There is plenty of booty / an abundance of spoils in your camp.</li>
<li>Your friends often give food and money to the wretched and sick.</li>
</ol>
</li>
<li>
<ol>
<li>Magister noster dīligentiam Mārcī laudat.</li>
<li>Fīlius meus Sextus praedam suam in castra Rōmāna portat.</li>
<li>Puellae tuae bonae aegrīs et miserīs auxilium dant.</li>
<li>Sunt pūgnae crēbrae / proelia crēbra in vīcīs nostrīs.</li>
<li>Ubi, mī fīlī, est cibus lēgātī?</li>
<li>Castra sunt mea, sed tēla sunt tua.</li>
</ol>
</li>
</ol>
=== § 107, p. 45 ===
<ol type="I" start="1">
<li>
The Romans, the famous people of Italy, are preparing for war. Out of
their fields, villages, and towns the strong men are hastening to arms
with great zeal. Already the lieutenants with legionary soldiers are
hastening out of Italy to the Rhine, the deep and wide river of Germany,
and servants carry food and wheat with horses and carts to the Roman
camp. The germans are weak because of lack of good weapons, but the
Romans, armed with helmets, coats of mail, shields, swords, and spears,
are strong (or: ''but the armed Romans are strong because of their helmets, coats of mail, shields, swords, and spears'').
</li>
<li>
<ol>
<li>Agricolae validī Italiae māgnā cum dīligentiā in agrīs labōrant.</li>
<li>Sextus lēgātus et fīlius Mārcus cum Germānīs pūgnant.</li>
<li>Legiōnāriī Rōmānī pīlīs longīs armatī sunt.</li>
<li>Ubi, Sexte, est Lesbia ancilla tua?</li>
<li>Lesbia est cum amīcīs meīs in casā Galbae.</li>
<li>Multī sunt aegrī aquā malā et inopiā cibī.</li>
<li>Germaānī cum fīliīs fīliabusque (cum) equīs et carrīs properant / mātūrant.</li>
</ol>
</li>
</ol>
=== § 111, p. 47 ===
<ol type="I" start="1">
<li>
<ol>
<li>Which cottage is Julia in? Julia is in neither cottage.</li>
<li>The teacher gives a reward to no bad boy.</li>
<li>One boy is a sailor, the other one is a farmer.</li>
<li>Some men love the water, others love the land.</li>
<li>Galba works alone with zeal.</li>
<li>Is there any wagon in my field?</li>
<li>Lesbia is the maid of one of the lords, Tullia is the maid of another lord.</li>
<li>Lesbia prepares dinner alone.</li>
<li>The dinner of no other maid is good.</li>
<li>Lesbia gives dinner to no other man.</li>
</ol>
</li>
<li>
<ol>
<li>Virī tōtīus Germāniae bellum parant.</li>
<li>Alia oppida sunt magna, alia parva.</li>
<li>Alius puer gallīnās amat, alius equōs.</li>
<li>Iam praeda ūnīus oppidī est in castrō nostrō.</li>
<li>Tōtus vīcus noster inōpiā īnfīrmus est.</li>
<li>Populus in/ad alterum oppidum iam properat/mātūrat.</li>
<li>Apud Rōmānōs inopia frūmentī nōn est. / Apud Rōmānōs nulla est inopia frūmentī.</li>
</ol>
</li>
</ol>
=== § 117, p. 49 ===
# Eam, eum, id, eōs, eās, ea laudat.
# Is carrus, ea fāma, iī magistrī, eae fēminae, id domicilium, ea domicilia.
# Id praesidium validum, apud eās fēminās īnfīrmās et aegrās, ea inopia cōnstantiae, ea cōnsilia crēbra.
# Altera fēmina suās gallīnās vocat.
# Alia fēmina eius gallīnās vocat.
# Gallus arma sua laudat.
# Gallus arma eius laudat.
# Is agricola agrōs eōrum saepe arat.
# Iī servī miserī dominum suum dēsīderant.
# Iī servī miserī dominus eōrum dēsīderant.
# Virī līberī patriam suam amat.
# Vīcōs et oppida eius amant.
=== § 118, p. 50 ===
Marcus: Who is the man, Cornelius, with the little boy? Is he Roman and free?<br>
Cornelius: He isn't a Roman, Marcus. That man is a slave and his dwelling place is in the forests of Gaul.<br>
M: Is the boy a son of this slave or another?<br>
C: The boy is the son of neither. He is the son of the lieutenant Sextus.<br>
M: Where does the boy hurry to with that slave?<br>
C: He is hurrying to Sextus' wide fields with the slave. All the grain is already ripe and a large number of slaves are working in the fields of Italy.<br>
M: Are the Gauls farmers and do they plough the fields of their fatherland?<br>
C: They aren't farmers. The Gauls love war, not agriculture. Among them the men fight and the women, with the help of the children, plough fields and prepare food.<br>
M: Our teacher often tells us boys and girls pleasing stories of the Gauls, and he often praises them.<br>
C: Bad is their fate and the wretched slaves often long for their fatherland with many tears.<br>
=== § 124, p. 53 ===
Sextus: Where are you, Marcus? Where is Quintus? Where are you, friends?<br>
Marcus: I am with Quintus in the forest, Sextus. We are not alone; there are many other boys in the forest.<br>
S: Now you are happy, but recently you weren't happy. Why were you wretched?<br>
M: I was wretched because my friends were in another village and I was alone. Now I am among my companions. Now we are and will be happy.<br>
S: Have you been to school today?<br>
M: We weren't in school today, because the teacher was ill.<br>
S: Will you be in school soon.<br>
M: My friends will be there, but I will not be.<br>
S: Why won't you be there? The teacher, often angry, doesn't praise your lack of zeal and industry.<br>
M: I was recently ill and now I am weak.<br>
=== § 125, p. 53 ===
# Es, estis, erātis, eris, eritis.
# Sum, eram, erō.
# Est, erat, erit.
# Sumus, erāmus, erimus.
# Sunt, erant, erunt.
# Cūr nōn erās in lūdō hodiē? Eram aeger/aegra.
# Nūper erat nauta, nucn est agricola, mox erit magister.
# Hodiē sum laetus/laeta, sed nūper eram miser/misera.
# Magistrī erant laetī dīligentiā puerōrum.
=== § 131, p. 56 ===
<ol type="I" start="1">
<li>
<ol>
<li>we call (act.ind.praes.1st.pl), you hasten (act.ind.praes.2nd.pl.), they order (act.ind.praes.3rd.pl.)</li>
<li>you move (act.ind.praes.2nd.pl.), you praise (act.ind.praes.2nd.sg.), you see (act.ind.praes.2nd.sg.)</li>
<li>you destroy (act.ind.praes.2nd.pl.), you have (act.ind.praes.2nd.pl.), they give (act.ind.praes.3rd.pl.)</li>
<li>you hasten (act.ind.praes.3rd.sg.), he longs for (act.ind.praes.3rd.sg.), we see (act.ind.praes.1st.pl.)</li>
<li>he orders (act.ind.praes.3rd.sg.), they move (act.ind.praes.3rd.pl.), he kills (act.ind.praes.3rd.sg.)</li>
<li>we tell (act.ind.praes.1st.pl.), you move (act.ind.praes.2nd.sg.), they see (act.ind.praes.3rd.pl.)</li>
<li>you labour (act.ind.praes.2nd.pl.), they hasten (act.ind.praes.3rd.pl.), you carry (act.ind.praes.3rd.sg.), they prepare (act.ind.praes.3rd.pl.)</li>
<li>he destroys (act.ind.praes.3rd.sg.), you have (act.ind.praes.2nd.pl.), we order (act.ind.praes.1st.pl.), you give (act.ind.praes.2nd.sg.)</li>
</ol>
</li>
<li>
<ol>
<li>arāmus, arāmus, arāmus</li>
<li>cūrant, cūrant, cūrant</li>
<li>dās, habēs, habēs</li>
<li>dēlēmus, dēsīderō, habitant</li>
<li>vocat, vident, nārrāmus</li>
<li>pūgnāmus, iubēmus, movet, parat</li>
<li>labōrant, necāmus, nūntiās/nūntiātis</li>
</ol>
</li>
</ol>
=== § 135, p. 57 ===
<ol type="I" start="1">
<li>
<ol>
<li>we were seeing, he was longing for, you were hastening</li>
<li>they were giving, you were calling, we were destroying</li>
<li>they do fight, you were praising, you were moving</li>
<li>they were ordering, you were hastening, we were carrying</li>
<li>you were giving, they were telling, you were labouring</li>
<li>they were seeing, you were moving, we were announcing</li>
<li>he was killing, I was moving, he was having, you were preparing</li>
</ol>
</li>
<li>
<ol>
<li>habēbās/habēbātis, necābāmus, labōrābant</li>
<li>movēbat, iubēbāmus, pūgnābāmus</li>
<li>nārrābāmus, vidēbant, vocābant</li>
<li>habitābant, dēsīderābam, dēlēbāmus</li>
<li>dabās/dabātis, movēbās/movēbātis, nūntiābās/nūntiābātis</li>
<li>cūrābant, arābat, laudābāmus</li>
</ol>
</li>
</ol>
=== § 136, p. 57 ===
Niobe, queen of the Thebans, was a beautiful woman yet proud. She was proud not only because of her beauty
and the power of (her) husband but also due to her great number of children. For she had seven sons and
seven daughters. But this pride was the cause of great sadness to the queen and the cause of hard/cruel
punishment to her children.
=== § 139, p. 58 ===
<ol type="I" start="1">
<li>
<ol>
<li>you will move, you will praise, I shall plough</li>
<li>you will destroy, you will call, they will give</li>
<li>you will hasten, he will long for, we shall see</li>
<li>he will have, they will move, he will kill</li>
<li>we will tell, you will advice, they will see</li>
<li>you will work, they will care for, you will give</li>
<li>we will live, you will hasten, they will order, he will prepare</li>
<li>I shall announce, we shall carry, I shall order</li>
</ol>
</li>
<li>
<ol>
<li>nūntiābimus, vidēbimus, mātūrābō/properābō</li>
<li>portābo, arābit, cūrābunt</li>
<li>nūntiābis/nūntiābitis, movēbis/movēbitis, dabis/dabitis</li>
<li>pūgnābimus, dēlēbimus, dēsīderābō</li>
<li>vocābit, vidēbunt, nārrābitis</li>
<li>habitābunt, iubēbimus, laudābit</li>
<li>labōrābunt, necābimus, habēbis/habēbitis, dēlēbit</li>
</ol>
</li>
</ol>
=== § 140, p. 59 ===
Apollo and Diana were children of Latona. The Thebans prepared frequent sacrifices to/for them. The townspeople
loved Latona and her children. This was troublesome to the proud queen. "Why?" said the queen, "are you preparing
sacrifices for Latona and her children? Latona has two children; ''I'' have fourteen. Where are ''my'' sacrifices?"
Latona, angry because of these words, calls her children. Apollo and Diana fly to her, and destroy the wretched
children of the proud queen with their arrows. Niobe, recently happy, now wretched, sits among her slain children
and longs for them with perpetual tears.
=== § 145, p. 60 ===
<ol type="I" start="1">
<li>
<ol>
<li>The Romans have land fit for agriculture.</li>
<li>The Gauls were hostile to the Roman troops.</li>
<li>To whom was the goddess Latona not friendly?</li>
<li>The goddess Latona was not friendly to the proud queen.</li>
<li>Our food, Marcus, will be pleasing to the armed men.</li>
<li>What was annoying to the people of Italy?</li>
<li>The long wars with the Gauls were annoying to the people of Italy.</li>
<li>The fields of the Germans were neighbouring to the Rhine river.</li>
<li>The Romans moved the camp to the forest close to the town.</li>
<li>Not only the beauty of the queen but also her pride was great.</li>
<li>Soon the beautiful queen will be sick with sorrow.</li>
<li>Why was Niobe, the queen of the Thebans, happy? Niobe was happy because of her many sons and daughters.</li>
</ol>
</li>
<li>
<ol>
<li>Sacra populī superbae rēgīnae molesta erunt.</li>
<li>Sacra nōn sōlum Lātōnae sed etiam Diānae grāta erant.</li>
<li>Diāna inimīcos Lātōnae dēlēbit.</li>
<li>Poena rēgīnae superbae deae Diānae grāta erat.</li>
<li>Rōmānī cōpiās ad māgnum agrum castrīs idōneum movēbunt.</li>
<li>Aliī sociī erant Rōmānīs amīcī, aliī Gallīs.</li>
</ol>
</li>
</ol>
=== § 146, p. 61 ===
Among the ancient ladies, Cornelia, daughter of Africanus, was especially famous. Her sons were Tiberius
Gracchus and Gaius Gracchus. These boys lived with Cornelia in the town of Rome, the most famous town of
Italy. There Cornelia took care of them and there she taught them with great zeal. Cornelia was a good
woman, and she loved good discipline most of all.
=== § 149, p. 62 ===
<ol type="I" start="1">
<li>
<ol>
<li>Who is driving? Why does he come? Whom does he send? Whom are you leading?</li>
<li>What do they send? To whom do they come? Whose camp do they fortify?</li>
<li>Whom do they drive? We are coming. What does the boy find?</li>
<li>Whom do we send? Whose horse are you (pl.) leading? What do they say?</li>
<li>We are fortifying, you (pl.) are coming, he says.</li>
<li>We are driving, you (pl.) find, you (sg.) are fortifying.</li>
<li>You (sg.) find, you (pl.) lead, you (sg.) are saying.</li>
<li>You (pl.) drive, we hear, we rule.</li>
</ol>
</li>
<li>
<ol>
<li>Quid reperiunt? Quem audiunt? Cūr venit?</li>
<li>Cuius castra mūnīmus? Cui dīcit? Quid dīcimus?</li>
<li>Agō, dūcis/dūcitis, audiunt.</li>
<li>Mittis/mittitis, dīcit, mūnīs/mūnītis.</li>
<li>Veniō, reperīmus, mittunt.</li>
<li>Dūcunt, agis/agitis, mūnit.</li>
<li>Dūcitis, reperītis, regitis.</li>
</ol>
</li>
</ol>
=== § 150, p. 62 ===
Next to the dwelling place of Cornelia was the abode of the beautiful Campana. Campana was proud
not only because of her beauty but most of all because of her jewels. She was always praising them.
“Do you have any jewels, Cornelia?” she says. “Where are your jewels?” Then Cornelia calls her sons
Tiberius and Gaius. “My boys”, she says, “are my jewels. For good children always are especially
bright jewels for a good woman.”
=== § 152, p. 64 ===
<ol type="I" start="1">
<li>
<ol>
<li>He was driving, he was coming, he was sending, they were leading.</li>
<li>They were driving, they were sending, you were leading, they were fortifying.</li>
<li>We were sending, you were leading, they were saying.</li>
<li>We were fortifying, you were coming, you were saying.</li>
<li>You were sending, we were coming, he was finding.</li>
<li>You were finding, you were coming, you were hearing.</li>
<li>We were driving, you were finding, he was fortifying.</li>
<li>You were driving, I was saying, I was fortifying.</li>
</ol>
</li>
<li>
<ol>
<li>Dūcēbant, agēbās,/ agēbātis, mūniēbat.</li>
<li>Mittēbant, reperiēbāmus, veniēbam.</li>
<li>Mittēbās / mittēbātis, mūniēbās / mūniēbātis, dīcēbat.</li>
<li>Audiēbant, dūcēbās / dūcēbātis, agēbam.</li>
<li>Dīcēbāmus, mittēbat, mūniēbam.</li>
<li>Veniēbant, audiēbat, reperiēbam.</li>
<li>Regēbās / regēbātis, veniēbāmus, regēbant.</li>
</ol>
</li>
</ol>
=== § 155, p. 65 ===
# Do you believe the words of the allies? Many don’t believe their words.
# My neighbours do not favour your advice, because they are eager for war.
# Tiberius and Gaius did not resist the hard discipline and they obeyed Cornelia.
# The goddess was hostile to the seven daughters of the queen.
# A hard punishment and perpetual sorrow will not persuade the queen.
# Recently she was resisting and now she resists the power of Latona.
# Soon the arrows will fly and injure the wretched children.
=== § 158, p. 66 ===
<ol type="I" start="1">
<li>
<ol>
<li>He will say, you will lead, we shall fortify.</li>
<li>They will say, you will say, we shall send.</li>
<li>They will fortify, they will come, they will send, they will drive.</li>
<li>He will lead, you will send, he will come, he will drive.</li>
<li>He will fortify, you will find, we will drive.</li>
<li>I shall send, we shall come, they will rule.</li>
<li>You will hear, you will come, you will find.</li>
<li>He will find, I shall drive, we shall lead, he will send.</li>
<li>You will see, I shall sit, we shall call.</li>
</ol>
</li>
<li>
<ol>
<li>Reperiam, audiet, venient.</li>
<li>Mūniam, mittet, dīcēmus.</li>
<li>Agam, dūcēs / dūcētis, audient.</li>
<li>Mittēs / mittētis, mūniēs / mūniētis, dīcet.</li>
<li>Veniam, reperiēmus, mittent.</li>
<li>Quis fābulae crēdet? Ego fābulae crēdam.</li>
<li>Cuius amīcīs favētis? Amīcīs nostrīs favēmus.</li>
<li>Quis armīs nostrīs resistet? Sextus armīs vestrīs resistet.</li>
<li>Quis eī persuādēbit? Iī eī persuādēbunt / Illī eī persuādēbunt.</li>
<li>Cūr equō meō nocēbās? Nōn nocēbam equō tuō.</li>
<li>Cui servus bonus pāret? Servus bonus magistrō (suō) pāret.</li>
<li>(Virī) nostrī aliī pūgnae studēbant / Nostrī novō proeliō studēbant.</li>
</ol>
</li>
</ol>
NB: Nostrī and vestrī can be used as substantives for “our men” and “your men” respectively.
=== § 161, p. 68 ===
venī, venīte<br>
dūce, dūcite<br>
vocā, vocāte<br>
docē, docēte<br>
laudā, laudāte<br>
dīce, dīcite<br>
sedē, sedēte<br>
age, agite<br>
fac, facite<br>
mūnī, mūnīte<br>
mitte, mittite<br>
rape, rapite<br>
=== § 162, p. 68 ===
<ol type="I" start="1">
<li>
<ol>
<li>They will flee, they do, he threw.</li>
<li>Destroy, announce (pl.), they flee.</li>
<li>Come (pl.), say, you will make.</li>
<li>Lead (pl.), I shall throw, they fled.</li>
<li>Do, we threw, we flee, seize (pl.).</li>
<li>Sit (pl.), find, teach (pl.).</li>
<li>We shall flee, they will throw, you will seize.</li>
<li>They will find, you seized (pl.), they do harm.</li>
<li>Favour (pl.), resist, you will obey (pl.).</li>
<li>Fly to many lands and give help.</li>
<li>I will take my weapons and I will destroy many wild beasts.</li>
<li>Who will believe your story?</li>
<li>Be good, boys, and hear the pleasing words of the teacher.</li>
</ol>
</li>
<li>
<ol>
<li>Dea arma rapiet et tēla iaciet.</li>
<li>Tēlīs multās ferās dēlēbit.</li>
<li>Auxilium dabit īnfīrmīs.</li>
<li>Ad multās terrās volābit et ferāe fugient.</li>
<li>Nārrate, Rōmānī, līberīs fābulam clāram.</li>
</ol>
</li>
</ol>
=== § 167, p. 70 ===
<ol type="I" start="1">
<li>
<ol>
<li>you are praised, you praise, it is given, he gives.</li>
<li>It will be given, he will give, you are seen, you see.</li>
<li>He called, he was called, you will destroy, you will be destroyed.</li>
<li>He was prepared, he prepared, you care for, you are cared for.</li>
<li>They were carried, they carried, we will be seen, we will see.</li>
<li>You are ordered, you order, you were praised, you praised.</li>
<li>You will be moved, you will move, they were given, they were giving.</li>
<li>They are destroyed, they destroy, we were prepared, we prepared.</li>
</ol>
</li>
<li>
<ol>
<li>Parāmus, parāmur, vocābor, vocābō, portābās / portābātis, portābāris / portābāre / portabāminī.</li>
<li>Video, videor, nūntiābātur, nūntiābat, iubēbunt, iubēbuntur.</li>
<li>Necāberis / necābiminī, necābis / necābitis, movēs / movētis, movēris / movēminī, laudāmus, laudāmur.</li>
<li>Vocor, vocō, habēbis / habēbitis, cūrāris / curāminī.</li>
<li>Videntur, vident, docēbāmus, docēbāmur, movēbunt, movēbuntur.</li>
</ol>
</li>
</ol>
=== § 168, p. 71 ===
Perseus was the son of Juppiter, the greatest of the gods. The poets tell many stories about him.
The gods favour him, they give him magical armour and wings. Armed with these weapons and supported
by the wings he flew to many lands, destroyed savage monsters and gave aid to the wretched and the
weak.
Ethiopia is a land of Africa. Cepheus rules this land. Neptunus, the greatest god of the waters,
was angry with him and he sends a savage monster to Ethiopia. There the monster not only harmed
the wide and beautiful fields of Ethiopia, but also destroyed the dwellings of the farmers and
killed many men, women and children. The people fled from the fields and fortified the towns with
strong walls. Then Cepheus, moved by great sadness, hurries to Juppiter’s oracle and speaks as
follows: “My friends are killed, my fields are being devastated. Hear my words, Juppiter. Give
help to the wretched. Drive the savage monster out of my fatherland.”
=== § 170, p. 72 ===
<ol type="I" start="1">
<li>
<ol>
<li>He drove, he was driven, he sent, he was sent, he led.</li>
<li>They drive, they are driven, they are sent, they send, they fortify.</li>
<li>I am sent, I will be sent, I shall send, you will be led, you are led.</li>
<li>We will be said, we say, we shall say, we are said, you (pl.) were fortified.</li>
<li>He is led, you (pl.) are led, we are found, I shall be found, he is driven.</li>
<li>We drove, we were driven, you are found, you will be found.</li>
<li>You are fortified, I was coming, I was led, it will be said.</li>
<li>You are sent, you sent, you will be sent, you are sent, you were driven.</li>
<li>It is said, he says, they are fortified, they will find, they will be heard.</li>
</ol>
</li>
<li>
<ol>
<li>Agēbar, agēbam, dūcēbāmus, dūcēbāmur, dīcit, dīcitur.</li>
<li>Mittam, mittar, reperiēs, reperiēris, dūcunt, dūcuntur.</li>
<li>Reperior, dūcimur, aguntur, dūcēbāris / dūcēbāminī.</li>
<li>Agēmus, agēmur, dūcit, dūcitur, venient, mūnientur.</li>
<li>Regēbant, regēbantur, mittēs / mittētis, mittēris / mittēminī, mitteris / mittiminī.</li>
<li>Dūcēbatur, veniet, dīceris / dīciminī.</li>
</ol>
</li>
</ol>
=== § 171, p. 73 ===
Then the oracle answers as follows: “Bad is your fortune. Neptunus, the great god of the waters,
(who is) hostile to the land of Ethiopia, sends these punishments. But prepare a suitable offering
for the angry god and the savage monster will be driven from your fatherland. Your daughter
Andromeda is pleasing to the monster. Give her to the monster. Save your dear fatherland and the
life of your people.” Andromeda, however, was a beautiful girl. Cepheus loved her very much.
=== § 174, p. 74 ===
docēre, docērī<br>
sedēre, sedērī<br>
volāre, volāri<br>
cūrāre, cūrārī<br>
mittere, mittī<br>
dūcere, dūcī<br>
mūnīre, mūnīrī<br>
reperīre, reperīrī<br>
iacere, iacī<br>
rapere, rapī
=== § 175, p. 74 ===
docē, docēte, docēre, docēminī<br>
sedē, sedēte, sedēre, sedēminī<br>
volā, volāte, volāre, volāminī<br>
cūrā, cūrāte, cūrāre, cūrāminī<br>
mitte, mittite, mittere, mittiminī<br>
dūce, dūcite, dūcere, dūciminī<br>
mūnī, mūnīte, mūnīre, mūnīminī<br>
reperī, reperīte, reperīre, reperīminī<br>
iace, iacite, iacere, iaciminī<br>
rape, rapite, rapere, rapiminī
=== § 176, p. 75 ===
<ol type="I" start="1">
<li>
<ol>
<li>Then Perseus with his wings will fly to many lands.</li>
<li>The savage monster hastens through the waters and will soon devastate our fields.</li>
<li>If, however, Cepheus will hasten to the oracle, the oracle will answer as follows.</li>
<li>Who will be conquered by the weapons of Perseus? Many monsters will be conquered by his weapons.</li>
<li>With great cares and many tears the farmers are driven from their dear homes.</li>
<li>Many places will be laid waste and many towns will be destroyed.</li>
<li>The monster is strong, yet it will be overcome.</li>
<li>Will you always believe the words of the oracle? I will not always believe them.</li>
<li>Will Cepheus obey the oracle? The words of the oracle will persuade them.</li>
<li>If we will not flee, the town will be taken and the townsmen will be killed.</li>
<li>Call the boys and tell the famous story about the savage monster.</li>
</ol>
</li>
<li>
<ol>
<li>Volā, cūrārī, mittiminī, dūc.</li>
<li>Dūcere, dūcī, rapiminī, mūnī.</li>
<li>Iacī, volāre, mitte, reperīrī.</li>
<li>Mittī, dūciminī, iacere, capī.</li>
<li>Reperī, audīte, regiminī, mūnīrī.</li>
</ol>
</li>
</ol>
=== § 177, p. 76 ===
{| class="wikitable"
|-
| colspan=6 | '''Indicative'''
|-
| rapiō || rapior || mūnīs || mūnīris || reperit || reperītur
|-
| rapiēbam || rapiēbar || mūniēbās || mūniēbāris || reperiēbat || reperiēbātur
|-
| rapiam || rapiar || mūniēs || mūniēris || reperiēt || reperiētur
|-
| colspan=6 | '''Imperative'''
|-
| rape || rapere || mūnī || mūnīre || reperī || reperīrī
|-
| colspan=6 | '''Infinitive'''
|-
| rapere || rapī || mūnīre || mūnīrī || reperīre || reperīrī
|}
{| class="wikitable"
|-
| colspan=6 | '''Indicative'''
|-
| docēmus || docēmur || vidētis || vidēminī || dīcunt || dīcuntur
|-
| docēbāmus || docēbamur || vidēbātis || vidēbāminī || dīcēbant || dīcēbantur
|-
| docēbimus || docēbimur || vidēbitis || vidēbiminī || dīcent || dīcentur
|-
| colspan=6 | '''Imperative'''
|-
| docēte || docēminī || vidēte || vidēminī || dīcite || diciminī
|-
| colspan=6 | '''Infinitive'''
|-
| docēre || docērī || vidēre || vidērī || dīcere || dīcī
|}
{| class="wikitable"
|-
| colspan=6 | '''Indicative'''
|-
| agit || agitur || laudant || laudantur || portat || portātur
|-
| agebāt || agebatur || laudābant || laudābantur || portabat || portabatur
|-
| aget || agētur || laudābunt || laudābuntur || portābit || portābitur
|-
| colspan=6 | '''Imperative'''
|-
| age || agere || laudāte || laudāmini || portā || portāre
|-
| colspan=6 | '''Infinitive'''
|-
| agere || agī || laudāre || laudārī || portāre || portārī
|}
=== § 182, p. 78 ===
<ol type="I" start="1">
<li>
<ol>
<li>The men, (who are) tired because of lack of food, will leave from that place.</li>
<li>The Germans approached the Roman camp, nevertheless the lieutenant kept the troops from the battle.</li>
<li>Many towns of the Gauls will be taken by the Romans.</li>
<li>Then the Romans will kill all the people of these towns with swords and spears.</li>
<li>The townsmen will resist the Romans, but they will flee, tired from the long battle.</li>
<li>Many fled out of Gaul and lived in the villages of the Germans.</li>
<li>The wretched sailors are wounded by savage enemies and are in need of food.</li>
<li>Leave and give the men grain and plenty of wine.</li>
<li>Our troops were kept from the battle by the lieutenant Sextus.</li>
<li>That town was far away from the Roman province.</li>
</ol>
</li>
<li>
<ol>
<li>Nautae dēfessī locō deae Diānae cārō appropinquābant. 2.</li>
<li>Cibō et vīnō egēbant. Sine cibō, sine vinō erant.</li>
<li>Tum Galba et septem aliī (virī) ā Sextō ad īnsulam antīquam mittuntur.<br>
Tum Galba semtemque aliī (virī) ā Sextō ad īnsulam antīquam mittuntur.</li>
<li>Iam ā terrā nōn longē absunt, et altō in locō (virōs) armātōs vident.</li>
<li>Pīlīs sagittīsque ā virīs ab terrā prohibentur. </li>
<li>Virī māgnō (cum) studiō tēla dē locō altō iaciēbant.</li>
</ol>
</li>
</ol>
=== § 188, p. 80 ===
Marcus: Where have you been, Titus and Quintus?
Titus: I've been to my school and Quintus has been to his school. We've been good boys. Has Sextus been in the village today?
M: He has. He was hurrying through the fields near the river recently. There he and Cornelius have a boat.
T: A boat, you say? Tell someone else that story!
M: Yes, truly, a beautiful new boat.
Quintus: With whose money do Sextus and Cornelius prepare that boat? Who gives them the money?
M: The friends of Cornelius have much gold and the boy doesn't lack money.
T: Where will the boys sal to? Will they sail far from land?
M: Their plans are doubtful. But today, I believe, if the wind is (will be) suitable, they will sail to the biggest island. They have been there before already. Then, however, the wind was treacherous and the boys were in great danger.
Q: Water moved by the wind is always hostile to sailors, and often the treacherous wind seizes the boats and drives and destroys them. Those boys, if they won’t be very careful, will be overcome by the angry water and strong wind and thus be killed.
=== § 189, p. 81 ===
# Ubi puerī anteā fuerant? In lūdō fuerant.
# Ubi Sextus fuerat? In agrō proximō fluviō fuerat.
# Quis hodiē cum Sextō fuit? Cornēlius cum eō fuit.
# Quis ita dīcit? Marcus.
# Sī ventus fuit idōneus, puerī in nāvigiō fuērunt.
# Mox cum puerīs nāvigābimus.
# Nōn erit perīculum, sī attentī fuerimus.
=== § 193, p. 83 ===
Cepheus, moved very much by the adverse fortune, has left and has told the words of the oracle to
the people of Ethiopia with many tears. The fate of Andromeda, a beautiful girl, was lamented by
all the people, yet there was no help. Then Cepheus, filled with sadness (with a heart full of
sadness) led his dear daughter out of the towngate to the water and bound her arms to hard rocks.
Then the friends of the poor girl went far away and waited a long time for the savage monster.
Then Perseus, supported by wings, flew by chance over Ethiopia. He saw the people, Andromeda,
and the tears and he went down to earth exceedingly astounded. Then Cepheus told him about all
his worries and spoke as follows: I will obey the words of the oracle, and give my daughter for
my fatherland; but if you will kill that monster and save Andromeda, I will give her to you.
=== § 194, p. 84 ===
dederam, dederās, dederat, dederāmus, dederātis, dederant<br>
portāverō, portāveris, portāverit, portāverimus, portāveritis, portāverint<br>
dēlēveram, dēlēverās, dēlēverat, dēlēverāmus, dēlēverātis, dēlēverant<br>
mōverō, mōveris, mōverit, mōverimus, mōveritis, mōverint<br>
habueram, habuerās, habuerat, habuerāmus, habuerātis, habuerant<br>
dīxerō, dīxeris, dīxerit, dīxerimus, dīxeritis, dīxerint<br>
discesseram, discesserās, discesserat, discesserāmus, discesserātis, discesserant<br>
fēcerō, fēceris, fēcerit, fēcerimus, fēceritis, fēcerint<br>
vēneram, vēnerās, vēnerat, vēnerāmus, vēnerātis, vēnerant<br>
mūnīverō, mūnīveris, mūnīverit, mūnīverimus, mūnīveritis, mūnīverint
=== § 195, p. 85 ===
dedisse<br>
portāvisse<br>
dēlēvisse<br>
mōvisse<br>
habuisse<br>
dīxisse<br>
discessisse<br>
fēcisse<br>
vēnisse<br>
mūnīvisse
=== § 196, p. 85 ===
<ol type="I" start="1">
<li>
<ol>
<li>You have had, they have moved, they had sent.</li>
<li>He has seen, you will have said, to have led.</li>
<li>You have sent, they have obeyed, we had left.</li>
<li>He has strengthened, I had given, I will have sent.</li>
<li>We will have had, I have destroyed, he has obeyed, to have been.</li>
<li>You had given, you will have strengthened, you had come, to have sent.</li>
<li>You had come, to have made, you had given, you will have carried.</li>
<li>Who had the words of the oracle moved? The words of the oracle had moved the people.</li>
<li>To whom will Cepheus have told the words of the oracle? Cepheus will have told the words of the oracle to Perseus.</li>
<li>Her friends shall have gone away from Andromeda.</li>
<li>The fierce monster had destroyed many dwelling places.</li>
<li>Where have you seen the monster? We have seen it in the water.</li>
<li>What will the monster do? The monster will kill Andromeda.</li>
</ol>
</li>
<li>
<ol>
<li>Pāruērunt, dēlēvimus, habuerō.</li>
<li>Mīserimus, vēneram, mūnīvērunt.</li>
<li>Discesseram, pāruit, mīsistī / mīsistis.</li>
<li>Dēlēvisse, vīdisse, dederit, portāvērunt.</li>
<li>Dēlēverat, mōvit, habuistī / habuistis.</li>
<li>Dedī, mōverās / mōverātis, dīxerāmus.</li>
<li>Fēceris / fēceritis, dūxerint, dedisse.</li>
<li>Quis mōnstrum vīderat? Andromeda id vīderat.</li>
<li>Cūr virī ex oppidīs discesserant? Discesserant quia mōnstrum vēnerat.</li>
<li>Pāruitne Cēpheus ōrāculō? Pāruit.</li>
</ol>
</li>
</ol>
=== § 198, p. 86 ===
==== Active Synopses ====
{| class="wikitable"
|-
| colspan=2 | amō, amāre, āmāvī
| colspan=2 | parō, parāre, parāvī
| colspan=2 | do, dare, dedī
| colspan=2 | laudō, laudāre, laudāvī
|-
| amō || amāvī || parās || parāvistī || dat || dedit || laudāmus || laudāvimus
|-
| amābam || amāveram || parābās || parāverās || dabat || dederat || laudābāmus || laudāverāmus
|-
| amābō || amāverō || parābis || parāveris || dabit || dederit || laudābimus || laudāverimus
|-
| colspan=2 | amā
| colspan=2 | parā
| colspan=2 | dā
| colspan=2 | laudāte
|-
| amāre || amāvisse || parāre || parāvisse || dare || dedisse || laudāre || laudāvisse
|}
{| class="wikitable"
|-
| colspan=2 | dēleō, dēlēre, dēlēvī
| colspan=2 | habeō, habēre, habuī
| colspan=2 | moveō, movēre, mōvī
| colspan=2 | pāreō, pārēre, pāruī
|-
| dēlētis || dēlēvistis || habent || habuērunt || moveō || mōvī || pārēs || pāruistī
|-
| dēlēbātis || dēlēverātis || habēbant || habuerant || movēbam || mōveram || pārēbās || pāruerās
|-
| dēlēbitis || dēlēveritis || habēbunt || habuerint || movēbō || mōverō || pārēbis || pārueris
|-
| colspan=2 | dēlēte
| colspan=2 | habēte
| colspan=2 | movē
| colspan=2 | pārē
|-
| dēlēre || dēlēvisse || habēre || habuisse || movēre || mōvisse || pārēre || pāruisse
|}
{| class="wikitable"
|-
| colspan=2 | videō, vidēre, vīdī
| colspan=2 | dīcō, dīcere, dīxī
| colspan=2 | discēdō, discēdere, discessī
| colspan=2 | dūcō, dūcere, dūxī
|-
| videt || vīdit || dīcimus || dīxīmus || discēditis || discessistis || dūcunt || dūxērunt
|-
| vidēbat || vīderat || dīcēbāmus || dīxerāmus || discēdēbātis || discesserātis || dūcēbant || dūxerant
|-
| vidēbit || vīderit || dīcēmus || dīxerimus || discēdētis || discesseritis || dūcent || dūxerint
|-
| colspan=2 | vidē
| colspan=2 | dīcite (dīc)
| colspan=2 | discēdite
| colspan=2 | dūcite (dūc)
|-
| vidēre || vīdisse || dīcere || dīxisse || discēdere || discessisse || dūcere || dūxisse
|}
{| class="wikitable"
|-
| colspan=2 | mittō, mittere, mīsī
| colspan=2 | capiō, capere, cēpī
| colspan=2 | mūniō, mūnīre, mūnīvī
| colspan=2 | veniō, venīre, vēnī
|-
| mittō || mīsī || capis || cēpistī || mūnit || mūnīvit || venīmus || vēnīmus
|-
| mittēbam || mīseram || capiēbās || cēperās || mūniēbat || mūnīverat || veniēbāmus || vēnerāmus
|-
| mittam || mīserō || capiēs || cēperis || mūniet || mūnīverit || veniēmus || vēnerimus
|-
| colspan=2 | mitte
| colspan=2 | cape
| colspan=2 | mūnī
| colspan=2 | venī
|-
| mittere || mīsisse || capere || cēpisse || mūnīre || mūnīvisse || venīre || venisse
|}
=== § 200, p. 87 ===
Perseus was always eager for battle and he answered: “Your words are very pleasing,” and gladly* he
prepared his magical armour. Suddenly the monster is seen; it hastens quickly through the water and
approaches Andromeda. Her friends are far away and the poor girl is alone. Perseus, however, flew over
the water without delay. Suddenly he came down and wounded the savage monster severely with his hard
sword. For a long time the battle is fought, for a long time the fight is doubtful. Finally, however,
Perseus killed the monster and carried back the victory. Then he came to the stone, freed Andromeda,
and led her to Cepheus. He, recently wretched, now glad, spoke as follows: “with your help, my friend,
my dear girl is free; Andromeda is yours.” For a long time Perseus lived there with Andromeda and was
loved greatly by all the people.
* laetus is an adjective describing Perseus, but it is more fluently translated as an adverb.
=== § 202, p. 88 ===
monita sum, monita eram, monita erō<br>
rēcta sum, rēcta eram, rēcta erō<br>
capta sum, capta eram, capta erō<br>
audita sum, audita eram, audita erō
=== § 205, p. 89 ===
amātus esse<br>
monitus esse<br>
rēctus esse<br>
captus esse<br>
audītus esse
=== § 206, p. 89 ===
laudāre, laudāvisse, laudātūrus esse<br>
monēre, monuisse, monitūrus esse<br>
regere, rēxisse, rēctūrus esse<br>
capere, cēpisse, captūrus esse<br>
audīre, audīvisse, audītūrus esse
=== § 207, p. 90 ===
<ol type="I" start="1">
<li>
<ol>
<li>The story of Andromeda was told. </li>
<li>Many stories have been told by the teacher.</li>
<li>The field had been plowed by the strong farmer.</li>
<li>The fields had been plowed by the strong farmers.</li>
<li>The gold will have been carried by the treacherous slave to his (own) dwelling place.</li>
<li>Our weapons were praised by the lieutenant. Who has praised your weapons?</li>
<li>We were called to dinner by your maid.</li>
<li>Andromeda was not given to the monster because the monster had been killed by Perseus.</li>
</ol>
</li>
<li>
<ol>
<li>Prōvinciae vāstātae sunt, ager vāstātus erat, oppida vāstāta erunt.</li>
<li>Ōrācula audīta sunt, ōrāculum audītum est, ōrācula audīta erant.</li>
<li>Ōrāculum audītum erit, prōvincia capta erat, nāvigia capta sunt.</li>
<li>Agrī vāstātī sunt, vir monitus est, puellae monitae erunt.</li>
<li>Oppida rēcta erant, captī / captae erimus, audītus / audīta eris, auditī / audītae eritis.</li>
</ol>
</li>
</ol>
=== § 211, p. 93 ===
<ol type="I" start="1">
<li>
<ol>
<li>Did Cornelia not have the ornaments of gold? Yes, she did.</li>
<li>Sextus was not holding a shield on his left arm, was he? Not on the right; but Sextus was holding his shield on his left arm.</li>
<li>Many wars had been waged in vain by the Gauls.</li>
<li>When the town was occupied by the treacherous Sextus, the wretched townsmen were slain by the sword (put to the sword).</li>
<li>This town was full of grain.</li>
<li>Did Sextus not demand grain from the townsmen? Yes, but they refused to give him grain.</li>
<li>Why was the town destroyed by Sextus? Because grain was refused.</li>
<li>That victory was not doubtful.</li>
<li>The townsmen were weary and lacked weapons.</li>
<li>They did not attempt flight, did they? Not at all.</li>
</ol>
</li>
<li>
<ol>
<li>Ubi Iūlia stābat? Ubi iusserās stābat/ stābat ubi iusserās.</li>
<li>Gerēbatne Iūlia ūlla ōrnāmenta?<br>
Ūllane Iūlia gerēbat ōrnāmenta?<br>
Ōrnāmentane Iūlia gerēbat?<br>
Habēbat multa aurī ōrnāmenta.</li>
<li>Nōnne fugam temptāvit ubi perīculum vidit? Temptavit.</li>
<li>Quis eam cēpit? Galba eam sine morā cēpit et bracchiō sinistrō (eam) tenuit.</li>
<li>Num habēbat aurum dominae? Nōn; aurum ā perfidā ancillā captum erat et reportātum est.</li>
</ol>
</li>
</ol>
=== § 217, p. 95 ===
<ol type="I" start="1">
<li>
<ol>
<li>The school’s teacher ordered the children to work with diligence.</li>
<li>To be without food and wine is annoying for the men.</li>
<li>The armed men forbade the Gauls to pitch camp in that place.</li>
<li>Is the lieutenant in the fort or on the wall? He is in front of the gate.</li>
<li>When our men began to flee, the lieutenant was captured by your men.</li>
<li>The Gauls had stormed the fort there, where the garrison was weak.</li>
<li>Some were trying to fight, others were attacking the gates.</li>
<li>The women were sitting in front of (their) dwelling places and were not able to resist the strong Gauls.</li>
<li>War is savage; it favours neither the weak nor the wretched.</li>
<li>But the men demanded weapons and were eager to drive the Gauls down from the walls.</li>
<li>For this fort to be occupied by Gauls will not be pleasing to the Romans.</li>
<li> The Gauls, when conquered by the Romans, ceased to be free.</li>
<li>You can not live long without water.</li>
</ol>
</li>
<li>
<ol>
<li>Puella aquam cotīdiē ā fluviō ad portās portāre incēpit.</li>
<li>Gallī castra in locō proeliō idōneō posuerant.</li>
<li>Diū castellum occupāre frūstrā temptābant. (§ 190, a)</li>
<li>Neque iacere tela in mūrōs cessāvērunt.</li>
<li>Sed oppidum capere nōn poterant.</li>
</ol>
</li>
</ol>
=== § 218, p. 95 ===
Once upon a time the Sabines were waging war with the Romans and had gained many victories. Already they
were laying waste the fields next to the walls; already they were approaching the town. However the Romans
had fled onto the Capitol and were far away from peril. They believed in strong walls and high rocks. In
vain the Sabines hurled their weapons; in vain they attacked the strong gates; they could not take
possession of the fort. Then they made a new plan. Tarpëia was a pretty, proud Roman girl. Daily she
carried water to the Roman troops. The Sabines did not harm her because she had no weapons and the Sabines
did not wage war with women and children. Tarpëia loved ornaments made of gold very much. Daily she saw
the gold ornaments of the Sabines and soon she began to long for them. One of the Sabines said to her:
“Lead the Sabine forces within the gates, O Tarpëia, and very great will be your rewards.”
=== § 228, p. 99 ===
<ol type="I" start="1">
<li>
<ol>
<li>Who is sick? The slave whom I love is sick.</li>
<li>Whose shield do you have? I have the shield that the lieutenant sent to the fort.</li>
<li>To whom will the lieutenant give his shield? He will give the shield to my son.</li>
<li>Where did the ancient Germans live? The ancient Germans lived on the land that is next to the Rhine.</li>
<li>With whom were the Germans in the habit of waging war? The Germans used to wage war with the Romans, who were eager to overcome them.</li>
<li>Which men are pitching camp? These are the men by whose arms the Germans were conquered.</li>
<li>Which weapons do your forces lack? Our forces lack swords and spears.</li>
<li>By whom was the left gate being held? The left gate was being held by (our) allies.</li>
<li>Which provinces have been occupied by the Romans. Many provinces have been occupied by the Romans.</li>
<li>Which men will the Gods favour? The Gods will favour good men.</li>
</ol>
</li>
<li>
<ol>
<li>Quam victōriam nūntiābis/nūntiābitis?</li>
<li>Victōriam quam nautae reportāvērunt populō nūntiābō.</li>
<li>Virī quī castra ponēbant pugnae studēbant.</li>
<li>Tamen mox ā cōpĭīs quās Sextus mīserat victī sunt.</li>
<li>Cōpĭīs nostrīs resistere nōn poterant, sed ab eō locō sine morā fūgērunt.</li>
</ol>
</li>
</ol>
=== § 229, p. 100 ===
Tarpëia, excited because of the Sabines’ beautiful ornaments, could not resist and replied:
“Give the ornaments that you wear on (your) left arms to me, and I shall quickly lead your
forces into the fort.” And the Sabines did not refuse; but through the tough, great gates
of the fort they hastened to where Tarpëia led (them) and soon they stood between the firm
and high walls. Then, without delay, they harshly threw (their) shields onto Tarpëia; for
they were also bearing shields on their left arms! Thus was the treacherous girl, Tarpëia,
killed; in this way did the Sabines take possession of the fort.
=== § 234, p. 103 ===
<ol type="I" start="1">
<li>
<ol>
<li>Neither the foot-soldiers nor the cavalrymen were able to take possession of the Roman fort.</li>
<li>With extremely great they attacked the high walls daily.</li>
<li>The feet of the soldiers were often wounded by the stones that were being thrown down from the wall.</li>
<li>Which new plan did the leader make?</li>
<li>He tempted the faithless girl with beautiful ornaments.</li>
<li>What did the girl do?</li>
<li>The girl, excited by the gold, led the soldiers through the gates.</li>
<li>Yet she did not gain the rewards that she had asked for with the greatest eagerness.</li>
<li>Among the ancient Romans Tarpëia was not praised.</li>
</ol>
</li>
<li>
<ol>
<li>Quod navigium est illud quod videō? Illud navigium est Victōria; id nunc ventō idōneō/ secundō navigat et mox Italiae adpropinquābit.</li>
<li>Iūdicēs barbarōs rapī et interficī/necārī iussērunt.</li>
<li>Prīncipēs barbarōrum subitō fugere incēpērunt, sed celeriter ab equitibus captī sunt.</li>
<li>Rēx peditēs ad mūrum, dē quō oppidānī lapidēs maximō (cum) studiō iaciēbant, dūxit.</li>
</ol>
</li>
</ol>
=== § 237, p. 105 ===
<ol type="I" start="1">
<li>
<ol>
<li>Do you hear the trumpets, Marcus? Not only do I hear the trumpets, but I can also see the rows of soldiers and the wagons full of baggage.</li>
<li>What legions do we see? These legions have recently come from Gaul.</li>
<li>What have they done there? Were they eager to fight or were they without courage?</li>
<li>They have fought many battles and have brought back great victories and many prisoners.</li>
<li>Who is the commander in chief of these legions? Caesar, the greatest general of the Romans.</li>
<li>Who is the horseman who is wearing a beautiful wreath? That horseman is my brother. The wreath has been given to him by the consul because he had fought with the greatest courage and had saved our fatherland from barbarians.</li>
</ol>
</li>
<li>
<ol>
<li>Quis patrem meum hodiē vīdit?</li>
<li>Eum nūper vīdī. Ad domicilium tuum cum mātre et sorōre tuīs (tuā) properābat.</li>
<li>Homines ubi ā patriā longē absunt et cibō egent iniūriā continērī nōn possunt.</li>
<li>Salūs mīlitum Caesarī imperātōrī cāra est.</li>
<li>Prīncipēs oppidum frūmentī plēnum quod ā cōnsule tenēbātur oppūgnāre studēbant.</li>
<li>Rēx captīvōrum impedīmenta dēlērī vetuit.</li>
</ol>
</li>
</ol>
=== § 239, p. 106 ===
<ol type="I" start="1">
<li>
<ol>
<li>When the savages took Rome, they destroyed the greatest works of the kings.</li>
<li>The Romans have received (suffered) many defeats from the savages.</li>
<li>When the fear among the townspeople was greatest, their doubtful (wavering) spirits were strengthened by the famous orator.</li>
<li>Rome is on the bank of a big river.</li>
<li>When Caesar, the commander in chief, ordered his soldiers to take their weapons, they could not be restrained from the battle.</li>
<li>When the battle was fought, the general could not be found.</li>
<li>The general had been wounded by a arrow in the head and could not stand.</li>
<li>A foot soldier has carried him from the battle with great labour (effort).</li>
<li>He has held the general with his arms and saved him from the greatest dangers.</li>
<li>For his courage the good soldier has received a crown from the general.</li>
</ol>
</li>
<li>
<ol>
<li>Cōnsul corōnam in capite victōris posuit.</li>
<li>Ante portās ab oppidānīs acceptus est.</li>
<li>Ōrātor clārus eum laudāvit et dīxit: “Labōribus tuīs patriam ā calāmitāte servāvistī.”</li>
<li>Verba ōrātōris victōrī grāta fuērunt.</li>
<li>Patriam servāre opus magnum erat.</li>
</ol>
</li>
</ol>
=== § 240, p. 107 ===
Once upon a time the Cimbri and the Teutons, people of Germany, had approached Italy with their
wives and children, and they had conquered the Roman forces with a very great battle. When the
flight of the legions was announced, the fear of all Rome was very great, and the Romans, heavily moved, made frequent sacrifices to the gods
and sought safety.
Then Manlius, the orator, strengthened the hearts of the people as follows:
“We have suffered (received) a great defeat. Our towns are taken by the Cimbri and the Teutons,
our farmers are killed, our fields are laid waste, the troops of the savages are approaching
Rome. If we, therefore, do not fight a new battle with
new spirits and drive the Germans out of our fatherland without delay, there will be no safety
for our women and children. Save the children! Save our fatherland! Previously, we were overcome
because our generals were weak. Now Marius, the famous general, who has gained many other
victories already, will lead the legions and he will hasten to free our minds from the Cimbrian
terror.”
At that time, Marius was waging war in Africa. He was called from Africa to Italy without
delay. He made a levy of new troops not only on the whole of Italy but also on the provinces
of the allies. Moreover, he trained the soldiers with severe discipline and continuous
labour. Then he quickly hastened with the foot soldiers and the horsemen, who were already
eager for battle, to the camp of the Germans. The battle was long and fiercely contested. At last, the savages
fled and many were killed by the horsemen during their flight. Marius was called father of
the fatherland.
=== § 245, p. 109 ===
<ol type="I" start="1">
<li>
<ol>
<li>Which city do we see? The city you see is Rome.</li>
<li>The Roman citizens had strengthened their city with high towers and long walls.</li>
<li>The winds prevented the men-of-war from approaching the territory of the enemies.</li>
<li>The general has received golden spurs and other decorations from his retainers.</li>
<li>The Roman soldiers have waged fierce wars with/against the enemies and have conquered/defeated them with great slaughter.</li>
<li>Some animals love the land, others the sea.</li>
<li>The men-of-war that were carrying aid to the general have been destroyed by the enemies with fire.</li>
<li>In this sea we have seen many birds that had flown far away from land.</li>
<li>Haven’t you seen the men-of-war of the enemies and the fires that our city was being destroyed with? Yes, but we have seen neither the slaughter of the citizens nor the flight of the retainers.</li>
<li>Birds and other animals have quickly begun to seek safety by flight when they saw the fire.</li>
<li>The judge didn’t stand in the ranks of foot soldiers, did he? Not at all, the judge was among the horsemen and his horse wore a beautiful decoration.</li>
</ol>
</li>
<li>
<ol>
<li>Inopiā frūmentī animālia vīcī vīvere nōn poterant.</li>
<li>Imperātor, ubi fāmam audīvit, equitem ad vīcum celeriter mīsit.</li>
<li>Eques equum pulchrum habēbat et calcāria aurea/aurī gerēbat.</li>
<li>Cīvibus dīxit: “Clientēs vestrōs cum equīs et carrīs ad castra nostra mittite, et cōpiam frūmentī accipiētis.”</li>
<li>Animīs laetīs mātūrāvērunt verbīs eius pārēre.</li>
</ol>
</li>
</ol>
=== § 248, p. 112 ===
{| class="wikitable"
|-
! Noun !! Gender !! Rule
|-
| animal || n || -al
|-
| avis || f || -is
|-
| caedēs || f || long vowel (not ō) + s
|-
| calcar || n || -ar
|-
| calamitās || f || long vowel (not ō) + s
|-
| caput || n || caput is an exception
|-
| eques || m || -es (also a horseman is a masculine)
|-
| fīnis || m || -nis
|-
| flūmen || n || -n
|-
| ignis || m || -nis
|-
| īnsigne || n || -e
|-
| labor || m || -or
|-
| lapis || m || lapis is an exception (-is, usually feminine)
|-
| legiō || f || -ō
|-
| mare || n || -e
|-
| mīles || m || -es
|-
| nāvis || f || -is
|-
| opus || n || -us
|-
| salūs || f || long vowel (not ō) + s
|-
| urbs || f || consonant + s
|}
=== § 249, p. 112 ===
<ol type="I" start="1">
<li>
The safety of the allies was always dear to the Romans. Once upon a time, the Gauls,
friends of the Romans, had received many wrongs from the Germans, who lived across
the Rhine river. When ambassadors came from them to Caesar, the Roman general,
and asked for help, the Romans hurried with long (great) marches (= a forced march) to
the territory of the enemies. Soon they came to the banks of the great river. The general
was eager to lead his troops across the river, but he could by no way (do that). He had
no ships. The water was deep. However, the distinguished commander, (who was) never moved
by adverse fortune, made a new plan. He ordered his men to build a bridge over the wide
river. Never before had a bridge been seen over the Rhine. When the enemies saw the
bridge that the Romans had built, moved by
the greatest fear, they began to prepare (their) flight without delay.
</li>
<li>
<ol>
<li>Hostis/hostēs summum montem occupāverat/occupāverant.</li>
<li>Erant multae arborēs in collibus adversīs.</li>
<li>Castra ad pulchum fontem posuimus.</li>
<li>Iter per hostium fīnēs numquam est sine perīculō.</li>
<li>Tempus mēnsis idōneum erat itinerī.</li>
<li>Dentēs monstrī erant longī.</li>
<li>Peditēs, ubi sanguinem captīvōrum vīdērunt, moenia summā vī petere/oppūgnāre incēpērunt.</li>
</ol>
</li>
</ol>
=== § 256, p. 114 ===
{| class="wikitable"
|-
| vir ācer || viri ācris, viro ācrī, virum ācrem, viro ācrī, viri ācrēs, virorum ācrium, viris ācribus, viros ācrīs/ācrēs, viris ācribus
|-
| legiō ācris || legiōnis ācris, legiōnī ācrī, legiōnem ācrem, legiōne ācrī, legiōnēs ācrēs, legiōnum ācrium, legiōnibus ācribus, legiōnēs ācrīs/ācrēs, legiōnibus ācribus
|-
| animal ācre || animālis ācris, animālī ācrī, animal ācre, animālī ācrī, animālia ācria, animālium ācrium, animālibus ācribus, animālia ācria, animālibus ācribus
|-
| ager omnis || agrī omnis, agrō omnī, agrum omnem, agrō omnī, agri omnēs, agrorum omnium, agrīs omnibus, agros omnīs/omnēs, agrīs omnibus
|-
| scūtum omne || scūti omnis, scūtō omnī, scūtum omne, scūto omnī, scūta omnia, scūtorum omnium, scūtīs omnibus, scūta omnia, scūtis omnibus
|-
| proelium pār || proeliī paris, proeliō parī, proelium pār, proeliō parī, proelia paria, proeliōrum parium, proeliīs paribus, proelia paria, proeliīs paribus
|}
=== § 258, p. 115 ===
<ol type="I" start="1">
<li>
<ol>
Once the Roman foot soldiers with the swift horsemen made a journey to the
enemies’ city. When they were not far away, they seized a farmer, who
explained to them a short and easy way. Already the Romans could see the
high walls, strong towers and other works of the city. On the walls there
stood many chiefs. When the chiefs saw the Romans, they order the citizens
to throw stones and other weapons from the walls. Then the brave soldiers
could not be kept from battle and the eager general ordered a signal with
the trumpet to be given. With the greatest force they all hastened. The
commander in chief committed all the baggage to his lieutenant, Sextus.
Sextus placed the baggage on the top of the hill. The battle was heavy and
keen, but the enemies were not equal to the Romans. Some were killed,
others were taken. Among the prisoners were the mother and sister of the
king. Only a few Romans were wounded by the enemies. The favourable battle
was pleasing to the Romans. Fortune always favours the brave.
</ol>
</li>
<li>
<ol>
<li>Aliī mēnsēs brevēs, aliī longī sunt/ Mēnsēs aliī longī aliī brevēs sunt.</li>
<li>Summum montem occupāre erat difficile.</li>
<li>Apud collēs Italiae sunt fontēs multī et pulchrī.</li>
<li>Mīlitēs ibi sedēbant ubi impedīmenta conlocāta erant quia pedēs (eōrum) dēfessī erant.</li>
<li>Urbs quam mīlitēs petere/oppūgnāre studēbant moenibus validīs et turribus altīs mūnīta erat.</li>
<li>Nōnne rēx corōnam gravem aurī et omnem pecūniam suam servō perfidō mandāvit? Vērō, sed servus anteā perfidus numquam fuerat.</li>
</ol>
</li>
</ol>
=== § 261, p. 116 ===
<ol type="I" start="1">
<li>
<ol>
<li>Before the arrival of Caesar, the swift horsemen of the enemies made a fierce attack on the camp.</li>
<li>To restrain the army from the battle was not easy.</li>
<li>After his arrival, Caesar ordered the legionary soldiers to be led out of the camp.</li>
<li>Before the camp there was a fight with the enemies’ cavalry.</li>
<li>After a short time the cavalry fled across the river where the enemies’ camp was situated.</li>
<li>Then the victorious commander in chief laid waste to the fields and burned the villages of the enemies.</li>
<li>However, he has not stormed the camp, because the soldiers were tired and the place was difficult.</li>
<li>The enemies did not cease to throw spears, which have injured only a few.</li>
<li>After the adverse fight, the chiefs of the Gauls were eager to send ambassadors to Caesar, but they could not persuade the people.</li>
</ol>
</li>
<li>
<ol>
<li>Vidistīne nāvem longam in lacū?</li>
<li>Eam nōn in lacū sed in portū vidī.</li>
<li>Ventō validō nauta frātrem nāvigāre vetuit.</li>
<li>Num Caesar impetum in equitātum ā dextrō cornū fēcit?</li>
<li>Minimē, impetum ā cornū sinistrō fēcit.</li>
<li>Quis vēlōcem equum tuum pārēre docuit?</li>
<li>Manibus meīs equum exercuī, neque opus erat difficile.</li>
<li>Pulchrum est animal et vim habet magnam.</li>
</ol>
</li>
</ol>
=== § 270, p. 119 ===
<ol type="I" start="1">
<li>
<ol>
<li>In Corinth all decorations of gold had been seized by victorious leaders.</li>
<li>Caesar has led the army to Geneva with long (large) marches.</li>
<li>Which bridge had the enemy burnt? The enemy had burnt the bridge over the Rhine.</li>
<li>At Pompeii, you will be able to see many Roman houses (houses of the Romans).</li>
<li>The consul hastened from Rome to the country on (with) a swift horse.</li>
<li>Many people were sitting in the house of the consul.</li>
<li>The general had ordered the lieutenant to sail to Athens with many men-of-war.</li>
<li>Before the walls of the city are rows of high trees.</li>
<li>Because of the high trees we have not been able to find the lake and the harbour.</li>
<li>Caesar drilled his legions that were in Gaul with many battles.</li>
<li>Daily he pitched camp in a suitable place and fortified (it).</li>
</ol>
</li>
<li>
<ol>
<li>Caesar, imperātor clārus, ubi Rōmā discesserat, equō vēlōcī ad prōvinciam Romānam properāvit.</li>
<li>Fāmam dē sociīs Genāvae audīverat. Dē sociīs quī Genāvae erant fāmam audīverat.</li>
<li>Post adventum Caesar mīlitēs convocāvit et eōs (eōsque) proelium committere iussit.</li>
<li>Hostēs terga vertere properāvērunt, aliī quia timēbant, aliī propter vulnera.</li>
<li>Nūper Athēnīs fuī et locum ubi iūdicēs sedēbant vīdī.<br>
Nuper Athenis eram (fui) locumque vidi ubi sedebant iudices.</li>
<li>Marcus et Sextus sunt frātrēs meī; alter Rōmae, alter rūrī habitat/vīvit.</li>
</ol>
</li>
</ol>
=== § 271, p. 121 ===
Crete is an ancient island that is beaten by the high water of the great sea.
There Minos once upon a time was king. Daedalus, who was fleeing out of his
fatherland, Greece, came to him. King Minos received him with kind words and
gave him a dwelling place at Crete. And in this place Daedalus lived without
worry and made many famous works for the king. After a long time, however,
Daedalus began to long for his dear native land. He was eager to hasten home,
but he could not persuade the king and the savage sea forbade flight.
=== § 276, p. 122 ===
<ol type="I" start="1">
<li>
<ol>
Galba the farmer. Galba the farmer lives in the country. Every day he begins
to work at daybreak, and he does not cease in his zeal before the night. At
midday his daughter Julia calls him to dinner. At night he turns his tired
feet home. In the summer the sons of the farmer give their father aid. At
winter the farmer sends them to school. There the teacher tells the boys many
stories about the exploits of Caesar. In the summer the sons of the farmer
practice with continuous labours and the heavy work of the field is not
troublesome to them. Galba lives without any care and does not fear adversity.
</ol>
</li>
<li>
<ol>
<li>Eō mēnse fuērunt multa proelia in Galliā.</li>
<li>Equitātus hostium impetum in Caesaris aciem fēcit.</li>
<li>Prīmā hōrā noctis nāvis fluctibus superāta est.</li>
<li>Secundō diē barbarī in Caesaris fidem venīre studēbant / studuērunt.</li>
<li>Spē victōriae commōtus rēx proelium commīserat.</li>
<li>Eō annō ignis multās avēs aliaque animālia dēlēvit.</li>
<li>Sanguinem in dentibus ferae vidēbāmus / vīdimus.</li>
</ol>
</li>
</ol>
=== § 277, p. 123 ===
Then Daedalus, moved by heavy troubles (heavily troubled), spoke as follows to his
son Icarus: “My heart, Icarus, is full of sadness nor do my eyes lack tears. I am
most of all eager to depart from Crete, to hasten to Athens; but the king refuses
to listen to my words and takes away all hope of return. But I shall never be
conquered by adversities. Land and sea are hostile, but I shall find another way of
flight.” Then he directs his mind to unknown arts (notice the accusative plural in
–īs) and makes a wonderful plan. For he places feathers in a row and makes true
wings.
=== § 281, p. 125 ===
doceō mē; docēs tē; docet sē; docēmus nōs; docētis vōs; docent sē.
=== § 283, p. 125 ===
<ol type="I" start="1">
<li>
<ol>
<li>My mother is dear to me and your mother is dear to you.</li>
<li>Your letters were pleasing to us and our letters were pleasing to you.</li>
<li>The messenger of the king, who is with us, will answer nothing.</li>
<li>The messengers have demanded peace and friendship for them and their companions.</li>
<li>If you will take up arms, I will seize the kingdom.</li>
<li>Who of you both is a Roman citizen. Neither of us.</li>
<li>At that time many suffered punishment because they had attacked the kingdom.</li>
<li>Inflict punishment on the fierce enemies of our native land, Caesar.</li>
<li>At daybreak some intrusted themselves to flight, moved by fear; others, however, sustained the attack of our army with great courage.</li>
<li>When the sister of the king heard about the adverse (outcome of the) battle, she killed herself at Pompeii.</li>
</ol>
</li>
<li>
<ol>
<li>Quem docēs? Mē doceō. </li>
<li>Mīles gladiō sē(sē) vulnerāvit.</li>
<li>Magister nōs laudat, sed vōs nōn laudat / neque vōs laudat.</li>
<li>Itaque supplicium dē vōbis sūmet, sed nōs supplicium nōn dabimus/neque nōs supplicium dabimus.</li>
<li>Quis Rōmam iter mēcum faciet?</li>
<li>Tēcum ad portās urbis iter faciam.</li>
<li>Quis nōbis viam dēmōnstrābit? Diī vōbis viam dēmōnstrābunt.</li>
</ol>
</li>
</ol>
=== § 284, p. 125 ===
The boy, Icarus, stood next to him (lit. stood in the same place) and saw his
father’s wonderful work. After the finishing touch (the last hand) was put
to the wings, Daedalus tried them and flew in the air(s) like a bird. Then he
fastened wings to his son’s shoulders and taught him to fly and said: “I forbid
you, my son, to approach either the sun or the sea. If you approach the waves,
the water will harm your wings, and if you approach the sun, the fire will burn
them.” Then father and son begin their difficult journey. They move their wings
and commit themselves to the air. But the foolish boy does not obey his father’s
words. He approaches the sun. The wings are burned and Icarus falls down into
the sea and loses his life. Daedalus, however, flew without any danger over
the waves to the island of Sicily.
=== § 288, p. 127 ===
<ol type="I" start="1">
<li>
<ol>
<li>You and I are living in the same town.</li>
<li>We are not afraid of the journey itself, but of the fierce wild beasts that are said to be in the dense forest.</li>
<li>Once upon a time we ourselves made the same journey.</li>
<li>At that time we saw many wild beasts.</li>
<li>But they have not injured us.</li>
<li>Caesar himself snatched a shield out of the hands of a soldier and hastened to the very line of battle.</li>
<li>Therefore the soldiers threw their spears into the enemies’ bodies with the greatest courage.</li>
<li>The Romans too received severe wounds.</li>
<li>Finally the enemies retreated and fled in all directions.</li>
<li>The same hour a letter was sent to Rome by the general himself.</li>
<li>The same month the prisoners were also sent to Italy.</li>
<li>But many refused to make the difficult journey across the mountains because of their wounds, and were said to be in Geneva.</li>
</ol>
</li>
<li>
<ol>
<li>Pompeiīs est mōns mīrus.</li>
<li>(Ego) ipse, ubi (in) eō locō eram, eum montem vīdī.</li>
<li>Eōdem diē multae urbēs igne et lapidibus ex monte ipsō dēlētae sunt.</li>
<li>Num vēram eius calamitātis fabulam audīvisti(s)?</li>
<li>Eō diē sōl ipse hominibus lūcem dare nōn poterat.</li>
<li>(Tū) ipse eam fābulam nōbis nārrāre dēbēs.</li>
</ol>
</li>
</ol>
=== § 289, p. 127 ===
When Tarquin the Proud, the seventh and last king of the Romans was expelled into
banishment by the angry Romans, he asked Porsena, the king of the Etruscans for help.
Soon Porsena came to Rome with great forces, and the city itself was in great danger.
In the whole region the Roman army had been conquered. The king had already seized
the Janiculum. Never before were the Romans held by such great fear. They hastened
from the fields into the city and fortified the town itself with the greatest zeal.
=== § 294, p. 129 ===
<ol type="I" start="1">
<li>
<ol>
That brave leader of the Germans called together his men, and strengthened
their spirits in this way. “I have called you, who live in this country,
together at this place, because you, together with me, have to free these
fields and houses from the wrongs of the Romans. This will not be
hard for us, because those enemies fear these dense forests, wild beast
whose footprints they see, and the high mountains. If we are strong, the
gods themselves will show us the way of safety. That sun, those eyes have
seen our losses. Therefore the name of that Roman republic is hateful not
only to us, but also to all people who love liberty. I call you to arms.
Practise that ancient courage and you will conquer.”
</ol>
</li>
<li>
<ol>
<li>Cantatne avis ista?</li>
<li>Haec avis et aestāte et hieme cantat et vōcem pulchram habet / vōxque eius pulchra est.</li>
<li>Illae avēs rūrī hieme nōn cantant.</li>
<li>Ēripe pīlum ē manibus istīus mīlitis et domum mēcum venī.</li>
<li>Istīs ipsīs oculīs vestigia vidēbis inimīcī invīsī, quī domicilium meum cremāvit et impetum in fratrem meum fēcit.</li>
<li>Propter hās / eās rēs dē eō supplicium sine morā sūmere dēbēmus.</li>
<li>Hostēs reī pūblicae supplicium nōn semper dant.</li>
</ol>
</li>
</ol>
=== § 295, p. 130 ===
One part of the city seemed sufficiently fortified by walls, the other part by the river.
But there was a bridge over the river that nearly presented a way for the enemies. Then
Horatius Cocles, a brave man, shouted (said with a great voice), “Cut down the bridge,
Romans! Shortly Porsenna will lead his troops across (it) into the city.” Already there
were enemies on the bridge, but Horatius with two companions hastened to the farthest
part of the bridge, and these alone sustained the frontline of the enemy. Then the Roman
citizens truly began to cut down the bridge in the rear, and the enemies tried in vain
to overcome Horatius.
=== § 298, p. 132 ===
<ol type="I" start="1">
<li>
<ol>
<li>Someone fell from the bridge down into the river but he has been saved without any danger.</li>
<li>There is in fact some good fortune in the life of every man.</li>
<li>Not even any of the soldiers has stayed in the camp.</li>
<li>If you see anyone at my house, order him to leave.</li>
<li>If anyone holds the bridge, not even such a great army can take the city.</li>
<li>The city was not sufficiently fortified and at midday a certain king had almost led his troops across the bridge.</li>
<li>Finally a certain soldier leaped down in the waves (while) armed and turned his eyes to the other bank unharmed.</li>
<li>Everyone ought to give that brave soldier something.</li>
<li>Such courage has in fact always pleased the Romans.</li>
<li>Once upon a time Corinth was a large enough city and almost equal to Rome itself; now, however, the walls have fallen down and just a few remains of that town can be found.</li>
<li>Everyone loves liberty, and in fact the name of the king is hateful to anyone.</li>
</ol>
</li>
<li>
<ol>
<li>Sī Cornēlium quendam Corinthī vīderis (future perfect), eum ad mē mitte.</li>
<li>Paene omnēs mīlitēs quī in fluctūs dēcidērunt incolumēs erant/fuērunt.</li>
<li>Nē Pompeiīs quidem tantum īgnem vīdī.</li>
<li>(Ego) ipse/ipsa alicui aliquid nārrāre studuī.</li>
<li>Quisque opus suum laudābat / Suum quisque laudābat opus.</li>
<li>Vīdistīne aliquem rūrī? Quemquam nōn vīdī.</li>
<li>Nisī quis cum Horātiō in ponte mānēbit, rēs pūblica summō erit in perīculō.</li>
</ol>
</li>
</ol>
=== § 299, p. 132 ===
Soon, when (only) a small part of the bridge remained, Horatius ordered his comrades to
get away and sustained with wonderful firmness the attack of that entire army, alone.
Finally the bridge fell down into the river with a great splash (noise). Then indeed did
Horatius retreat and leaped armed into the waters. The enemies hurled many spears towards
him; however, he swam across the waves to the other bank unharmed. Because of such great
deeds the Roman people not only gave him other great rewards, but also placed a statue of
Horatius in a public place.
=== § 306, p. 134 ===
<ol type="I" start="1">
<li>
<ol>
<li>What were the scouts seeking for? The scouts were seeking for the most opportune time for the march.</li>
<li>In the middle of the wood we made fires as frequent as possible, because we had never before seen wild beasts so audacious.</li>
<li>In ancient times the Germans were braver than the Gauls.</li>
<li>Caesar was more famous than the enemies who killed him.</li>
<li>Each person carried a huge shield and quite a long spear.</li>
<li>Among the foreigners the Germans were the boldest and the bravest.</li>
<li>The mind of men is quicker than their body.</li>
<li>The men of some lands are very unfortunate.</li>
<li>The bodies of the Germans were more huge (bigger) than those of the Romans.</li>
<li>The very keen leaders of the Gauls led their very quick horses across a certain river without any delay.</li>
<li>In the summer, the days are longer than in the winter.</li>
<li>A certain commander in chief has asked (from) the scouts about the recent arrival of the men-of-war.</li>
</ol>
</li>
<li>
<ol>
<li>Omnium avium vēlocissima/celerrima est aquila.</li>
<li>Quaedam animālia celeriōra sunt quam equus celerrimus.</li>
<li>Nōmen Rōmānum invīsissimum erat hostibus reī pūblicae.</li>
<li>Rōmānī dē sociīs perfidīs supplicium gravissimum semper sūmpsērunt.</li>
<li>Aegrior eram, itaque ab urbe rūs properāvī.</li>
<li>Mārcus aliquōs amīcōs cāriōrēs quam Caesarem habēbat.</li>
<li>Nōnne dē proeliō fāmam recentiōrem quaesīvistī(s)?</li>
<li>Nē post victōriam tam opportūnam quidem amīcitiam imperātōris quaesīvit.</li>
</ol>
</li>
</ol>
=== § 310, p. 136 ===
<ol type="I" start="1">
<li>
<ol>
<li>No one saw soldiers more spirited than the Romans.</li>
<li>The general ordered immediately messengers as swift as possible to carry letters to Rome.</li>
<li>Many rivers are more gentle than the Rhine.</li>
<li>Among the Romans who was more famous than Caesar?</li>
<li>I have seen no city more beautiful than Rome. / I have seen nothing more beautiful than the city of Rome.</li>
<li>Suddenly a great number of very bold (soldiers) joined, with much clamour, the quite violent battle. / Suddenly, a very bold multitude joined, with a great clamor, the quite violent battle. </li>
<li>Your horse is not slow, is it? No, it isn't slow but faster than an eagle.</li>
<li>When I was in Rome, no one was more friendly to me than Sextus.</li>
<li>Certain women wished to give food to the soldiers.</li>
<li>The king prohibited the citizens from leaving the city at night.</li>
<li>That boy is more slender than this woman.</li>
<li>The scout showed two routes, one easier, the other more difficult.</li>
</ol>
</li>
<li>
<ol>
<li>Quam urbem Rōmā pulchriōrem vīdistī/vīdistis?</li>
<li>Gallī Germānīs alacriōrēs nōn erant/fuērunt.</li>
<li>Aquila equō tardior nōn est.
<li>Mulier alacris noctū iter facere nōn timēbat/timuit.
<li>Mēns/animus multitūdinis lēnior amīciorque erat/fuit.</li>
<li>Sed rēgis mēns dissimillima erat.</li>
<li>Rēx nōbilī patrī (suō) similis nōn erat.</li>
<li>Collēs hī humiliōrēs sunt quam fīnium nostrōrum ingentēs montēs.</li>
</ol>
</li>
</ol>
=== § 314, p. 138 ===
<ol type="I" start="1">
<li>
<ol>
<li>The remaining enemies, who had joined the battle on the right flank, fled from the higher ground and retreated into the largest forest.</li>
<li>The enemy's camp had been pitched in the outermost part of the forest.</li>
<li>Many prisoners were led to Caesar by the horsemen.</li>
<li>However, Caesar ordered them to be delivered to slavery.</li>
<li>In the next day a great multitude of women was discovered, in the lowest valley, by the Romans.</li>
<li>These women, terrified throughly because of Caesar's arrival, were eager to kill themselves.</li>
<li>They too had heard many stories about the crimes of the Roman army.</li>
<li>The reputation of those soldiers was not the best.</li>
<li>In the buildings of the barbarians quite a supply of grain was found.</li>
<li>No one is able to fight frequent battles without any danger.</li>
</ol>
</li>
<li>
<ol>
<li>Mulierēs reliquae ex aedificiīs suīs fugērunt sēque abdidērunt.</li>
<li>Terrebantur neque capi cupiebant neque in servitutem tradi.</li>
<li>Nihil servitute peius esse potest.</li>
<li>Servitus morte peior est.</li>
<li>In Romano imperio multi occisi sunt quia "servi esse"/servire recusabant (recusabant
ne "servi essent"/servirent).</li>
<li>Patriam tradere pessimum scelus est.</li>
</ol>
</li>
</ol>
=== § 318, p. 139 ===
<ol type="I" start="1">
<li>
<ol>
<li>The barbarians decided to join the battle that much more because the Romans were seen to be weak.</li>
<li>My plan is much better than yours because it is much easier.</li>
<li>This road is much wider than that (road there).</li>
<li>The barbarians weren't at all slower than the Romans.</li>
<li>Your horse is a little faster than mine.</li>
<li>Those who were a bit stronger restrained the rest from abandoning the entrance.</li>
<li>Among those nations Germany has the best soldiers.</li>
<li>The nearer road which leads through the valley is between the port and the lake.</li>
<li>The slaves, who inhabited the nearer fields, did not wish to abandon their former masters because they liked them.</li>
<li>The more remote parts of Germany never came under the protection of the Romans.</li>
<li>For it was much more difficult for the Roman army to go across the Rhine.</li>
</ol>
</li>
<li>
<ol>
<li>Aliud multō difficilius iter per prōvinciam Galliam relinquēbātur.</li>
<li>Antīquis temporibus nulla cīvitās validior erat quam imperium Rōmānum.</li>
<li>Ulterioris Galliae cīvitatēs obsidēs Caesarī trādere nōn cupiēbant.</li>
<li>Servitūs morte nihilo melior (potior) est.</li>
<li>Cīvīs optimī ā pessimis amāti nōn sunt.</li>
<li>Hostēs acrēs sē statim in proximās silvās receperunt quod Caesaris recentibus victōriīs terrēbantur.</li>
</ol>
</li>
</ol>
=== § 324, p. 141 ===
{| class="wikitable"
|-
! rowspan=2 | adjective
! colspan=3 | adverb
|-
!| positive
!| comparative
!| superlative
|-
| laetus || laetē || laetius || laetissimē
|-
| superbus || superbē || superbius || superbissimē
|-
| molestus || molestē || molestius || molestissimē
|-
| amīcus || amīcē || amīcius || amīcissimē
|-
| ācer|| ācriter || ācrius || ācerrimē
|-
| brevis || breviter || brevius || brevissimē
|-
| gravis || graviter || gravius || gravissimē
|-
| recēns || recēnter || recēntius || recēntissimē
|}
=== § 326, p. 141 ===
<ol type="I" start="1">
<li>
<ol>
<li>No affair has been managed better than the famous battle in which Marius with a much smaller army put to flight the much larger army of the Germans.</li>
<li>The enemy fiercely made an assault upon the Roman cohorts.</li>
<li>Nevertheless, Marius most bravely kept back them all.</li>
<li>The barbarians weren't stronger than the Romans.</li>
<li>At first the barbarians seemed to be victorious, then the Romans fought more violently.</li>
<li>Finally, when the battle had been fought for a very long time, as I may say, the barbarians strove to flee.</li>
<li>A certain (tribe) of the German tribes, as soon as they heard the rumour of that loss, hid themselves into the farthest regions of their lands.</li>
<li>The Romans prevailed more often than the enemy because they had a better armour.</li>
<li>Among all nations the Romans were most powerful.</li>
<li>These cohorts, as soon as they had retreated to a more level territory, pitched camp without any trouble.</li>
</ol>
</li>
<li>
<ol>
<li>Aliquae gentēs ab hostibus (suis) facile superantur.</li>
<li>Germānia Galliā multō māior est.</li>
<li>Nonne Rōmānī inter Ītaliae gentes potentissimī erant (plūrimum valēbant)?</li>
<li>Mīlēs propter vulnera difficillimē ē fossa corpus suum trāxit.</li>
<li>Neque fugere neque pugnāre poterat.</li>
<li>Quis eum servāvit? Eques quīdam rem/negōtium audācter suscēpit.</li>
<li>Rūmōrēs dē mīlitis morte vērī nōn erant.</li>
</ol>
</li>
</ol>
=== § 332, p. 144 ===
<ol type="I" start="1">
<li>
<ol>
<li>Caesar set fire to the greatest part of the buildings.</li>
<li>A large part of the fortification was destroyed by the water of the river.</li>
<li>The Gauls of this region had assembled five thousand men.</li>
<li>Two of my brothers heard the same rumour.</li>
<li>Which (Who) of the Romans was more famous than Caesar?</li>
<li>The five cohorts of that legion were defending the camp most bravely.</li>
<li>This place was equally distant from Caesar's camp and the camp of the Germans.</li>
<li>Caesar, as soon as he arrived, requested more supplies from (his) allies.</li>
<li>Didn't the merchants know the size of the island? They knew the length but not the width (of it).</li>
<li>A few of the enemies occupied the hill which our scouts saw.</li>
</ol>
</li>
<li>
<ol>
<li>Duōs frātrēs habeō et ex eīs ūnus Rōmae vīvit.<br>
Mihi sunt frātrēs duo quōrum alter Rōmae vīvit.</li>
<li>Caesar tribus legiōnibus urbem ipsan oppugnavit.</li>
<li>Hōra ūna mūnītiōnis magnam partem dēlēvit.</li>
<li>Ubī hōstēs portās diutius dēfendere nōn potuērunt, sē in collem receperunt quī proximē (abl. of measure as found in Cicero: brevī spatiō; acc. of extent as found in Caesar: breve spatium) aberat.</li>
<li>Ibi eōrum tria mīlia Rōmānīs fortiter rēstitērunt.</li>
</ol>
</li>
</ol>
=== § 336, p. 145 ===
=== § 337, p. 145 ===
<ol type="I" start="1">
<li>
<ol>
Caesar waged war in Gaul for seven years. In the first year he subdued the Helvetii, and in the same year many German tribes
surrendered themselves to him. For many years the Helvetii harassed the Gauls, and the German leaders often led their
troops across the Rhine. They did not come one by one, but many thousand men were fighting in Gaul. Because of that reason
the leaders of the Gauls called together an assembly and decreed to send delegates to Caesar. Caesar, as soon as he heard
this rumour, assembled his troops without delay. At daybreak he set to fight quite fiercely with the Germans. For the whole
day fight went on quite violently. Caesar himself led the line of battle from the right flank. A large part of the army of
the Germans fell. After the great slaughter the few (survivors) fled many miles to the river.
</ol>
</li>
<li>
<ol>
<li>Caesar ā flūmine mīlia passuum duo castra posuit.</li>
<li>Castra fossā quīndecim pedēs lātā et vallō novem pedēs altō mūnīvit.</li>
<li>Hostium castra magnō spatiō (acc. of extent as found in Caesar: magnum spatium) aberant.</li>
<li>Postrīdiē decem mīlia passuum hōrīs tribus īre condendit (cucurrit).</li>
<li>Subitō hostēs omnibus cōpiīs (viribus) in novissimum agmen impetum fēcērunt.</li>
<li>Hōrās duās Rōmānī ā barbarīs pressī sunt.</li>
<li>Hōrīs tribus post (hōrā quarta) barbarī fugiēbant.</li>
</ol>
</li>
</ol>
=== § 341, p. 147 ===
<ol type="I" start="1">
<li>
<ol>
<li>Against Caesar's expectation, three of the ambassadors were afraid to travel through the enemy's territory.</li>
<li>Who has encouraged them? The general has encouraged them and he attempted to persuade them, but was unable (to persuade them).</li>
<li>What has thoroughly terrified the ambassadors? Either the fear of the enemy, who were pressing hard upon (them) on all sides, or because the length of the march terrified them.</li>
<li>Nevertheless, almost all feared Caesar much more than the enemy.</li>
<li>The bravest tribes of Gaul originated from the Germans.</li>
<li>For which reason were they brave? Because they did not suffer to carry with them neither wine nor other (things) which destroy manliness.</li>
<li>Caesar asked the merchants about the island Britannia, but could learn nothing (from them).</li>
<li>Thus he decided to proceed to that land himself, and almost in the middle of the summer set out with many warships.</li>
<li>He completed the journey with great speed and disembarked in the most suitable place.</li>
<li>The barbarians, with great strength, attempted to keep him off the island.</li>
<li>He, however, pursued the barbarians for many miles; nevertheless, without a cavalry he could not overtake them.</li>
</ol>
</li>
<li>
<ol>
<li>Hostēs contrā spēm nostram fugerunt equitātusque eōs subsecūtus est.</li>
<li>Ē turbae omnibus partibus oriēbantur clāmōrēs eōrum quī vulnerābantur.</li>
<li>Caesar passus nōn est equitātum longius īnsequī.</li>
<li>Equitātus primā horā profectus est revertēbāturque ad castra horā quartā.</li>
<li>Vāllum duodecim pedēs altum circum/circā castra Rōmāna erat.</li>
<li>Caesar diēs trēs propter/ob rem frūmentāriam morābitur.</li>
<li>Paene omnēs legātī hostēs metuēbant/verēbantur iterque morārī cōnātī sunt.</li>
</ol>
</li>
</ol>
=== § 344, p. 149 ===
=== § 347, p. 151 ===
=== § 353, p. 152 ===
<ol type="I" start="1">
<li>
<ol>
<li>They come to lead/send/see/hear/be led/be sent/be seen/be heard.</li>
<li>We escape in order not to be captured/be handed over/see/be killed/be seized/resist.</li>
<li>He sent the messengers to speak/hear/come/tell/be heard/sit in the assembly.</li>
<li>They fortify the camp in order to more easily defend themselves/sustain an attack/overcome the enemy/seek safety.</li>
</ol>
</li>
<li>
<ol>
<li>Helvētiī lēgātōs mittunt ut pācem petant.</li>
<li>Prīma lūce proficīscuntur quō ante noctem iter longius faciant.</li>
<li>Mulierēs in silvam abdent nē capiantur.</li>
<li>Gallī bella multa gerunt ut patriam suam (ā) servitūte līberent.</li>
<li>Rōmānīs fortiter resistent nē deleantur.</li>
</ol>
</li>
</ol>
=== § 354, p. 153 ===
=== § 360, p. 155 ===
<ol type="I" start="1">
<li>
<ol>
<li>They had come to lead/send/see/hear/be led/be sent/be seen/be heard.</li>
<li>He fled in order not to be captured/be betrayed/be seen/be killed/be seized/be opposed.</li>
<li>He sent messengers that they might speak/hear/come/tell/be heard/sit in the assembly.</li>
<li>They have fortified the camp in order to more easily defend themselves/sustain an attack/defeat the enemy/seek safety.</li>
</ol>
</li>
<li>
<ol>
<li>Caesar mīlitēs hortātus est quō fortius pugnārent.</li>
<li>Helvetii domōs suās relīquērunt ut bellum gererent.</li>
<li>Explōrātōrēs statim profecti sunt nē ā Germānīs caperentur.</li>
<li>Caesar dē eīs supplicium sūmpsit quō aliī terrērentur magis.</li>
<li>Nūntiōs Rōmam mīsit ut victōriam nūntiārent.</li>
</ol>
</li>
</ol>
=== § 361, p. 156 ===
=== § 363, p. 157 ===
=== § 368, p. 159 ===
<ol type="I" start="1">
<li>
<ol>
<li>He asks and encourages him to speak himself.</li>
<li>Caesar gave orders to the Helvetii that they are not to travel through the province.</li>
<li>Caesar did not order the Helvetii to travel through the province.</li>
<li>He persuaded the citizens to depart from his country.</li>
<li>Caesar will advise the chiefs/second line of soldiers not to join the battle.</li>
<li>He required them not to wage war with the Helvetii nor their allies.</li>
<li>I asked them not to set out.</li>
<li>I was unable to persuade them to stay at home.</li>
</ol>
</li>
<li>
<ol>
<li>Quis Caesarem iter facere iussit? Quis imperāvit Caesarī ut iter faceret?</li>
<li>Explorātōrēs perfidī eī persuāserunt ut primā lūce proficīscerētur.</li>
<li>Ab eō petent nē supplicium sūmat.</li>
<li>Postulāvit ut ad castra venīrent.</li>
<li>Eōs monuit ut omnia narrārent.</li>
</ol>
</li>
</ol>
=== § 373, p. 161 ===
<ol type="I" start="1">
<li>
<ol>
<li>Caesar feared that the punishment of prisoners would not be pleasing to the Gauls.</li>
<li>The Romans themselves feared greatly that the Helvetii would travel through the province.</li>
<li>They feared lest it would be possible to send enough grain supplies.</li>
<li>I fear that I am unable to sustain the enemy's attack.</li>
<li>He feared lest the baggage had been captured by the enemy.</li>
<li>Caesar never feared that the legions would be defeated.</li>
<li>The legionnaires were not afraid to fight.</li>
</ol>
</li>
<li>
<ol>
<li>Verēmur ut veniant.</li>
<li>Timēmus nē veniant.</li>
<li>Veritī sumus / verēbāmur nē vēnissent.</li>
<li>Timuimus / timēbāmus ut vēnissent.</li>
<li>Veritī sunt magnopere ut castra defendī possent.<br>
Verēbantur multum ut castra defendi possit.</li>
<li>Ferē / paene omnēs castra relinquere timēbant.</li>
</ol>
</li>
</ol>
=== § 374, p. 162 ===
{| class="wikitable"
|-
! rowspan=2 |
! colspan=2 | stem
! colspan=2 | active participle
! colspan=2 | passive participle
|-
|| ''present''
|| ''participial''
|| ''present''
|| ''future''
|| ''perfect''
|| ''future''
|-
| cūrō || cūrā- || cūrāt- || cūrāns || cūrātūrus || cūrātus || cūrāndus
|-
| iubeō || iubē- || iuss- || iubēns || iussūrus || iussus || iubēndus
|-
| sūmō || sūme- || sūmpt- || sūmēns || sūpmtūrus || sūmptus || sūmendus
|-
| iaciō || iace- || iact- || iaciēns || iactūrus || iactus || iaciendus
|-
| mūniō || mūni- || munit- || mūniēns || mūnitūrus || mūnitus || mūniendus
|}
=== § 375, p. 162/163 ===
{| class="wikitable"
|-
! rowspan=2 | verb
! colspan=4 | participle
|-
! | present active
! | future active
! | passive perfect
! | passive future
|-
| cōnor || cōnāns || cōnātūrus || cōnatus || cōnāndus
|-
| vereor || verēns || veritūrus || veritus || verēndus
|-
| sequor || sequens || secutūrus || secutus || sequendus
|-
| patior || patiēns || passurus || passus || patiēndus
|-
| hortor || hortāns || hortātūrus || hortātus || hortāndus
|}
=== § 378, p. 164 ===
<ol type="I" start="1">
<li>
<ol>
<li>A boy who was frightened fled in order that he would not be captured.</li>
<li>The eagle, aroused with anger, had tried to kill the other birds.</li>
<li>The soldiers who were hard pressed by the enemy were unable to throw (their) spears.</li>
<li>Caesar, about to praise the 10th legion, has advanced to the first line of the march(ing army).</li>
<li>The general, having encouraged the horsemen to fight bravely, gave the signal for battle.</li>
<li>The soldiers, having pursued the enemy for eight miles, returned to the camp with many prisoners.</li>
<li>By the sunrise many were killed. (The rising sun saw many killed.)</li>
<li>The Romans, suspicious of the foolhardy plan, did not join themselves with the barbarians.</li>
<li>A ship coming out of the port was in no danger.</li>
</ol>
</li>
<li>
<ol>
<li>Exercitus iter in hostium fīnibus faciēns in maximō perīculō erat.</li>
<li>Longitudine itineris/viae territī domum dēsīderābant.</li>
<li>Profecturī explōrātōrēs clāmōrēs victōriae audīvērunt.</li>
<li>Multōs diēs morātī aedificia incendimus profectīque sumus.</li>
<li>Rōmae vīvēns multō meliōrēs ōrātōrēs quam hōs audīvī.</li>
<li>Mīlitēs ultrā flūmen pugnāntēs nōbīs fortiōrēs nōn sunt.</li>
</ol>
</li>
</ol>
=== § 382, p. 166 ===
<ol type="I" start="1">
<li>
<ol>
<li>You (sg.) prefer, you (sg.) are unwilling, you (pl.) are willing, we are unwilling.</li>
<li>That he would be unwilling, that we would be willing, that he would prefer. </li>
<li>Be (sg.) unwilling, to be willing, to have been unwilling, to prefer.</li>
<li>He is willing, you (pl.) prefer, that he would have been unwilling, be (pl.) unwilling.</li>
<li>With the sun rising, the birds began to sing.</li>
<li>Having heard loud calls, the barbarians refused to advance.</li>
<li>With Caesar exhorting the legions, the soldiers fought a little more bravely.</li>
<li>When these matters were known, the Helvetii persuaded (their) neighbours to march with them.</li>
<li>With the works being completed, the soldiers asked Caesar to give them rewards.</li>
<li>When the assembly had been called together, the leaders responded accordingly.</li>
<li>With the leader tarrying for many days in the country of the Helvetii, he set fire to many villages.</li>
<li>When the number of the Germans was known, some of the Romans were afraid.</li>
<li>When the merchants were questioned, Caesar could not learn anything more.</li>
</ol>
</li>
<li>
<ol>
<li>Nōlēbat, nē mālint, voluērunt.</li>
<li>Māvīs, ut nōllent, volunt.</li>
<li>Volumus, māluerant, ut mālit.</li>
<li>Caesar rūmore audītō legiōnibus imperāvit ut celerius prōgrederentur.</li>
<li>Caesare duce iter facere volēbant.</li>
<li>Paucī, ā rūmōribus quōs audīverant territī, domī manēre māluērunt.</li>
<li>Iīs relictīs reliquī quam celerrimē festīnāvērunt.</li>
<li>Caesar negōtiō susceptō diūtius morāri nōlēbat.</li>
</ol>
</li>
</ol>
=== § 388, p. 168 ===
<ol type="I" start="1">
<li>
<ol>
<li>He becomes, he will become, that he may become, we were becoming.</li>
<li>I become, you (sg.) will become, that they might become, to become, they become.</li>
<li>You (pl.) will become, that we may become, you (sg.) become, we will become.</li>
<li>The soldiers were so slow that they did not arrive to the camp before night.</li>
<li>The sun makes everything beautiful.</li>
<li>Their methods were dangerous in order that no one might wish to depart.</li>
<li>The enemy's horsemen fought with our cavalry; however, in every direction our troops were superior.</li>
<li>The bravery of our soldiers caused that the enemy sustained not even one attack.</li>
<li>The men were so foolhardy that they couldn't be kept together in any way.</li>
<li>The distance was so small that the soldiers could not throw spears easily.</li>
<li>When that battle was finished, the barbarians were so thoroughly terrified that from the furthest tribes ambassadors were sent to Caesar.</li>
<li>That battle was fought in order that ambassadors would not be sent to Caesar.</li>
</ol>
</li>
<li>
<ol>
<li>Fīet, fīēbant, ut fiat.</li>
<li>Fit, fīet, fierī.</li>
<li>Fīunt, fīēbāmus, nē fīat.</li>
<li>Mīlitēs tam fortēs sunt ut superent.</li>
<li>Mīlitēs fortēs sunt ut vincant.</li>
<li>Mūnītiō ita/tam valida facta est ut capī nōn posset.</li>
<li>Mūnītiō fortis facta est nē capī posset.</li>
<li>Urbe captā oppidānī timēbant/timuērunt nē servī fierent.</li>
<li>Quae cīvitās/rēs pūblica tam infirma est ut sēsē/ipse dēfendere nōlit?</li>
</ol>
</li>
</ol>
=== § 389, p. 169 ===
=== § 394, p. 170 ===
<ol type="I" start="1">
<li>
<ol>
<li>In the forests of Germany there are many kinds of wild beasts which are not seen in other places.</li>
<li>There were two routes by which the Helvetii could depart their country.</li>
<li>There was no band of men, no town, no garrison which could defend itself with arms.</li>
<li>With all of grain seized, at home there was nothing to keep off death.</li>
<li>The Romans made Galba (their) leader and marched with greatest haste.</li>
<li>Neither was there in so large a crowd anyone who wished to tarry.</li>
<li>The Germans are not such as to fear Caesar's approach.</li>
<li>The consuls who wished to make him king were struck down.</li>
<li>With the peace confirmed, there was no one who was unwilling to give up arms.</li>
<li>Among the Helvetii who was more noble than him?</li>
</ol>
</li>
<li>
<ol>
<li>Rōmānī urbem suam Rōmam appellābant.</li>
<li>Urbs ā Rōmānīs Rōma vocāta est.</li>
<li>Cīvēs bonī eum rēgem creāre cupiēbant. (The better parts of the society were bonī, not meliōrēs or optimī -- cf. [http://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.04.0059%3Aentry%3Dbonus Lewis & Short], for example.) </li>
<li>Mīles fortis nōn erat vir quī fugeret.</li>
<li>Nēmō erat quī mē amīcum appellāret.</li>
<li>Hī non sunt virī quī amīcōs suōs trādant.</li>
<li>Erant quī eum omnium fortissimum nōminārent.</li>
</ol>
</li>
</ol>
=== § 400, p. 172 ===
<ol type="I" start="1">
<li>
<ol>
<li>At the time of our fathers the Helvetii had departed their country and they had put the consul's army to flight.</li>
<li>When Caesar came to Gaul, the Helvetii were attacking other domains.</li>
<li>Although Caesar was in the nearer (parts of) Gaul, yet he was kept informed of the plans of the Helvetii.</li>
<li>Because the Helvetii were most notorious in war, Caesar refused to let them march through the province.</li>
<li>When the lieutenant (had) heard these things, he informed Caesar.</li>
<li>Because the leaders exchanged hostages, the Romans prepared for a war.</li>
<li>Caesar, when it was made known, hastened to depart from the city.</li>
<li>In courage the Gauls were not at all equals to the Germans.</li>
<li>Caesar was weak neither in body nor in spirit.</li>
<li>That war began when Caesar was a consul.</li>
</ol>
</li>
<li>
<ol>
<li>Illud proelium fiēbat tum cum Rōmae eram.</li>
<li>Equitēs cum numerō paucī essent, tamen terga nōn vertērunt.<br>
Cum equitēs paucī multitūdine essent, tamen nōn sē recēpērunt.</li>
<li>Cum castra satis munita essent, hostēs domum revertērunt/reversī sunt.</li>
<li>Cum gentēs inter sē obsidēs dent, Caesarem dē eō certiōrem faciēmus.</li>
<li>Germānī et Gallī linguā legibusque dissimillimī sunt.</li>
</ol>
</li>
</ol>
=== § 403, p. 174 ===
=== § 411, p. 176 ===
<ol type="I" start="1">
<li>
<ol>
<li>When Caesar was waging the war in Gaul, he favoured mostly the soldiers of the 10th legion because they were the most experienced in the matters of war.</li>
<li>He employed the allies to take care of the grain supplies.</li>
<li>The ambassadors came not only to listen but also to speak.</li>
<li>The general ordered the scouts to find a spot suitable for fortifying.</li>
<li>Recently these tribes were eager for a revolution; soon I will persuade them so that they surrender themselves and all their property to Caesar.</li>
<li>To command is the queen's and to obey is the crowd's.</li>
<li>The battle having been fought, some of the enemy came to ask for peace.</li>
<li>There were (some) who were unwilling to give up arms.</li>
<li>The enemy advanced so swiftly that no opportunity for throwing spears at them was given.</li>
<li>There was time neither for taking up arms nor for the seeking of help.</li>
</ol>
</li>
<li>
<ol>
<li>Haec ornāmenta Cornēliae sunt.</li>
<li>Reī mīlitārīs perītissimī ad urbem capiendam missī sunt.</li>
<li>Explōrātōrēs collem idōneum mūniendō proximum fluviō invēnērunt.</li>
<li>Mox equitātus commeātūs quaerendī causā veniet.</li>
<li>Animus Gallōrum rēbus novīs bellīsque sūmendīs studet.<br>
Mens Gallōrum novīs rēbus et bellum sūmere studet.</li>
<li>Ducis est aciem dūcere.</li>
<li>Cui negōtium reī frūmentāriae cūrandae dabimus?</li>
</ol>
</li>
</ol>
=== § 422, p. 180 ===
<ol type="I" start="1">
<li>
<ol>
<li>He goes, we go, go (pl.)!, to go.</li>
<li>For the one going, to have gone, they will go, they go.</li>
<li>Of going, that they would go, you (pl.) will go, you (sg.) go.</li>
<li>Lest they would have gone, go (sg.)!, they were going, he had gone.</li>
<li>Caesar learned through scouts that the Gauls had crossed the river.</li>
<li>The Romans heard that the Helvetii would go forth from their territory at the beginning of summer.</li>
<li>The ambassadors responded that no one before Caesar had visited that island.</li>
<li>The leaders of the Gauls say that they will not begin any plan against Caesar's command.</li>
<li>We think that the power of the queen is greater than citizens'.</li>
<li>The Romans deny that they will take away the freedom of the Gauls.</li>
<li>These things having been known, we felt that the ambassadors hadn't come to seek peace.</li>
<li>The Helvetii know that the Romans remember the previous victories.</li>
<li>When the allies perceived that many were wounded, they decided to return to their own territory.</li>
<li>Someone announced that Marcus was made a consul.</li>
</ol>
</li>
<li>
<ol>
<li>Puer tardus est. Dīcit puerum tardum esse, fuisse, futūrum esse.</li>
<li>Equus validus est, fuit, erit. Iūdicāvit equum fortem esse, fuisse, futūrum esse.</li>
<li>Arbitrāmur exercitum dē castrīs initā aestāte exitūrum esse.</li>
<li>Postrīdiē eius diēī per explōrātōrēs cognōvimus oppidum hostium passuum decem mīlia abesse.<br>
Gildersleeve's Latin Grammar mentions: "With '''abesse''' and '''distare''', an abl. of measure may also be used[.]"</li>
<li>Rēx respondit ōrnāmenta rēgīnae esse.</li>
</ol>
</li>
</ol>
=== § 428, p. 182 ===
<ol type="I" start="1">
<li>
<ol>
<li>Carry (sg.)!, they will carry, that they'd carry, they are carrying.</li>
<li>Carry (pl.)!, that they'd have carried, to have carried, they had carried.</li>
<li>We carried, carrying, to have been carried, to carry.</li>
<li>When the ships were approaching the island, the barbarians, stirred by fear, tried to retreat.</li>
<li>The Gauls were annoyed at the Romans for laying waste their fields.</li>
<li>Caesar ordered (his) allies not to make war upon their neighbours.</li>
<li>The scouts, who ran up to Caesar, told that the enemy's army, exhausted because of the wounded, had gathered to another location.</li>
<li>The enemy knew that the Romans lacked grain and that this matter would put Caesar in great peril.</li>
<li>With the baggage being gathered in one place, some of the soldiers crossed the river that wasn't too far away.</li>
<li>The king exhorted them to go to the oracle and report to him the things heard (there).</li>
<li>Whom did the general put in command of that legion? Publius was in charge of that legion.</li>
<li>When Caesar was in Cisalpine Gaul, numerous reports were brought to him and he was also informed by letter that the Gauls were exchanging hostages.</li>
</ol>
</li>
<li>
<ol>
<li>Gallī sociīs Caesaris bellum īnferent.</li>
<li>Gallōs audīvimus sociīs Caesaris bellum īnlāturōs esse.</li>
<li>Publius illī proeliō nōn interfuit.</li>
<li>Certiōrēs factī sumus Publium illī proeliō nōn interesse.</li>
<li>Vir qui equitātuī praeerat vulneratus est et pedem referre incēpit.</li>
<li>Caesar ad calamitātem exercituī īnferendum tē illī cohortī nōn praefēcit.</li>
</ol>
</li>
</ol>
=== § 434, p. 184 ===
<ol type="I" start="1">
<li>
<ol>
<li>The king asked what the ambassadors desired and why they had come to him.</li>
<li>He too asked didn't they remember the recent injuries and the uncertain friendship of the Romans.</li>
<li>Do you see which towns the enemy has besieged?</li>
<li>Don't you know why the Gauls united their troops at the foot of the mountain?</li>
<li>We heard that the Germans had inflicted injuries upon you.</li>
<li>About the third watch the general sent men who were to find out the mountain's character.</li>
<li>The orator spoke on behalf of them and asked why the consuls would wish to send ships to a place of numerous,
grave hazards.</li>
<li>The ambassadors having been called together, he showed what he wished to be done.</li>
<li>A messenger reported back what had been said about giving up arms at the Gauls' meeting.</li>
<li>I advise you not to lead the foot soldiers and the cavalry across the river in the future.</li>
</ol>
</li>
<li>
<ol>
<li>Quem collem occupāvērunt? Videō quem collem occupāverint.</li>
<li>Quis hās iniūriās clientibus nostrīs intulit?</li>
<li>Quaesīvērunt quis illās iniūriās clientibus suīs intulisset.</li>
<li>Quō dē tertiā vigiliā ībās/īstī? Scis quō ierim.</li>
<li>Quō tempore puerī domum rediērunt? Quaeram quō tempore puerī domum redierint.<br>
There is nothing wrong about using ''quotā hōrā'', but ''Latin for Beginners'' doesn't introduce that idiom.</li>
</ol>
</li>
</ol>
=== § 439, p. 186 ===
<ol type="I" start="1">
<li>
<ol>
<li>He asked why those troops were left behind. They responded that those troops are for protection of the camp.</li>
<li>Caesar sent scouts to choose a place for a camp.</li>
<li>Everyone reckoned that just the name of Caesar will be a great dread for the Gauls.</li>
<li>At the daybreak the same army joined the violent battle, but their severe wounds were of great trouble for the general.</li>
<li>The king replied that the friendship of (the people of) Rome ought to be a badge of honour and aid for himself.</li>
<li>Who had the charge of the cavalry which the allies sent for aid to Caesar?</li>
<li>To some prosperity is for the greatest disaster and misfortune of a great advantage.</li>
<li>(Having) to fight was for a great hindrance for the Gauls because the cavalry were pressing hard on the(ir) right flank.</li>
<li>For us the memory of recent victories was no less useful than the enemy's fear. </li>
<li>The forest was so thick that they could not advance.</li>
</ol>
</li>
<li>
<ol>
<li>Tibi suādeō ut cōnsilium bellī gerendī cum Gallīs fortibus omittās.</li>
<li>Scīsne ubi equitātus locum castrīs dēlēgerit?</li>
<li>Metus hostium magnō tibi ūsuī erit.</li>
<li>Caesar trēs cohortēs praesidiō impedīmentīs relīquit.</li>
<li>Hieme flūctūs lacūs tam magnī sunt ut magnō impedīmentō navibus sint.</li>
<li>Caesar dē eīs quī aedificia publica incendērunt grave supplicium sūmpsit.</li>
</ol>
</li>
</ol>
=== § 447, p. 188 ===
<ol type="I" start="1">
<li>
<ol>
<li>The soldiers built a ditch ten feet deep through their territory.</li>
<li>The leader of the Helvetians, a man of greatest courage, gave his sisters in marriage to leaders of the neighbouring tribes.</li>
<li>He wished to strengthen the alliance of those, in order that they'd more easily make war upon the Romans.</li>
<li>The Germans and the Gauls weren't of the same tribe.</li>
<li>Nearly all Germans were men with large bodies.</li>
<li>The Gauls, who were defending the town bravely, were throwing large rocks down from the city walls.</li>
<li>When Caesar asked the scouts who inhabited that town, the scouts responded that the inhabitants were men of the highest courage and with great determination.</li>
<li>On the left side ramparts twenty feet high and on the right side a river of great depth protected the town. </li>
<li>When Caesar (had) arrived in Gaul, there was the rumour that the Helvetii intended to march through the Roman province.</li>
<li>Caesar, in order to keep them away from the Roman territory, constructed a many-miles-long fortification.</li>
</ol>
</li>
<li>
<ol>
<li>Caesar imperātor multī cōnsilī magnaeque audāciae erat, atque reī mīlitāris perītissimus.</li>
<li>Germanī magnīs corporibus erant et Rōmānōs nūllam potestātem habēre putābant.</li>
<li>Virī summā virtūte in castrīs praesidiō impedīmentīs relictī sunt.</li>
<li>Fīlia rēgis, quae prīncipī cīvitātis fīnitimae in mātrimōnium data est, mulier pulcherrimae formae erat.</li>
<li>Mīlitēs fossam novem pedum circum castra perdūcent.</li>
<li>Flūmen ingente lātitūdine inter nōs et hostēs erat.</li>
</ol>
</li>
</ol>
=== § 452, p. 190 ===
<ol type="I" start="1">
<li>
<ol>
<li>The soldiers whom we saw said that the command of war was Caesar's, the general's.</li>
<li>The Helvetii decided to collect as many horses and carts as possible.</li>
<li>Of all Gaul the Helvetii were the strongest.</li>
<li>Fighting went on fiercely for many hours, and no one was able to see the enemy fleeing.</li>
<li>The very brave men pursued the enemy for ten miles.</li>
<li>Caesar persuaded the Roman people to make him a consul.</li>
<li>A victory of the army was always most pleasing to the general.</li>
<li>They marched for three days and reached Geneva, a town of the enemy.</li>
<li>Caesar heard that the Germans had made war upon the Gauls.</li>
<li>The soldiers were of great advantage to Caesar because they had been employed in prior battles by himself.</li>
</ol>
</li>
<li>
<ol>
<li>Ūnus ē fīliīs rēgis multīque hominis suī captī sunt.</li>
<li>Nēmō erat quī illam rēgīnam creāre vellet.</li>
<li>Rēs frūmentāria Caesarī imperātōrī semper cūrae erat.</li>
<li>Castra exīstimō decem mīlia passuum abesse.</li>
<li>Iter per silvam densissimam trēs hōrās fēcimus.</li>
<li>Cōnsilium bellī sociīs īnferendī regī nōn grātum erat.</li>
<li>Cum collem pervenīret eum vallō duodecim pedum mūnīvit.</li>
</ol>
</li>
</ol>
=== § 454, p. 191 ===
<ol type="I" start="1">
<li>
<ol>
<li>The Gauls, having occupied the higher ground, tried to keep the army from marching.</li>
<li>All of the townsfolk, having come out of the town, began to seek safety by fleeing (flight).</li>
<li>Caesar himself shows that the soldiers are more dear (to him) than the keeping of his own life safe.</li>
<li>Since he had arrived by everyone's opinion swiftly, the enemies sent hostages to him.</li>
<li>The village, situated in the valley, is protected with very high mountains in every direction.</li>
<li>This tribe excelled many tribes among Gauls both in bravery and in the number of men.</li>
<li>On the second watch they left the camp with no proper order nor command.</li>
<li>Having left two legions in Geneva, the next day he set out towards home with the rest.</li>
<li>There were two routes which the Helvetii could set out from their lands.</li>
<li>The king was very bold and (his) influence among the people was great.</li>
<li>The Gauls, stirred by the fear of slavery, were getting ready for war.</li>
<li>Caesar advises the lieutenants to restrain the soldiers, lest they'd advance too far because of their eagerness to fight or because of the hope of plunder.</li>
<li>A very violent war was waged by Caesar against the Gauls.</li>
</ol>
</li>
<li>
<ol>
<li>Legātus monte occupatō suōs ā proeliō continuit.</li>
<li>Omnēs Gallī inter sē legibus differunt.</li>
<li>Haec gēns reliquōs virtūte valēbat.</li>
<li>Ea via decem mīlibus passuum brevior istā est.</li>
<li>Caesar bellum in Galliā aestāte gessit, hieme in Itāliam revertit.</li>
<li>Mediā nocte imperātor cum tribus legiōnibus ē castrīs profectus est.</li>
<li>Vereor ut ab eīs hostibus tē dēfendere possīs.</li>
<li>Hōc proeliō cōnfectō, omnēs Gallī pacem cōnfīrmavērunt.<br>
Hōc proeliō cōnfectō, pax ab omnibus Gallīs facta est.</li>
</ol>
</li>
</ol>
=== § 459, p. 193 ===
<ol type="I" start="1">
<li>
<ol>
<li>Caesar, when he had arrived, encouraged the soldiers lest they would give up the plan of seizing the town.</li>
<li>The king, after pitching camp near the town, sent scouts to learn where the Roman army was.</li>
<li>No one who was able to bear arms was left behind.</li>
<li>The messengers saw that a vast number of armour had been thrown down from the walls into the trench.</li>
<li>The commander ordered his men to cross the river. However, the crossing of the river was most difficult.</li>
<li>Though the Romans were annoyed by this defeat, they still refused to flee.</li>
<li>When this rumour was heard, such a terror seized everyone's mind that not even the bravest were willing to join the battle.</li>
<li>There were those who reckoned that the time of the year was not suitable for marching.</li>
<li>So fiercely were they engaged from both flanks that many thousands of men were killed.</li>
<li>What do you fear? I fear that the Romans plan to subdue all of Gaul and to inflict wrongs upon us.</li>
</ol>
</li>
<li>
<ol>
<li>Nōnne vidēs quī in mūrō stet?</li>
<li>Audīmus cōnsilium oppidī capiendī omissum esse.</li>
<li>Germānīs cum in animō sit Rōmānōs Rhēnum trānsīre nōn posse, Caesar pons aedificārī iussit.</li>
<li>Ponte confectō, barbarī tam perterritī erant ut sēsē abderent.</li>
<li>Veritī sunt nē Caesar eōs cōnsequeretur.</li>
<li>Caesar ā mercātōribus quaesīvit quae magnitūdō īnsulae esset.</li>
<li>Mercātōrēs eī suāserunt nē marem trānsīret.</li>
<li>Explōrātōrēs ad locum castrīs dēligendum praemīsit.</li>
</ol>
</li>
</ol>
== Reviews ==
=== § 502, p. 265 ===
=== § 503, p. 266 ===
=== § 504, p. 266 ===
* A Latin word has as many syllables as it has vowels and diphthongs.
* Latin words are divided into syllables as follows:
# A single consonant between two vowels goes with the second (e.g. fa-ci-li-us).
# In a combination of two or more consonants a consonant followed by a liquid (l or r) goes with the liquid (e.g. pu-bli-cus, pe-re-gri-nus) unless the combination contains a prepositional compound or a double liquid (ll or rr); otherwise the first consonant of the combination goes with the preceding vowel (e.g. ab-rum-po, hos-tis, fer-rum).
* The ultima is the last syllable of a word (e.g. cus in ba-si-lis-cus is the ultima).
* The penultima is next to the last syllable of a word (e.g. lis in ba-si-lis-cus is the penultima).
* The antepenultima is the syllable before the penultima (e.g. si in ba-si-lis-cus is the antepenultima).
* A syllable is short if it ends with a short vowel.
* A syllable is long if it contains either a dipthong or a long vowel (e.g. poe in poe-ta is a long syllable and tā in aes-tā-te is a long syllable), or if it ends with a consonant followed by another consonant (e.g. lis in ba-si-lis-cus is a long syllable).
* Words with less than three syllables are accented on the first syllable, and the words with more than two syllables are accented on the penultima if it is long, otherwise the accent rests on the antepenultima.
* The subject is a noun about which something is said.
* The predicate is what is said about the subject, and it contains at least a verb and possibly modifiers of the verb.
* The object is the what is being acted upon or affected by the subject.
* The copula -- ie. the verb to be -- is a verb which connects the subject of a sentence with one or more modifiers.
* Inflection is the change of forms of words indicating a change in meaning or sense.
* Declension is inflection of nouns.
* Conjugation is inflection of verbs.
* -t, -nt
* The form of a noun shows the number and case.
* The cases of Latin are: nominative, genitive, dative, accusative, ablative, and vocative (a few exceptions have the locative case).
* For the subject the nominative case is used.
* For the direct object the accusative case is used.
* For the possessor the dative case (the dative of possessor) is used.
* By the dative case is expressed the relations conveyed by the English prepositions to, towards, and for when the relation is not one of physical motion (e.g. she was pleasant to the horse would be expressed by the dative case in Latin).
* The indirect object of a verb is in the dative case.
* Questions are answered by repeating the verb (and other essential words) in the answer.
* A predicative adjective is an adjective which is part of the predicate of a sentence ie. a predicative adjective is linked with the noun it describes by a verb (e.g. ''magna'' in ''nāvis magna est'' is a predicative adjective).
* An attributive adjective is an adjective directly related to a noun, without a connecting verb (e.g. ''magna'' in ''nāvis magna natat'' is an attributive adjective).
* Words are in agreement when they agree in one or more grammatical aspects. For example, a verb agrees with its subject: nautae pugnant -- sailors fight, nauta pugnat -- a sailor fights.
* The adjectives agree in gender, number, and case with the nouns they describe.
* The ablative case of Latin expresses the same relations as the English prepositions from, with or by, and in or at.
* A possessive pronoun usually follows the noun it describes (e.g. ''fīlia mea'' -- my daughter), and when it doesn't this means the possession is meant to be more emphatic in the sentence (e.g. ''mea fīlia'' -- <u>my</u> daughter).
* A modifying genitive usually follows the noun it describes (e.g. ''fīlia rēgīnae''); when placed in front of the noun a modifying genitive becomes more emphatic (e.g. ''<u>rēgīnae</u> fīlia'')
* A modifying adjective usually follows the noun it describes, unless a more emphasis is desired (e.g. normally ''fīlia bona'' instad of the more emphatic ''bona fīlia'').
* The base is the part of a word which does not change when the word is inflected.
* The grammatical gender is a gender ascribed to a noun apart from the real sex or gender (e.g. poeta, a poet, is a masculine noun, regardless of the gender or a sex of the person writing or performing a poem).
* Nouns belonging to the first declension are feminine unless they denote males. E.g. ''alga'' (seaweed) is feminine, but ''nauta'', sailor is masculine.
* The general principles of the Latin word order is to put the most important word or words, usually the subject, at the beginning of a sentence, followed by its modifiers, an indirect object, a direct object, and at the end of a sentence an adverb, if any, and the (main) predicate verb. Often the Latin word order is subject - modifiers of the subject - indirect object - object - adverb - verb.
=== § 505, p. 267 ===
=== § 506, p. 267 ===
=== § 507, p. 268 ===
=== § 508, p. 268 ===
* Latin has five declensions.
* The (grammatical) gender, number, and case of a noun has to be known before it can be declined.
* The nominative, accusative, and vocative cases of neuter nouns are alike, and in plural they end with -a.
* The plural dative and accusative cases of all nouns are alike.
* In the singular of the second declension when the nominative ends with -us.
* A predicate noun is a noun used in the predicate of a sentence. E.g. "husband" in "Mark is a husband", "conjunx" in "Mārcus conjunx est".
* The predicate noun agrees with the subject.
* An appositive is a noun which explains or names another noun. E.g. "husband" in "Mark, the husband, is treacherous.", "conjunx" in "Mārcus conjunx perfidus est".
* The appositive agrees with the noun it explains.
* Whether a noun in -er is declined like ''puer'' or ''ager'' is determined by looking at the genitive singular form, which displays the base.
* -
* To determine whether an adjective in -er is declined like ''līber'' or ''pulcher'' is determined by looking at the nominative singular of the feminine, which shows the base.
* In ''nauta bonus'' the adjective agrees in (grammatical) gender, number, and case with the noun, whereas in ''nauta bona'' the adjective does not agree in (grammatical) gender with the noun it describes.
* The Latin possessive pronouns are: ''meus'', ''tuus'', ''suus'', ''noster'', and ''vester''.
* The Latin possessive pronouns are declined like the adjectives in the first and second declension.
* The possessive pronouns agree with the thing possessed in (grammatical) gender, number, and case.
* ''Vester'' is used when there are multiple possessors, and ''tuus'' is used when there is only one possessor.
* Because ''suus'' regularly refers back to the subject.
* The non-reflexive possessive of the third person is the genitive of ''is''; in singular ''eius'' and in plural ''eorum''/''earum''/''eorum''.
* In Latin possessives are omitted when the meaning of a sentence is clear without them. When a possessive is used in a sentence, it's often meant for added emphasis. E.g. ''Mārcus servum flagellāvit.'' when Mark is teaching a slave to behave, and ''Mārcus servum suum flagellāvit.'' when Mark is flogging a slave he owns (e.g. after finding out he's not the only perfidious party in his marriage).
* The four uses of the ablative case corresponding the use of "with" in English are: Denoting causality, means, accompaniment, and manner.
* An example of the ablative of manner: ''Mārcus <u>magnō cum studiō</u> cucurrit.'' or ''Mārcus <u>magnō studiō</u> cucurrit.'' (Mark's wife preferred the flogged slave over Mark, and she gave him his sword too.)
* An example of the ablative of cause: ''Mārcus dēfessus inopiā aquā est.'' (Running left Mark quite exhausted because he had nothing to drink.)
* An example of the ablative of means: ''Mārcus pedibus suis cucurrit.'' (Lacking a horse, Mark had no other option but to run with his own feet.)
* An example of the ablative of accompaniment: ''Marīta Mārcī cum servō habitat.'' (Since Mark didn't dare to return, his wife can lives happily in marriage with the freedman who once got flogged.)
* The ablative of accompaniment regularly has ''cum''.
* The ablative of manner sometimes has ''cum''.
* The ablative of cause and the ablative of means never have ''cum''.
* The nine pronominal adjectives are: alius/alia/aliud (other of many), alter/altera/alterum (other of two), neuter/neutra/neutrum (neither of two), nūllus/nūlla/nūllum (none), sōlus/sōla/sōlum (only), tōtus/tōta/tōtum (every), ūllus/ūlla/ūllum (any), ūnus/ūna/ūnum (one), uter/utra/utrum (which of two).
* -
* -
* ''Is'' as a demonstrative adjective or pronoun is used for the English personal pronoun he/she/it.
* ''Is'' is also used, in the genitive case, as the third person possessive pronoun.
=== § 509, p. 269 ===
=== § 510, p. 269 ===
=== § 511, p. 270 ===
=== § 512, p. 270 ===
* A mood indicates the manner of the action of a verb. For example, something may be stated as a fact or as a wish.
* Indicative, subjunctive, imperative, and infinitive.
* The indicative mood is used when making a statements of fact or asking questions about something assumed as a fact.
* Present, future, imperfect, perfect, pluperfect, and future perfect.
* The personal endings of verbs indicate the person and number of a verb, whereas in English this is usually indicated with a noun or a personal pronoun. E.g. ''Nautae pugnant''. vs. The sailors are happy and they fight.
* -m/-ō, -s, -t, -mus, -tis, -nt.
* Sum, es, est, sumus, estis, sunt; Eram, erās, erat, erāmus, erātis, erant; Erō, eris, erit, erimus, eritis, erunt.
* In Latin there are four regular conjugations.
* Each of the conjugations have a distinguishing vowel, which is easiest to spot from the present infinitive. E.g. the present infinitive of the first conjugation has the ending -āre, the second conjugation the ending -ēre, etc.
* The present stem is found by dropping -re from the present infinitive.
* The present, future, and imperfect tenses.
* The tense sign of the imperfect is -bā-.
* The imperfect is used when describing habitual or continuous action in the past or when describing conditions of affairs or situations in the past.
* The tense sign of the future in the first two conjugations is -bi-.
* The tense sign of the future in the third and fourth conjugation is -e-.
* A vowel is always short before -nt and a final -m/-t.
* I fight, I am fighting, I do fight.
* -
* The present indicative 1st person singular, the present indicative 3rd person plural, and all forms of the imperfect and the future.
* All the rest (see the previous answer).
* The dative is used with adjectives to denote the object toward which the given quality is directed. E.g. equus grātus est puerō.
* Crēdo, crēdere, crēdidī, creditum; faveō, favēre, fāvī, fautum; noceō, nocēre, nocuī, nocitum; pāreō, pārēre, pāruī, pāritum; persuādeō, persuādēre, persuāsī, persuāsum; resistō, resistēre, restitī, -; studeō, studēre, studuī, -.
* The imperative mood expresses commands.
* The present active imperative in singular is identical to the present stem.
* The present active imperative in plural is formed by adding -te to the present stem.
* Dīcō: dīc; Dūcō: dūc; Faciō: fāc;
* Portō: portā, portāte; Dēleō: dēlē, dēlēte; Agō: age, agete; Faciō: fāc, facete; Mūniō: mūnī, mūnīte.
=== § 513, p. 271 ===
=== § 514, p. 272 ===
=== § 515, p. 272 ===
=== § 516, p. 273 ===
* -r, -ris, -tur, -mur, -minī, -ntur.
* The -r is sometimes called the passive sign because it occurs in all but one of the personal endings of the passive voice.
* -ā, -ē, -e, -ī.
* The principal parts of a verb are the present infinitive first person singular, the present active infinitive, the perfect active indicative first person singular, and the perfect passive participle.
* The three conjugation stems are the present stem, the perfect stem, and the participial stem.
* The present stem can be found by dropping -re from the present active infinitive; the perfect stem can be found by dropping -ī from the perfect active indicative first person singular; and the participial stem can be found by dropping -us from the perfect passive participle.
* The tenses of the indicative are present, future, imperfect, perfect, pluperfect, and future perfect.
* The tenses of the infinitive are present, future, and perfect.
* The present.
* From the present stem the following forms are built: present active indicative, imperfect active indicative, future active indicative, present passive indicative, imperfect passive indicative, and future passive indicative.
* From the perfect stem the following forms are built: perfect active indicative, pluperfect active indicative, and future perfect active indicative.
* From the participial stem the following forms are built: perfect passive indicative, pluperfect passive indicative, and future perfect passive indicative.
* The personal endings of the perfect active indicative are: -ī, -istī, -it, -imus, -istis, -ērunt (-ēre)
* The tense sign for pluperfect active indicative is -erā-.
* The tense sign for future perfect active indicative is -eri- (1st person singular -erō).
* The present active infinitive is the second of the principal parts of a verb.
* The present passive infinitive is formed from the present stem by adding -rī.
* The present active imperative in singular is the present stem and in plural it's formed by adding -te to the present stem.
* The present passive imperative in singular is formed by adding -re to the present stem and in plural it's formed by adding -minī to the present stem.
* The perfect active infinitive is formed by adding -isse to the present stem, e.g. ''laudāvisse''.
* The perfect passive infinitive is formed by combining the perfect passive participle with the infinitive of sum, e.g. ''laudātus esse''.
* The future active infinitive is formed by combining the participial stem with the future active participle with the infinitive of sum, e.g. ''laudātūrus esse''.
* A participle is partly verb and partly adjective, thus it has a tense and voice, yet it is declined and agrees with it's main word in number, gender and case.
* The participles in -us are declined like the adjectives of the second declension-
* The participle agrees with the noun it modifies in case, gender, and number, e.g. ''laudātī nautae'' - the praised sailors.
* The passive forms of the perfect, pluperfect, and future perfect are formed by using sum as an auxiliary verb with the perfect passive participle.
* -
* The separative ablative is used with verbs expressing separation or deprivation.
* The place from which is expressed in Latin with ''ā/ab'', ''dē'', ''ē/ex'' and ablative, e.g. ''nautae ab oppidō veniunt''.
* Words expressing separation or deprivation require an ablative to complete their meaning.
* The word expressing the person from whom an action starts, when not the subject, is put in the ablative with the preposition ''ā/ab''.
* The ablative of means is never accompanied by a preposition where as the ablative of personal agent is always accompanied with the preposition ''ā/ab''.
* The perfect definite denotes a completed action at a definite point in time.
* The perfect indefinite denotes a completed action at some, but not definite, point in time.
* The difference between the imperfect and the perfect indefinite is that the imperfect describes situations and circumstances in a narrative whereas the perfect indefinite marks forward steps in a narrative.
* The accusative and the ablative can be governed by a preposition in Latin.
* The prepositions governing the ablative: ''ā/ab'', ''cum'', ''ē/ex'', ''dē'', ''in'', ''prō'', ''sine''.
* When governing the ablative, the preposition ''in'' means in or on, e.g. ''in mensā'' - on the table, ''in casā'' - in the hut.
* When governing the accusative, the preposition in means to, into or against, e.g. ''in casam'' - into the hut.
* The three interrogatives used to introduce yes-and-no questions are: ''-ne'', ''nōnne'', and ''num''.
* Questions introduced with ''-ne'' makes no assumptions about the answer, ''nōnne'' expects the answer yes, and ''num'' expects the answer no.
* An affirmative answer may simply repeat the main verb of the question or use ''ita'', ''vērō'', ''certē'' (e.g.) for yes and ''nōn'', ''minimē'' (e.g.) for no.
* ''Ubi'' can be used as an interrogative pronoun for where or when, and it can also be used as a relative pronoun for where or when.
=== § 517, p. 273 ===
=== § 518, p. 274 ===
=== § 519, p. 275 ===
* -
* An infinitive is a verbal noun.
* In Latin the infinitive is used, like in English,
# to form an object clause to complement certain verbs of wishing, commanding, forbidding, etc. (e.g. She is forbidden ''to walk''.);
# as a complementary infinitive to complete the meaning of verbs of incomplete predication (e.g. She is able ''to run''.); and
# as a proper noun, when used in as the subject of a sentence or as a predicative nominative (e.g. She loves ''to run''.)
* The case of the subject of the infinitive in Latin is accusative.
* Certain verbs, verbs of incomplete predication, don't express a predication without a complementary verb, and such verbs require a ''complementary infinitive'' to complete their meaning. E.g. ''Cornelia <u>currere</u> potest'', without ''currere'' the sentence would lack meaning.
* The case of happy in the sentence "The bad boy cannot be happy." (''Malus puer esse bonus non potest.'') is nominative.
* A predicative adjective completing a complementary infinitive agrees in gender, number, and case with the subject of the main verb.
* -
* A relative pronoun must agree with its antecedent in gender and number, but it's case is determined by the way it is used in its own clause.
* The interrogative can be used as an interrogative pronoun or as an interrogative adjective.
* -
* The base of a noun is the part to which the case endings are added.
* The stem of a noun is formed from the base by adding the stem vowel, e.g. ''rīpa'' has the base of ''rīp'' and the stem of ''rīpā'', ''catulus'' has the base of ''catul'' and the stem of ''catulo''.
* Yes, the stem and the base of a noun can be identical. The consonant stems in the third declension have identical bases and stems, e.g. ''cōnsul'' is the base and the stem.
* In Latin there are five declensions of nouns.
* The Latin declensions are:
# The first or ā-declension.
# The second or o-declension.
# The third or i-declension.
# The fourth or u-declension.
# The fifth or ē-declension.
* The nouns of the third declension have either an i-stem and a consonant stem.
* The consonant stems are divided into stems which add -s to the base when forming the nominative singular and the stems which add no termination to the nominative singular.
* The stem ''lapid'' yields the base ''lapis'' because a final -d or -t of the stem is dropped before -s; the stem ''mīlit'' results the base ''mīles'' because a final -t is dropped before -s and the -i is changed to -e in the nominative; the stem ''rēg'' produces the base ''rēx'' because a final -c or -g unites with a final -s, forming -x instead.
* Nouns in -ēs, -is, -ns, -rs, -e, -al, and -ar have i-stems.
* The peculiarities of the i-stems in the third declension are: Masculines and feminines end with -ium in the genitive plural and with -īs, instead of -ēs, in the accusative plural; the neuters end with -ī in the ablative singular and have -i- in each of their plural forms.
* Caedēs, cliēns, hostis, turris, urbs.
* Turris, turris, turrī, turrem, turre (turrī); turrēs, turrium, turribus, turrīs, turribus.
* The rules for gender in the third declension:
# Words denoting males are masculine and words denoting female are feminine as usual.
# Nouns in -or, -ōs, -er, and -es are masculine; except ''arbor'' (f.) and ''iter'' (n.).
# Nouns in -ō, -is, -x, and -s preceded by a consonant or any long vowel except -ō are feminine; except masculines ''collis'', ''lapis'', ''mēnsis'', ''ōrdō'', and ''pēs''; the four monosyllables ''dēns'', ''fōns'', ''mōns'', and ''pōns''; and nouns in -nis and -guis (e.g. ''ignis'', ''sanguis'').
# Nouns in -e, -al, -ar, -n, -ur, and -us are neuter; ''caput'' is also neuter.
# -
=== § 520, p. 275 ===
=== § 521, p. 275 ===
=== § 522, p. 277 ===
=== § 523, p. 277 ===
* Latin adjectives are declined by the first, second, and third declension.
* Nearly all adjectives of the third declension have i-stems.
* Adjectives of the third declension are divided into:
# Adjectives of three endings,
# adjectives of two endings, and
# adjectives of one ending.
* Adjectives in ''-er'' have three endings, those in ''-is'' have two endings, and the rest have one ending.
* -
* The nominative endings in the fourth declension is ''-us'' for masculines and ''-ū'' for neuters.
* By exception feminines are ''domus'', ''manus'', and a handful of others.
* -
* The place <u>to which</u> is expressed by ''ad'' or ''in'' with the accusative; the place <u>from which</u> is expressed by ''ā''/''ab'', ''dē'', ''ē''/''ex'' with the (separative) ablative; the place <u>in which</u> is expressed by ''in'' with the ablative.
* The names of towns and small islands as well as ''rūs'' all omit the prepositions in expressions of place. E.g. ''Agamemnon Spartam properat.'' -- Agamemnon hurries to Sparta; ''Ulixes Ilio Aeaeae maturat.'' -- Odysseus hurries from Troy to the island Aeaea.
* The locative case expressed the place relation -- expressed in English by the prepositions at and in -- formerly in Latin.
* The singular of names of towns and small islands belonging to the first or second declension have a locative case.
* The form of locative case is identical to the genitive singular.
* ''Galba domī habitat.'', ''Galba Rōmae habitat.'', ''Galba Pompēiīs habitat.''
* The gender of nouns of the fifth declension is feminine, except for ''diēs'' and ''merīdiēs''.
* ''Diēs'', ''diēī'', ''diēī'', ''diem'', ''diē'', ''diēs'', ''diērum'', ''diēs'', ''diēbus'', ''diēbus''; ''rēs'', ''rēī'', ''rēī'', ''rem'', ''rē'', ''rēs'', ''rērum'', ''rēs'', ''rēbus'', ''rēbus''.
* A long ē is shortened before m.
* Most nouns of the fifth declension lack the plural forms, except ''diēs'' and ''rēs'' which have the plural forms too.
* -
* The time <u>when</u> is expressed by the ablative without a preposition.
* The pronouns are classified as follows:
# Personal pronouns express the person spoken to or spoken of;
# possessive pronouns denote possession;
# reflexive pronouns refer back to the subject;
# intensive pronouns emphasise a noun;
# demonstrative pronouns point out things or persons;
# relative pronouns connect subordinate adjective clauses with an antecedent;
# interrogative pronouns ask questions; and
# indefinite pronouns point out indefinitely.
* -
* For the first person the personal pronoun ''ego'' and for the second person the personal pronoun ''tū'' are used as reflexive pronouns as well.
* The reflexive pronoun of the third person (singular and plural) is ''sē'' (acc. and abl.), ''suī'' (gen.), ''sibi'' (dat.).
* -
* ''Mē videō.''/''Sē videt.''/''Eum videt.''
* -
* ''Ipse'' is used to emphasise a noun or a pronoun.
* -
* -
* ''Īdem'' is used as a demonstrative pronoun denoting that two (or more) objects are in fact the same object; ''hic'' is used to denote a definite object near the speaker, ''ille'' is used to denote a definite object not near the speaker nor the listener, and ''iste'' is used to denote a definite object near the listener.
* ''Aliquis'' -- some one, any one; ''quis'' -- some one, any one; ''quīdam'' -- a certain; ''quisquam'' -- any one (at all); ''quisque'' -- each, every.
* -
=== § 524, p. 278 ===
=== § 525, p. 280 ===
=== § 526, p. 281 ===
=== § 527, p. 281 ===
=== § 528, p. 281 ===
{{BookCat}}
{{Shelves|Latin language}}
5q09pfriw1juejurhagw99pkd3n6z3u
Professionalism/Dr. Malachi Love-Robinson
0
397454
4672141
4425409
2026-09-24T13:06:16Z
~2026-51565-61
3626750
/* */
4672141
wikitext
text/x-wiki
Malachi Love-Robinson as a teenager masqueraded as a doctor in West Palm Beach, Florida. In two high-profile cases, he impersonated an anesthesiologist at St. Mary's Medical Center and later launched his own medical care center, New Birth New Life Holistic Alternative Medical Center & Urgent Care. In both instances, Love-Robinson was arrested despite claiming that he only wanted to help people. He was also booked in jail for fraud, writing checks that he allegedly stole from one of his patients.
== Introduction ==
To understand the case of Dr. Malachi Love-Robinson, there are a few background topics that need addressing.
=== Good Samaritan Laws ===
In the United States, someone who renders aid to an injured or ill person is usually protected from liability should the latter suffer from further damage. The clause of laws that correspond to that situation are called the "Good Samaritan Laws.<ref>Good Samaritans Law and Legal Definition. USLegal.com. https://definitions.uslegal.com/g/good-samaritans/.</ref>" Although there are differences among states, most of them assert that "Any person who in good faith renders emergency care, without compensation or expectation of compensation, at the scene of an accident or emergency to the victim of the accident or emergency shall not be liable for any civil damages resulting from the persons acts or omission, except for such damages as may result from the persons gross negligence or wanton acts or omissions." These laws are meant to encourage people to assist others without the worry of legal liability. An interpretation may be that the intent to save someone supersedes all else. However, there is ambiguity over the Good Samaritan Laws' wordage of "good faith" and whether good intentions are sufficient to help people without repercussions. The case of Dr. Malachi Love-Robinson provides insight to whether good intentions correspond to ethical decisions.
=== Holistic & Alternative Medicine ===
The case of Dr. Malachi Love-Robinson also deals with the ethics of "holistic" and "alternative" medicine. Practitioners of holistic medicine claim that they can use alternative therapies in addition to conventional medication to treat patients. These alternative therapies may include dieting, exercise, psychotherapy, spiritual counseling, acupuncture, homeopathy, and naturopathy. <ref>What is Holistic Medicine? WebMD. https://www.webmd.com/balance/guide/what-is-holistic-medicine.</ref> Some of these treatments are relatively common advice, such as dieting and exercise. Others, like acupuncture, homeopathy, and naturopathy, are more rare.
Acupuncture is a traditional Chinese medicine technique that uses needles to stimulate specific points around the body. This is meant to relieve neck and back pain, nausea, anxiety, depression, and insomnia.<ref>What Exactly is Alternative Medicine? WebMD. https://www.webmd.com/balance/guide/what-is-alternative-medicine.</ref>
Homeopathy is the treatment of a disease by administering small doses of substances that normally cause the same symptoms in a healthy person. This philosophy is based around the idea that the body has the ability to heal itself.<ref>Homeopathy - Topic Overview. WebMD. https://www.webmd.com/balance/tc/homeopathy-topic-overview.</ref> For example, a homeopathic treatment for the common cold may be to eat onions. Both cause similar symptoms of teary eyes and runny noses.
Naturopathy is the practice of therapeutic methods to heal patients. This involves dietary and lifestyle changes, herbal supplements, detoxification, and counseling.<ref>Naturopathy. U.S. Department of Health and Human Services. National Center for Complementary and Integrative Health. https://nccih.nih.gov/health/naturopathy.</ref>
Although it is a common misconception that alternative medicine physicians do not require a license to practice, every state has a variation of steps to gain legal accreditation.<ref>Credentialing, Licensing, and Education. U.S. Department of Health and Human Services. National Center of Complementary and Integrative Health. https://nccih.nih.gov/health/decisions/credentialing.htm.</ref> Although there is no standardized, national system for credentialing alternative health practitioners, all states require some combination of the following: graduation from a certified program, completion of a specified amount of training, and completion of a written and/or practical exam. This holds true in Florida, where only licensed physicians are permitted to offer alternative medicine to patients.<ref>Florida | Board of Medicine. http://flboardofmedicine.gov/help-center/do-you-have-to-be-licensed-in-florida-to-practice-alternative-medicine-such-as-naturopathy-or-homeopathy/.</ref> As the following case demonstrates, rendering care in "good faith" is not sufficient to overcome the lack of legal accreditation.
== Early Life ==
Malachi Love-Robinson was born in May, 1997, in West Palm Beach Florida.
=== St. Mary's Medical Center ===
On January 13, 2015, Malachi Love-Robinson was escorted off the premises of St. Mary's Medical Center in West Palm Beach, Fla. for impersonating medical personnel. He was discovered in the OB/GYN office "dressed in a white lab coat and... a stethoscope and a face mask".<ref>http://www.sun-sentinel.com/local/palm-beach/fl-west-palm-beach-fake-teen-doctor-20150115-story.html</ref>
Despite being seventeen at the time, Love-Robinson asserted that he had been a doctor for years, and later claimed that he had merely been requesting to shadow physicians and that the situation had been blown out of proportion. In addition, a security guard told police that "Dr. Robinson", as he called himself, had been seen working around the hospital for "about a month" even in restricted areas.<ref>http://www.sun-sentinel.com/local/palm-beach/fl-west-palm-fake-doctor-20160216-story.html</ref> Dr. Sebastian Kent, an actual OB/GYN from St. Mary's, stated that Love-Robinson had introduced himself as an anesthesiologist and had tried to "'ingratiate himself with [Dr. Kent] so [he] would take him around'".<ref> https://heavy.com/news/2016/02/malachi-love-robinson-palm-beach-florida-teen-fake-doctor-website-facebook-photos-staff-new-birth-life-holistic-alternative-medical/</ref>
Due to his status as a minor, it was determined that that he would not be charged, nor would his name or age be released to the public. After a brief detainment, he was let off with a warning. His mother also said Love-Robinson was being cared by a doctor and refused to take any medicine, further complicating the situation.<ref>https://heavy.com/news/2016/02/malachi-love-robinson-palm-beach-florida-teen-fake-doctor-website-facebook-photos-staff-new-birth-life-holistic-alternative-medical/</ref>
=== Boynton Beach Rehabilitation Facility ===
At a later point in 2015, Love-Robinson began working as a massage therapist at Boynton Beach Rehabilitation Facility. This job continued for some months, until the Florida Department of Health received an anonymous tip-off regarding his unlicensed, untrained status. On December 2nd, Love-Robinson received a Cease-and-Desist letter.<ref>http://www.wpbf.com/article/exclusive-interview-with-teen-accused-of-practicing-medicine-without-license/1402373</ref>
== New Birth New Life Holistic Alternative Medical Center & Urgent Care ==
In January of 2016, Love-Robinson opened the New Birth New Life Holistic Alternative Medical Center & Urgent Care in an office block at 4700 N. Congress Ave. in West Palm Beach. The office block also housed several legitimate and well established small medical practices. Love-Robinson hired two employees (an operations director and a programs director). To increase its legitimacy, Love-Robinson created a NBNL website, Facebook page, and established an account for himself on the doctor rating website Healthgrades.org<ref>https://www.washingtonpost.com/news/morning-mix/wp/2016/02/17/not-quite-doogie-howser-florida-18-year-old-charged-with-masquerading-as-a-doctor/</ref> where he described himself as "a well rounded [professional] that treats, and cares for patients, using a system of practice that bases treatment of physiological functions and abnormal conditions on natural laws governing the human body... utiliz[ing] physiological, psychological, and mechanical methods, such as air, water, light, heat, earth, phototherapy, food and herb therapy, psychotherapy, electrotherapy, physiotherapy, minor and orificial surgery, mechanotherapy, naturopathic corrections and manipulation, and natural methods or modalities, together with natural medicines, natural processed foods, and herbs and nature’s remedies."<ref>https://web.archive.org/web/20160217231649/http://www.nbnlmedicalcenter.com/staff.html</ref> He also listed his age at 25, and claimed to be a minister (according to the website ''missionarychapel.com'', an organization that sells a long list of degrees and licenses, Malachi Love-Robinson is listed as a "Doctor" and "Reverend" who was ordained in 2014 - according to FOX)<ref> https://www.wflx.com/story/31253078/did-teen-accused-of-playing-doctor-graduate-from-high-school/</ref>. In addition, Love-Robinson created a fake diploma from the University of Arizona, which he shared on his Facebook page. Love-Robinson's false credentials were revealed when he gave an office tour to a local ABC affiliate morning show. The suffix M.D. was found covered with tape on his nameplate (~1:25 in the video).<ref> https://abcnews.go.com/GMA/video/teen-arrested-practicing-medicine-license-speaks-37022145</ref>
== Result ==
"Doctor" Malachi Love-Robinson was arrested in February 2016 for falsifying his medical license and misleading patients after a police sting operation caught him violating Florida law. The sting was conducted after a citation from the Department of Health for practicing medicine without a license in October 2015 failed <ref>http://www.sun-sentinel.com/local/palm-beach/fl-pn-teen-doctor-plea-deal-20180104-story.html</ref>. An undercover agent went to Robinson's office and arrested him after receiving a physical exam and medical advice. Even after his arrest, Robinson remained defiant; he made national headlines by willingly appearing on "Good Morning America" and the "Today Show" to defend himself.
On January 4th, 2018, Malachi Love-Robinson pleaded guilty to 14 criminal charges and sentenced to 3 1/2 years behind bars, with credit for the 16 months already served. He will not be on probation, although he must repay his victims $80,000 after his release. This punishment is considered light, given the quantity and severity of the crimes committed. If tried and convicted, he would have faced potentially up to 90 years in prison.<ref>http://www.sun-sentinel.com/local/palm-beach/fl-pn-teen-doctor-plea-deal-20180104-story.html</ref>
== Other Legal Run-ins ==
In addition to fraud charges, Love-Robinson was accused of cashing an 86-year-old woman's checks after she was taken to the hospital. After finding him during an online search for doctors using natural therapies, Love-Robinson made several house visits to treat her severe intestinal pain. During one visit, she became so ill that Love-Robinson called for an ambulance and convinced her to leave her purse at the house. Love-Robinson would later use her checks to make payments for his car loans and credit cards.<ref>http://www.sun-sentinel.com/local/palm-beach/fl-pn-teen-doctor-plea-deal-20180104-story.html</ref>
After being arraigned on medical fraud charges and released on a $26,000 bail, Love-Robinson was arrested in Stafford County, VA; he was accused of using his 73-year-old godmother's personal information without permission to buy a $35,000 Jaguar.<ref>http://www.sun-sentinel.com/local/palm-beach/fl-pn-teen-doctor-plea-deal-20180104-story.html</ref> He plead guilty to one count of false statement to obtain credit and a forgery-type charge, serving a one year jail sentence before returning to Florida to be tried for practicing without a license.
== Conclusions ==
There are several definitions of the word "professional." <ref>https://www.merriam-webster.com/dictionary/professional</ref>
1.engaged in one the learned professions (doctor, lawyer, etc.)
2.engaged in by persons receiving financial return
3.exhibiting a courteous, conscientious, and generally businesslike manner in the workplace
There is also a 4th definition whose exact meaning is debated, but a rough definition follows:
4. a person who is mature enough to take responsibility for their actions and place their profession above their career
Acting in good faith is not enough to be considered a professional; just as in the Good Samaritan Laws, actions taken by a true professional must be reasonable by the standards of average people. This is particularly important in professions where lives hang in the balance, such as healthcare. Even without looking at the scams committed by Love-Robinson, it would be impossible to consider him a professional since managing an office where doctors could treat patients goes far beyond what would be reasonable. He would be committing several crimes to do this, as he would be falsifying diplomas and misleading people to win their trust. Ironically, his actions hurt the medical profession more than the help he provided.
== References ==
Note: Reference 10 can only be accessed using the WayBack Machine and selecting 2/17.
{{BookCat}}
<references responsive="" />
qlj2aog0a7r2wrde3lvhhb4hufal8v8
Minecraft resource gathering/Crops
0
425486
4672142
4244021
2026-09-24T13:21:47Z
Optimus Primall
3626752
/* Wheat */
4672142
wikitext
text/x-wiki
There are a variety of crops that you can plant. Some are hard to farm and some are extremely difficult to farm and require a lot of patience.
First, you will need a hoe:
{{minecraft/crafting|3=Wood|2=Wood|5=Stick|8=Stick|makes=a wooden hoe. You can replace the wood with stone, iron, gold, or, if you are desperate, diamond}}
==Crops==
===Wheat===
Wheat is grown from Wheat seeds (just called "seeds" in the game),which can be found breaking tall grass. You will need a hoe of some kind, and grass or dirt. It is best to make the farm near water to speed up plant growth. Till the dirt using a hoe by using the interact button (not the attack button) with the hoe in your hand (you must be looking directly at the dirt or grass to do it). Then place the seed and either wait for it to fully grow or use bone meal from skeletons. These are the main ways to use most of these. Farm land also grows quicker when it is near water. Water can reach crops up to 4 blocks which means a 9 by 9 area of farm land with water in the middle creating a maximum of 80 spaces with one water source. Once grown, break the wheat block and you will get Wheat and 0-2 seeds back. Add more seeds and expand your farm to increase efficiency for food production.
===Beetroot===
Beetroot seeds can be planted the same way as Wheat seeds. 6 beets and a bowl can be crafted into beetroot soup, but Beetroot Soup does not stack.
===Carrots===
Carrots can be grown the same way as well, but the whole carrot is planted instead of finding seeds for it.
===Potatoes===
Potatoes are planted the same as carrots except a bit less efficient. it gives less hunger points and it has a chance to be a poisonous Potato (has green pieces coming around it) which has a 60% chance of giving you poison for 5 seconds. However, it is one of the few farmable foods that can be smelted to be better. Smelting a potato in a furnace gives you a cooked potato.
===Melons===
Melons are different from the others. Instead of the seed growing into a crop, the seed grows a stem that soon grows a crop onto nearby dirt on grass. The stem can not be bonemealed to quick melon access. These melon stems will keep growing melons as long as the stem is not broken and the places for it to grow it (the four blocks in each direction of it) are un-obstructed (no block placed there). Melon blocks can be broken. It will drop 5 - 7 melon slices. Using silk touch drops melon blocks instead, which can be crafted into nine melons.
===Pumpkin===
Pumpkin is grown the same as Melons, except it has different features. You can craft pumpkin pies by putting egg, sugar and carved pumpkin together in a line. To get a carved pumpkin, place the pumpkin and shear it. It will drop another pumpkin seed which you can use to farm again.
===Bamboo===
Bamboo is a crop that can be grown using Bamboo. You can find Bamboo in Jungles and Jungle temples. You can plant bamboo on a dirt block, grass block, coarse dirt, gravel, mycelium, podzol, sand, red sand, or the new rooted dirt. Basically any type of dirt. It will grow from 12-16 blocks in the air. When finished, break the block above the block on the ground which will make the whole bamboo stick shatter and the bamboo will fall, leaving the stem still there to grow. Bamboo is the only farming material so far that can be used as furnace fuel and can be turned into stick.
===Cocoa beans===
Cocoa beans are plants that are very unique. Cocoa beans are planted and can only be planted on jungle logs so be sure to pick some up while getting that bamboo. Fully grown Cocoa beans look orange instead of greenish or brownish. Harvest them by breaking them. then place them back.
== Notes ==
Most crops in ''Minecraft'' have real world counterparts, with the exception of Nether Wart, Chorus Fruit, Nether Fungus (red and blue) and Glow Berries
{{Status|50%}}{{BookCat}}__NOTOC__
7432xhws7c33eewt8udgx8f4zgxsojr
4672143
4672142
2026-09-24T13:28:06Z
Optimus Primall
3626752
/* Bamboo */
4672143
wikitext
text/x-wiki
There are a variety of crops that you can plant. Some are hard to farm and some are extremely difficult to farm and require a lot of patience.
First, you will need a hoe:
{{minecraft/crafting|3=Wood|2=Wood|5=Stick|8=Stick|makes=a wooden hoe. You can replace the wood with stone, iron, gold, or, if you are desperate, diamond}}
==Crops==
===Wheat===
Wheat is grown from Wheat seeds (just called "seeds" in the game),which can be found breaking tall grass. You will need a hoe of some kind, and grass or dirt. It is best to make the farm near water to speed up plant growth. Till the dirt using a hoe by using the interact button (not the attack button) with the hoe in your hand (you must be looking directly at the dirt or grass to do it). Then place the seed and either wait for it to fully grow or use bone meal from skeletons. These are the main ways to use most of these. Farm land also grows quicker when it is near water. Water can reach crops up to 4 blocks which means a 9 by 9 area of farm land with water in the middle creating a maximum of 80 spaces with one water source. Once grown, break the wheat block and you will get Wheat and 0-2 seeds back. Add more seeds and expand your farm to increase efficiency for food production.
===Beetroot===
Beetroot seeds can be planted the same way as Wheat seeds. 6 beets and a bowl can be crafted into beetroot soup, but Beetroot Soup does not stack.
===Carrots===
Carrots can be grown the same way as well, but the whole carrot is planted instead of finding seeds for it.
===Potatoes===
Potatoes are planted the same as carrots except a bit less efficient. it gives less hunger points and it has a chance to be a poisonous Potato (has green pieces coming around it) which has a 60% chance of giving you poison for 5 seconds. However, it is one of the few farmable foods that can be smelted to be better. Smelting a potato in a furnace gives you a cooked potato.
===Melons===
Melons are different from the others. Instead of the seed growing into a crop, the seed grows a stem that soon grows a crop onto nearby dirt on grass. The stem can not be bonemealed to quick melon access. These melon stems will keep growing melons as long as the stem is not broken and the places for it to grow it (the four blocks in each direction of it) are un-obstructed (no block placed there). Melon blocks can be broken. It will drop 5 - 7 melon slices. Using silk touch drops melon blocks instead, which can be crafted into nine melons.
===Pumpkin===
Pumpkin is grown the same as Melons, except it has different features. You can craft pumpkin pies by putting egg, sugar and carved pumpkin together in a line. To get a carved pumpkin, place the pumpkin and shear it. It will drop another pumpkin seed which you can use to farm again.
===Bamboo===
Bamboo is a crop that can be grown using Bamboo. You can find Bamboo in Jungles and Jungle temples. You can plant bamboo on a dirt block, grass block, coarse dirt, gravel, mycelium, podzol, sand, red sand, or the new rooted dirt , basically any type of ground available. It will grow to 12-16 blocks up high. When finished, break the second bottom /lowest bamboo block above the ground block ,which will then make the whole bamboo tree shatter and the bamboo will fall, leaving the stem still there to grow. Bamboo is the only farming material so far that can be used as furnace fuel and can be turned into sticks.
===Cocoa beans===
Cocoa beans are plants that are very unique. Cocoa beans are planted and can only be planted on jungle logs so be sure to pick some up while getting that bamboo. Fully grown Cocoa beans look orange instead of greenish or brownish. Harvest them by breaking them. then place them back.
== Notes ==
Most crops in ''Minecraft'' have real world counterparts, with the exception of Nether Wart, Chorus Fruit, Nether Fungus (red and blue) and Glow Berries
{{Status|50%}}{{BookCat}}__NOTOC__
kylpom8tpyca5hoor1480uyyhpzfv34
Modern Greek/A1/Exercise/Lesson 03.1
0
436838
4672246
3981358
2026-09-24T23:13:31Z
It-is-Truly-Meet
3624460
4672246
wikitext
text/x-wiki
Welcome to the exercises related to [[Modern Greek/Lesson 03.1|Lesson 3.1]].
Ancient Greeks were fascinated with philosophy, "the love of wisdom," deeply. Thus, many philosophical works are written in Greek. Indeed, Greek's intricate case system, particles, and articles convey precise meaning, perfect for philosophy.
== Cases ==
{{Question-answer
| question = How many grammatical cases does Greek have?
| answer = 4
}}
{{Question-answer
| question = What case is used for indirect objects?
| answer = the genitive
}}
{{Question-answer
| question = Is Greek word order flexible?
| answer = Yes.
}}
{{Question-answer
| question = Identify the subject in "μου την τουαλέτα βλέπεις εσύ."
| answer = εσύ
}}
{{Question-answer
| question = What case is used for the subject?
| answer = the nominative
}}
{{Question-answer
| question = Identify the number of "τα αγγλικά."
| answer = plural
}}
{{Question-answer
| question = What does genitive mean?
| answer = possessive (e.g., μου ("of me") is the genitive personal pronoun)
}}
{{Question-answer
| question = What case is used for direct objects?
| answer = the accusative
}}
{{Question-answer
| question = What case should one use if addressing someone?
| answer = the vocative
}}
{{Question-answer
| question = Identify the cases in "Mom, Dad doesn't want to buy me gyros."
| answer = <nowiki></nowiki>
* Mom: vocative
* Dad: nominative
* me: genitive
* gyros: accusative
}}
<br>
{{Modern Greek}}
{{BookCat}}
of9xsaz2trk4o6anrwkrwxm3ebm6rf3
4672247
4672246
2026-09-24T23:18:09Z
It-is-Truly-Meet
3624460
/* Cases */
4672247
wikitext
text/x-wiki
Welcome to the exercises related to [[Modern Greek/Lesson 03.1|Lesson 3.1]].
Ancient Greeks were fascinated with philosophy, "the love of wisdom," deeply. Thus, many philosophical works are written in Greek. Indeed, Greek's intricate case system, particles, and articles convey precise meaning, perfect for philosophy.
== Cases ==
{{Question-answer
| question = How many grammatical cases does Greek have?
| answer = 4
}}
{{Question-answer
| question = What case is used for indirect objects?
| answer = the genitive
}}
{{Question-answer
| question = Is Greek word order flexible?
| answer = Yes.
}}
{{Question-answer
| question = Identify the subject in "μου την τουαλέτα βλέπεις εσύ."
| answer = εσύ
}}
{{Question-answer
| question = What case is used for the subject?
| answer = the nominative
}}
{{Question-answer
| question = Identify the number of "τα αγγλικά."
| answer = plural
}}
{{Question-answer
| question = What does genitive mean?
| answer = possessive (e.g., μου ("of me") is the genitive personal pronoun)
}}
{{Question-answer
| question = What case is used for direct objects?
| answer = the accusative
}}
{{Question-answer
| question = What case should one use if addressing someone?
| answer = the vocative
}}
{{Question-answer
| question = Identify the cases in "Mom, Dad doesn't want to buy me gyros."
| answer = ''Μαμά, ο μπαμπάς δεν θέλει να μου αγοράσει γύρο.''
* Mom: vocative
* Dad: nominative
* me: genitive
* gyros: accusative
}}
<br>
{{Modern Greek}}
{{BookCat}}
p2hu1606q8b9dvi1hs4p0hwbaoawm4i
Wikibooks:GUS2Wiki
4
447875
4672144
4670591
2026-09-24T13:32:18Z
Alexis Jazz
470964
Updating gadget usage statistics from [[Special:GadgetUsage]] ([[phab:T121049]])
4672144
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-09-22T06:11:24Z. 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 || 106 || 4
|-
|CleanDeleteReasons || 54 || 1
|-
|CommentsInLocalTime || 668 || 4
|-
|DeluxeBar || 209 || 6
|-
|GetCollection || 553 || 1
|-
|HotCat || 8 || 1
|-
|Massblock || 1 || 1
|-
|OneClickWelcomer || 27 || 0
|-
|SpecialSearch || 664 || 1
|-
|Subpages || 1 || 0
|-
|UTCLiveClock || 369 || 5
|-
|background-awesomeness || 787 || 4
|-
|bottomtabs || 431 || 2
|-
|commons-file || data-sort-value="Infinity" | Default || data-sort-value="Infinity" | Default
|-
|contribsrange || 331 || 5
|-
|markAdmins || 145 || 11
|-
|markblocked || 59 || 2
|-
|modrollback || 83 || 3
|-
|navpop || 843 || 5
|-
|purge || 620 || 8
|-
|rightsfilter || 373 || 3
|-
|searchbox || 211 || 3
|-
|sidebartranslate || 504 || 3
|-
|sixtabs || 312 || 1
|-
|subject-pages || 612 || 2
|-
|subpages || 30 || 5
|-
|wiked || 670 || 3
|-
|wikidialog || data-sort-value="Infinity" | Default || data-sort-value="Infinity" | Default
|}
* [[Special:GadgetUsage]]
* [[m:Meta:GUS2Wiki/Script|GUS2Wiki]]
<!-- data in CSV format:
BookCat,106,4
CleanDeleteReasons,54,1
CommentsInLocalTime,668,4
DeluxeBar,209,6
GetCollection,553,1
HotCat,8,1
Massblock,1,1
OneClickWelcomer,27,0
SpecialSearch,664,1
Subpages,1,0
UTCLiveClock,369,5
background-awesomeness,787,4
bottomtabs,431,2
commons-file,default,default
contribsrange,331,5
markAdmins,145,11
markblocked,59,2
modrollback,83,3
navpop,843,5
purge,620,8
rightsfilter,373,3
searchbox,211,3
sidebartranslate,504,3
sixtabs,312,1
subject-pages,612,2
subpages,30,5
wiked,670,3
wikidialog,default,default
-->
inpzdh6mw2bz7czh5zgsg7qm6a0u2t6
Talk:Modern Greek/A1/Exercise/Lesson 03.1
1
460190
4672223
4319621
2026-09-24T22:11:13Z
It-is-Truly-Meet
3624460
/* Confusing Lesson */ new section
4672223
wikitext
text/x-wiki
{{WikiProject Languages}}
== Confusing Lesson ==
This entire text is just a complete word salad. [[User:It-is-Truly-Meet|It-is-Truly-Meet]] ([[User talk:It-is-Truly-Meet|discuss]] • [[Special:Contributions/It-is-Truly-Meet|contribs]]) 22:11, 24 September 2026 (UTC)
ksrymwxyzatqx509j4phgugy6wc4jqu
Moving objects in retarded gravitational potentials of an expanding spherical shell
0
465413
4672220
4670415
2026-09-24T21:18:29Z
Bautsch
630029
Space chars
4672220
wikitext
text/x-wiki
{{Book search|style=image|Moving objects in retarded gravitational potentials of an expanding spherical shell}}
[[File:Moving.star.in.dark.shell.png|right|400px]]
{{print version}}
==Contents==
# [[/Preface/]]
# [[/Brief historical review/]]
# [[/Classical approach/]]
# [[/Retarded gravitational potentials/]]
# [[/Gravitational redshift/]]
# [[/Cosmology of retarded interaction/]]
# [[/Conclusion/]]
==Appendix==
# [[/Table with computed results/]]
# [[/Java program/]]
__NOTOC__ __NOEDITSECTION__
{{status|100%}}
==Summary of the project==
* '''Target audience:''' Astronomers, astrophysicists, physicists, mathematicians
* '''Learning objectives:''' Application of retarded gravitational potentials and gravitational redshift on very large scales.
* '''Contact person:''' [[User:Bautsch]]
* '''Are co-authors currently desired?''' Yes. Corrections of obvious errors directly in the text; content please after discussion.
* '''Guidelines for co-authors:''' Wikimedia-like.
[[Category:Shelf:Astronomy]]
[[Category:Shelf:Physics]]
[[Category:Completed books]]
[[Category:Professional reading level]]
3ip7jau6be9ce4kvyt90nxcjj86cy6b
User talk:Codename Noreste
3
466307
4672222
4660872
2026-09-24T22:08:10Z
1234qwer1234qwer4
1406991
/* Wikibooks:Requests for deletion/Character Encodings */ new topic ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4672222
wikitext
text/x-wiki
{{talk header}} {{User:MiszaBot/config
|archive = User talk:Codename Noreste/Archive %(counter)d
|algo = old(14d)
|counter = 1
|maxarchivesize = 100K
|archiveheader = {{Automatic archive navigator}}
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
== Markdown ==
Can you clarify why you deleted [[Markdown]]? The deletion summary says "Mass deletion of abandoned/orphaned/out of scope pages with minimal or no content. (sysop action)". It did not seem to fail a RFD and from what I remeber, it was a short instructional page I made on Markdown.
The page is in [https://web.archive.org/web/20250427011600/https://en.wikibooks.org/wiki/Markdown Wayback Machine].
Actually, can you please undelete the page, send it to RFD if you are still convinced it should be deleted, and ping me? I think it is a neat little page providing minimum useful artifact and can be expanded later. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 08:53, 5 May 2026 (UTC)
: Looking at the deleted edits from that page, [[User:Kittycataclysm|Kittycataclysm]] (whom I pinged for second opinion) marked it for speedy deletion as it was considered {{tq|abandoned with little to no meaningful content}}, but you may file a request at [[Wikibooks:Requests for undeletion]] citing your reasons why that page should be undeleted and kept when you plan to update it. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:55, 5 May 2026 (UTC)
:: I opened [[Wikibooks:Requests for undeletion#Markdown]]. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 15:38, 5 May 2026 (UTC)
== [[Wikibooks:Requests for deletion/Character Encodings]] ==
Note that some subpages are still around at [[:Category:Book:Character Encodings]]. However, I would also disagree with the deletion since the code pages provide useful information that is not found elsewhere. [[User:1234qwer1234qwer4|𝟙𝟤𝟯𝟺𝐪𝑤𝒆𝓇𝟷𝟮𝟥𝟜𝓺𝔴𝕖𝖗𝟰]] ([[User talk:1234qwer1234qwer4|𝗍𝗮𝘭𝙠]]) 22:08, 24 September 2026 (UTC)
gq5i2xbdixzkk5zw54ees78ogp1jjo7
4672277
4672222
2026-09-25T08:10:52Z
ArchiverBot
1227662
Bot: Archiving 1 thread (older than 14 days) to [[User talk:Codename Noreste/Archive 1]]
4672277
wikitext
text/x-wiki
{{talk header}} {{User:MiszaBot/config
|archive = User talk:Codename Noreste/Archive %(counter)d
|algo = old(14d)
|counter = 1
|maxarchivesize = 100K
|archiveheader = {{Automatic archive navigator}}
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
== [[Wikibooks:Requests for deletion/Character Encodings]] ==
Note that some subpages are still around at [[:Category:Book:Character Encodings]]. However, I would also disagree with the deletion since the code pages provide useful information that is not found elsewhere. [[User:1234qwer1234qwer4|𝟙𝟤𝟯𝟺𝐪𝑤𝒆𝓇𝟷𝟮𝟥𝟜𝓺𝔴𝕖𝖗𝟰]] ([[User talk:1234qwer1234qwer4|𝗍𝗮𝘭𝙠]]) 22:08, 24 September 2026 (UTC)
p7w4kujqz1gu4swk2eah4a3zz13uvqu
Moving objects in retarded gravitational potentials of an expanding spherical shell/Brief historical review
0
468143
4672215
4670290
2026-09-24T21:14:30Z
Bautsch
630029
<div style="clear:both"></div>
4672215
wikitext
text/x-wiki
<noinclude>
{{Chapter navigation|Preface|Classical approach}}
</noinclude>
==Brief historical review==
=== Around 1900 ===
The finiteness of the propagation speed of gravity and its influence on gravitational forces was originally published by the Austrian astronomer '''Josef von Hepperger''' (1855–1928) in 1888 in Vienna.<ref>{{Cite book |last=Hepperger |first=Josef von |url=https://books.google.de/books?id=TT3PAAAAMAAJ&hl=de&pg=PP1#v=onepage&q&f=false |title=Über die Fortpflanzungsgeschwindigkeit der Gravitation |date=1888 |location=Wien |publisher=K. K. Hof.-und Staatsdruckerei |language=de}}</ref>
The German physicist '''Paul Gerber''' (1854–1909) published 1898 his paper on "Die räumliche und zeitliche Ausbreitung der Gravitation", where he established that the perihelion precession of the planet Mercury is related to the propagation speed of gravity, which is quite close to that of electromagnetic radiation.<ref>{{Cite journal |last=Gerber |first=Paul |editor-last=Mehmke |editor-first=R. |editor2-last=Cantor |editor2-first=M. |title=Die räumliche und zeitliche Ausbreitung der Gravitation |trans-title=The spatial and temporal propagation of gravity|url=https://de.wikisource.org/wiki/Die_räumliche_und_zeitliche_Ausbreitung_der_Gravitation |journal=Zeitschrift für Mathematik und Physik |language=de |location=Leipzig |volume=43 |pages=93–104 |via=Verlag B. G. Teubner |date=1898}}</ref> His formula for the perihelion precession of the planet Mercury wasn't known to '''Albert Einstein''' (1879–1955), but six years after Paul Gerber's death, Einstein found an identical formula in his publication "Erklärung der Perihelbewegung des Merkur aus der allgemeinen Relativitätstheorie" (English: "Explanation of Mercury's perihelion motion from the general theory of relativity") by applying the laws of General Relativity.<ref>{{Cite journal |last=Einstein |first=Albert |title=Erklärung der Perihelbewegung des Merkur aus der Allgemeinen Relativitätstheorie |trans-title=Explanation of Mercury's perihelion motion from the general theory of relativity |journal=Sitzungsberichte der Preußischen Akademie der Wissenschaften |publication-date=1915 |pages=831–839}}</ref> However, the contemporary scientists couldn't reproduce the derivation of Paul Gerber for the formula, and furthermore, they stated that some of the prerequisites used by him were wrong.
Shortly before his early death the German astronomer and physicist '''Karl Schwarzschild''' (1873–1916) published a paper on "Über das Gravitationsfeld einer Kugel aus inkompressibler Flüssigkeit nach der Einsteinschen Theorie" (English: "On the gravitational field of a sphere of incompressible fluid according to Einstein's theory"), where he described how to compute the smallest possible radius for a sphere with a given mass. He found the radius for a sphere with the mass of the sun to be three kilometres.<ref>{{Cite book |last=Schwarzschild |first=Karl |editor=Deutsche Akademie der Wissenschaften zu Berlin |url=http://archive.org/details/sitzungsberichte1916deutsch |title=Sitzungsberichte der Königlich Preussischen Akademie der Wissenschaften zu Berlin |pages=424–434|date=1882 |publisher=Berlin : Deutsche Akademie der Wissenschaften zu Berlin |others=Smithsonian Libraries}}</ref> In recognition of his achievement, the corresponding radius is now called the '''Schwarzschild radius'''. It is interesting to notice that Schwarzschild also made important contributions to '''retarded potentials''' in electrodynamics already in 1903. According to the electrokinetic potential he claimed:<ref>{{Cite journal |last=Schwarzschild |first=Karl |date=1903 |title=Zwei Formen des Prinzips der kleinsten Action in der Elektronentheorie |trans-title=Two forms of the principle of least action in electron theory |journal=Nachrichten von der Königlichen Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-Physikalische Klasse |location=Göttingen |publisher=Commissionsverlag der Dieterich'schen Universitätsbuchhandlung, Lüder Horstmann |issue=3 |pages=127–128}}</ref>
<blockquote>
Es sind in jedem Raumelement die Werte der Dichte und der Geschwindigkeit zu benutzen,<br/>
welche dort zu einer um die Lichtzeit zurückliegenden Epoche galten.
</blockquote>
<blockquote>
In each spatial element, the values of density and velocity are to be used,<br/>
which were valid there at an epoch around light time ago.
</blockquote>
<gallery caption="Portrait images of early contributing scientists" mode=packed width=200 heights=200>
Josef.Hepperger.png|Josef Hepperger in the 1920s.
Paul.Gerber.png|Paul Gerber around 1900.
Albert Einstein 1921 by F Schmutzer.jpg|Albert Einstein in 1921.
Karl.Schwarzschild.png|Karl Schwarzschild around 1900.
</gallery>
=== Big Bang ===
The Belgian theologian and physicist '''George Lemaître''' (1894–1966) is regarded as the founder of the Big Bang theory. In 1931, he introduced the term "atome primitif" (English: "primordial atom") to describe the hot initial state of the universe. Already in 1927 he wrote as the second conclusion of his publication about "a homogeneous universe of constant mass and increasing radius, accounting for the radial velocity of extra-galactic nebulae" with reference to the investigations of '''Edwin Hubble''' (1889–1953) in 1926:<ref>{{Cite journal |last=Hubble |first=Edwin |year=1926 |title=Extra-galactic nebulae |journal=Astrophysical Journal |publisher=Contributions from the Mount Wilson Observatory |publication-place=Mount Wilson, California, USA |volume=64 |issue=I |pages=321–369}}</ref><ref>{{Cite journal |last=Lemaître |first=Georges |date=1927 |title=Un univers homogéne de masse constante et de rayon croissant, rendant compte de la vitesse radiale des nébuleuses extra-galactiques |journal=Annales de la société scientifique de Bruxelles |volume=47 A |pages=49–59}}</ref><ref>{{Cite journal |last=Lemaître |first=Georges |date=1931 |title=Expansion of the universe, A homogeneous universe of constant mass and increasing radius accounting for the radial velocity of extra-galactic nebulae | journal= Monthly Notices of the Royal Astronomical Society| volume= 91 |pages= 483–490}}</ref>
<blockquote>
Le rayon de l'univers croit sans cesse depuis une valeur asymptotique <math>R_0</math> pour <math>t = - \infty</math>
</blockquote>
<blockquote>
The radius of the universe increases without limit from an asymptotic value <math>R_0</math> for <math>t = - \infty</math>
</blockquote>
In 1933 the Swiss astronomer '''Fritz Zwicky''' (1898–1974) obeserved a gravitational anomaly in the Coma galaxy cluster, and he coined the term '''dark matter''' (in German: "dunkle Materie") for the cause of this anomaly.<ref>{{Cite web |author=Fritz Zwicky |title=Die Rotverschiebung von extragalaktischen Nebeln |trans-title=The red shift of extragalactic neubulae |url=https://articles.adsabs.harvard.edu//full/1933AcHPh...6..110Z/0000110.000.html |date=1933 |access-date=2024-06-11 |website=articles.adsabs.harvard.edu}}</ref>
In his book ''Relativity, Gravitation and World Structure'' of the year 1935 the British astrophysicist and mathematician '''Edward Arthur Milne''' (1896–1950) introduced the special-relativistic cosmological '''Milne model'''.<ref>{{Cite book |last=Milne |first=Edward Arthur |title=Relativity, gravitation and world-structure |publisher=Clarendon Press |year=1935 |location=Oxford, Great Britain |pages=291-294 |language=en |chapter=World picture on the simple kinematic model - Comparison with local Newtonian gravitation and dynamics - §§412-418}}</ref> This model assumes an isotropic and for all time linearly expanding, but not homogeneous universe. It is independent of general theory of relativity, but nevertheless equivalent to a special case of the '''Friedmann–Lemaître–Robertson–Walker metric''' in the limit of zero energy density. The redshift is explained by the velocity caused by a hypothetical initial explosion of matter. The density of such a universe must be small in comparison to the critical density of the '''Friedmann equations''' that were published by Russian physicist and mathematician '''Alexander Friedmann''' (1888–1925) in 1924.<ref>{{cite journal |first=Alexander |last=Friedman |title=Über die Krümmung des Raumes |trans-title=About the curvature of the space |journal=Zeitschrift für Physik |volume=10 |year=1922 |issue=1 |pages=377–386 |doi=10.1007/BF01332580 |bibcode = 1922ZPhy...10..377F|s2cid=125190902 |language=de}}</ref> Decades later, the Milne model fell almost completely into oblivion, whereas the cosmological models based on the general theory of relativity as well as on a homogeneous universe gained more and more attention.
<gallery caption="Portrait images of early cosmologists" mode=packed width=200 heights=200>
Aleksandr Fridman cropped.png|Alexander Friedmann around 1920.
Studio portrait photograph of Edwin Powell Hubble (cropped).JPG|Edwin Hubble in 1931.
Lemaitre.jpg|George Lemaître in 1933.
ETH-BIB-Zwicky, Fritz (1898-1974)-Portr 01030.tif|Fritz Zwicky in the year 1947.
Edward Arthur Milne-(1917).jpg|Edward Arthur Milne in 1917.
</gallery>
=== Cosmic microwave background ===
In 1953 the German astrophysicist '''Erwin Finlay-Freundlich''' (1885–1964) derived a blackbody temperature for intergalactic space of 2.3 Kelvin according to his theory of tired light.<ref>{{Cite journal |last=Finlay-Freundlich |first=Erwin |date=1953 |title=Über die Rotverschiebung der Spektrallinien |trans-title=On the redshift of spectral lines|journal=Nachrichten der Akademie der Wissenschaften in Göttingen |location=Göttingen |publisher=Vandenhoeck & Ruprecht |issue=7 |pages=94–101}}</ref> The German-British mathematician and physicist '''Max Born''' (1882–1970) immediately recommended taking the problem seriously and pursuing it further.<ref>{{Cite journal |last=Born |first=Max |date=1953 |title=Theoretische Bemerkungen zu Freundlichs Formel für die stellare Rotverschiebung |trans-title= Theoretical remarks to Freundlich's formula for the stellar redshift |journal=Nachrichten der Akademie der Wissenschaften in Göttingen |location=Göttingen |publisher=Vandenhoeck & Ruprecht |issue=7 |pages=102–108}}</ref>
[[File:WMAP 2012.png|thumb|right|upright=1.5|Map of cosmic background radiation with artificial colours that show tiny temperature variations.]]
In 1965 the cosmic microwave background (CMB) was discovered by US-American radio astronomers '''Arno Allan Penzias''' (1933–2024) and '''Robert Woodrow Wilson''' (born 1936).<ref>{{cite journal |last1=Penzias |first1=Arno Allan |last2=Wilson|first2=Robert Woodrow |date=1965 |title=A Measurement of Excess Antenna Temperature at 4080 Mc/s |journal=The Astrophysical Journal |volume=142 |issue=1 |pages=419–421 |doi=10.1086/148307|doi-access=free }}</ref> It has a thermal black body spectrum at a very low temperature of about 2.7 Kelvin. Since the cosmic microwave background was mainly created in the visible area of the electromagnetic spectrum, it must have undergone a strong wavelength extension on its way to the observers. This can happen because of two main reasons:
* The origin of the radiation moves away from us very quickly, which will cause an increase of the wavelength according to the Doppler effect described by '''Christian Doppler''' (1803–1853) in 1842.<ref>{{Cite journal |last=Doppler |first=Christian |date=1842 |title=Ueber das farbige Licht der Doppelsterne und einiger anderer Gestirne des Himmels. |trans-title=On the Coloured Light of the Double Stars and some other Celestial Bodies |url=https://archive.org/details/ueberdasfarbigel00doppuoft/page/n9/mode/2up?view=theater |journal=Abhandlungen der Böhmischen Gesellschaft der Wissenschaften |issue=5/2 |pages=465–485}}</ref>
* There is a huge mass behind the origin of the radiation, which will cause an increase of the wavelength according to the gravitation and the relativity principle of '''Albert Einstein''' (1879–1955) of 1907.<ref>{{Cite journal |last=Einstein |first=Albert |date=1907 |title=Relativitätsprinzip und die aus demselben gezogenen Folgerungen |trans-title=On the Relativity Principle and the Conclusions Drawn from It |url=http://www.soso.ch/wissen/hist/SRT/E-1907.pdf |journal=Jahrbuch der Radioaktivität |issue=4 |pages=411–462}}</ref>
In addition, it is discussed that an expansion of the spacetime during the propagation time of a light wave also would increase its wavelength to the same extent.
The redshift factor <math>z</math> is defined as a relation between an emitted wavelength <math>\lambda_0</math> and an observed wavelength <math>\lambda</math> of electromagnetic radiation:
:<math>z = \frac {\Delta \lambda} {\lambda_0} = \frac {\lambda - \lambda_0} {\lambda_0} = \frac {\lambda} {\lambda_0} - 1</math>
The redshift of the cosmic microwave background was found to be <math>z \approx 1089</math> in 2003, which is an extremely high value.<ref>{{cite journal|author=C. L. Bennett, M. Halpern, G. Hinshaw, N. Jarosik, A. Kogut, M. Limon, S. S. Meyer, L. Page, D. N. Spergel, G. S. Tucker, E. Wollack, E. L. Wright, C. Barnes, M. R. Greason, R. S. Hill, E. Komatsu, M. R. Nolta, N. Odegard, H. V. Peirs, L. Verde, J. L. Weiland |title=First Year Wilkinson Microwave Anisotropy Probe (WMAP) Observations: Preliminary Maps and Basic Results |work=Astrophys. J. Suppl. |volume=148 |date=2003 |pages=1–27 |doi=10.1086/377253 |doi-access=free }}</ref> The age of the universe at the time this background radiation was created by hydrogen atoms has been estimated at around 379,000 years.<ref>{{Cite web |date=2013-02-13 |title=Microwave (WMAP) All-Sky Survey {{!}} Guide {{!}} Digital Universe {{!}} Hayden Planetarium |url=https://web.archive.org/web/20130213023246/http://www.haydenplanetarium.org/universe/duguide/exgg_wmap.php |access-date=2024-06-01 |website=web.archive.org}}</ref>
=== 21st century ===
Observations of distant type Ia supernovae published by both the '''Supernova Cosmology Project''' as well as the '''High-Z Supernova Search Team''' in 1998 show that the relative expansion of the universe is accelerating. For the analysis the astronomers Saul Perlmutter, Brian P. Schmidt and Adam Riess were awarded the Nobel Prize in Physics in 2011.<ref>{{Cite web |title=The Nobel Prize in Physics 2011 |url=https://www.nobelprize.org/prizes/physics/2011/advanced-information/ |access-date=2024-03-16 |website=NobelPrize.org |language=en-US}}</ref>
From 2001 to 2010 the NASA spacecraft '''Wilkinson Microwave Anisotropy Probe (WMAP)''' was investigating the cosmic microwave background. Its measurements led to the current Standard Model of Cosmology (Lambda cold dark matter, Lambda-CDM or ΛCDM model). According to this model the universe currently consists of less than 5 percent ordinary baryonic matter; about 24 percent cold dark matter (CDM) that interacts only weakly with ordinary matter and electromagnetic radiation; and more than 70 percent of dark energy that is used to explain the accelerated expansion of the universe.<ref>{{Cite web |last=Francis |first=Matthew |date=2013-03-21 |title=First Planck results: the Universe is still weird and interesting |url=https://arstechnica.com/science/2013/03/first-planck-results-the-universe-is-still-weird-and-interesting/ |access-date=2024-06-11 |website=Ars Technica |language=en-us}}</ref> These data were more or less confirmed by the '''Planck space observatory''' that was operated by the '''European Space Agency (ESA)''' from 2009 to 2013.<ref>{{Cite web |title=ESA Science & Technology - From an almost perfect Universe to the best of both worlds |url=https://sci.esa.int/web/planck/-/60499-from-an-almost-perfect-universe-to-the-best-of-both-worlds |access-date=2024-06-11 |website=sci.esa.int}}</ref>
<gallery caption="Evolution of the universe investigated with the Wilkinson Microwave Anisotropy Probe (WMAP)" mode=packed width=640 heights=480>
CMB_Timeline75.jpg|The evolution of the universe according to the interpretation of the measurements of the Wilkinson Microwave Anisotropy Probe (WMAP). The acceleration of the expansion leads to the concave outer rim surface of the evolution cone today.
WMAP_2008_universe_content.png|The contents of of the universe today (top) and 380,000 years after the Big Bang (bottom) according to the interpretation of the Wilkinson Microwave Anisotropy Probe (WMAP) measurements.
</gallery>
In 2013 the Indian researcher Chandrakant Raju proposed to apply the '''retarded gravitation theory (RGT)''' to explain the flyby anomaly of spacecrafts in the gravitational field of the earth as well as the acceleration of masses in the retarded gravitational fields of spiral galaxies.<ref>{{Cite web |last=Raju |first=Chandrakant |date=2013-11-27 |title=Retarded gravitation theory |url=https://arxiv.org/pdf/1102.2945.pdf |access-date=2024-03-22 |publisher=School of Mathematical Sciences, Universiti Sains Malaysia |place=Penang, Malaysia |language=en |format=PDF |arxiv=1102.2945}}</ref>
In 2016, researchers from the '''gravitational-wave observatory LIGO''' reported the first direct measurement of gravitational waves generated by the collision of two black holes (gravitational wave event '''GW150914''').<ref>{{Cite journal |last=LIGO Scientific Collaboration and Virgo Collaboration |last2=Abbott |first2=B. P. |last3=Abbott |first3=R. |last4=Abbott |first4=T. D. |last5=Abernathy |first5=M. R. |last6=Acernese |first6=F. |last7=Ackley |first7=K. |last8=Adams |first8=C. |last9=Adams |first9=T. |last10=Addesso |first10=P. |last11=Adhikari |first11=R. X. |last12=Adya |first12=V. B. |last13=Affeldt |first13=C. |last14=Agathos |first14=M. |last15=Agatsuma |first15=K. |date=2016-02-11 |title=Observation of Gravitational Waves from a Binary Black Hole Merger |url=https://link.aps.org/doi/10.1103/PhysRevLett.116.061102 |journal=Physical Review Letters |volume=116 |issue=6 |pages=061102 |doi=10.1103/PhysRevLett.116.061102}}</ref> Already in 2017 the Nobel Prize in Physics was awarded for the first direct observation of gravitational waves.<ref>{{Cite web |title=The Nobel Prize in Physics 2017 |url=https://www.nobelprize.org/prizes/physics/2017/advanced-information/ |access-date=2024-03-16 |website=NobelPrize.org |language=en-US}}</ref>
On 17th August 2017 a '''merging binary neutron star''' was observed independently and simultaneously by the '''Advanced LIGO''' and '''Virgo''' detectors (gravitational wave event '''GW170817''') and the '''Fermi Gamma-ray Burst Monitor''' as well as the '''Anticoincidence Shield for the Spectrometer for the International Gamma-Ray Astrophysics Laboratory''' (gamma ray burst event '''GRB 170817A''').<ref>{{Cite journal |last=LIGO Scientific Collaboration |last2=Virgo Collaboration |last3=Monitor |first3=Fermi Gamma-Ray Burst |last4=INTEGRAL |date=2017-10-20 |title=Gravitational Waves and Gamma-rays from a Binary Neutron Star Merger: GW170817 and GRB 170817A |url=http://arxiv.org/abs/1710.05834 |journal=The Astrophysical Journal Letters |volume=848 |issue=2 |pages=L13 |doi=10.3847/2041-8213/aa920c |issn=2041-8205}}</ref> These observations prove that the propagation velocity of gravitational waves must be extremely close to that of electromagnetic waves.
The velocities of the solar system, of the Milky Way or the Local Group’s motion relative to the cosmic microwave background (CMB) frame indicate an anisotropy of the universe observed from the solar system. This anisotropy contradicts the cosmological principle, and is not taken into account in the ΛCDM model. Nevertheless, the results of the '''Planck mission''' from 2018 clearly show that there is a CMB anisotropy, which can be described by a dipole with an amplitude of around 3.36 Millikelvin. This dipole is interpreted as the result of a Doppler effect due to the movement of the solar system in relation to the source of the CMB: the solar system is moving with a velocity of 370 kilometres per second and the Local Group is moving with a velocity of more than 600 kilometres per second, which is around two parts per million of the speed of light.<ref>{{Cite journal |last=Aghanim |first=N. |last2=Akrami |first2=Y. |last3=Arroja |first3=F. |last4=Ashdown |first4=M. |last5=Aumont |first5=J. |last6=Baccigalupi |first6=C. |last7=Ballardini |first7=M. |last8=Banday |first8=A. J. |last9=Barreiro |first9=R. B. |last10=Bartolo |first10=N. |last11=Basak |first11=S. |last12=Battye |first12=R. |last13=Benabed |first13=K. |last14=Bernard |first14=J.-P. |last15=Bersanelli |first15=M. |date=2020-09-01 |title=Planck 2018 results – I. Overview and the cosmological legacy of Planck – 29. Cosmic Microwave Background |url=https://www.aanda.org/articles/aa/abs/2020/09/aa33880-18/aa33880-18.html |journal=Astronomy & Astrophysics |language=en |volume=641 |pages=2–3 |doi=10.1051/0004-6361/201833880 |issn=0004-6361}}</ref>
[[File:Webb finds most distant known galaxy (JADES-GS-z14-0 annotated pullout NIRCam image) (jades4).tiff|thumb|right|JADES-GS-z14-0 taken with the Near-Infrared Spectrograph of the James Webb Space Telescope.]]
In January 2024 the very young and very far galaxis '''JADES-GS-z14-0''' was found with the '''Near-Infrared Spectrograph (NIRSpec)''' of the '''James Webb Space Telescope (JWST)'''. This galaxy assumed to be in a state 290 million years after the big bang. Its redshift measured with the well-known Lyman alpha break at a wavelength about 1.8 micrometres has a value of a good 14, which is a very high value for an astronomical object, but much lower than that of the cosmic microwave background.<ref>{{Cite web |date=2024-05-30 |author=Stefano Carniani, Kevin Hainline |title=NASA’s James Webb Space Telescope Finds Most Distant Known Galaxy |url=https://webbtelescope.org/contents/early-highlights/nasas-james-webb-space-telescope-finds-most-distant-known-galaxy |website=webbtelescope.org}}</ref> The high redshift cannot be explained by the ΛCDM model. In March 2025 it was published that the galaxy JADES-GS-z14-0 indicates oxygen in its electromagnetic spectrum at 7.7 micrometres, which according to the ΛCDM model should not be present at the time of the universe.<ref>{{Cite journal |last=Helton |first=Jakob M. |last2=Rieke |first2=George H. |last3=Alberts |first3=Stacey |last4=Wu |first4=Zihao |last5=Eisenstein |first5=Daniel J. |last6=Hainline |first6=Kevin N. |last7=Carniani |first7=Stefano |last8=Ji |first8=Zhiyuan |last9=Baker |first9=William M. |last10=Bhatawdekar |first10=Rachana |last11=Bunker |first11=Andrew J. |last12=Cargile |first12=Phillip A. |last13=Charlot |first13=Stéphane |last14=Chevallard |first14=Jacopo |last15=D’Eugenio |first15=Francesco |date=2025-05-07 |title=Photometric detection at 7.7 μm of a galaxy beyond redshift 14 with JWST/MIRI |url=https://www.nature.com/articles/s41550-025-02503-z |journal=Nature Astronomy |language=en |volume=9 |issue=5 |pages=729–740 |doi=10.1038/s41550-025-02503-z |issn=2397-3366}}</ref>
In February 2024, a study explained the anomalies in the rotation curves of more than hundred spiral galaxies of different types from the '''SPARC''' ('''S'''pitzer '''P'''hotometry and '''A'''ccurate '''R'''otation '''C'''urves) Galaxy collection taken with the '''Spitzer Space Telescope''', by accounting for '''retarded gravitational potentials of baryonic matter''' that is accreted by the galaxies, and without taking into account any dark matter or modifying general relativity.<ref>{{Cite journal |last=Glass |first=Yuval |last2=Zimmerman |first2=Tomer |last3=Yahalom |first3=Asher |date=2024-02-20 |title=Retarded Gravity in Disk Galaxies |url=https://www.preprints.org/manuscript/202402.1088/v1 |journal=Symmetry |language=en |volume=16 |issue=4 |pages=387 |doi=10.3390/sym16040387 |issn=2073-8994}}</ref><ref>{{Cite journal |last1=Wagman |first1=Michal |first2=Lawrence Paul |last2=Horwitz |first3=Asher |last3=Yahalom |title=Retardation theory of eleven galaxies |journal=Physica Scripta |language=en |volume=99 |issue=10 |date=2024-09-01 |issn=1402-4896 |doi=10.1088/1402-4896/ad6c8d |url=https://iopscience.iop.org/article/10.1088/1402-4896/ad6c8d |access-date=2025-06-07}}</ref>
In December 2025 it was confirmed that the gamma ray burst '''GRB 250314A''' with a redshift of 7.3 is linked to a '''supernova''' during the era of re-ionisation around 730 million years after Big Bang. The gamma ray burst was detected in March 2025 by the Space-based multi-band astronomical '''Variable Objects Monitor (VOM)''', and its afterglow was observed by the '''James Webb Space Telescope (JWST)'''.<ref>{{Cite journal |last=Levan |first=A. J. |last2=Schneider |first2=B. |last3=Floc’h |first3=E. Le |last4=Brammer |first4=G. |last5=Tanvir |first5=N. R. |last6=Malesani |first6=D. B. |last7=Martin-Carrillo |first7=A. |last8=Rossi |first8=A. |last9=Saccardi |first9=A. |last10=Sneppen |first10=A. |last11=Vergani |first11=S. D. |last12=An |first12=J. |last13=Atteia |first13=J.-L. |last14=Bauer |first14=F. E. |last15=Buat |first15=V. |date=2025-12-01 |title=JWST reveals a supernova following a gamma-ray burst at z ≃ 7.3 |url=https://www.aanda.org/articles/aa/abs/2025/12/aa56581-25/aa56581-25.html |journal=Astronomy & Astrophysics |language=en |volume=704 |pages=L8 |doi=10.1051/0004-6361/202556581 |issn=0004-6361}}</ref><ref>{{Cite journal |last=Cordier |first=B. |last2=Wei |first2=J. Y. |last3=Tanvir |first3=N. R. |last4=Vergani |first4=S. D. |last5=Malesani |first5=D. B. |last6=Fynbo |first6=J. P. U. |last7=Postigo |first7=A. de Ugarte |last8=Saccardi |first8=A. |last9=Daigne |first9=F. |last10=Atteia |first10=J.-L. |last11=Godet |first11=O. |last12=Götz |first12=D. |last13=Qiu |first13=Y. L. |last14=Schanne |first14=S. |last15=Xin |first15=L. P. |date=2025-12-01 |title=SVOM GRB 250314A at z ≃ 7.3: An exploding star in the era of re-ionization |url=https://www.aanda.org/articles/aa/abs/2025/12/aa56580-25/aa56580-25.html |journal=Astronomy & Astrophysics |language=en |volume=704 |pages=L7 |doi=10.1051/0004-6361/202556580 |issn=0004-6361}}</ref> This discovery poses another very serious challenge to the ΛCDM model, as according to this model, events that produce heavy elements, such as supernovae, cannot have occurred in this early phase of the universe.
In April 2026 '''Andreas Malcherek''' published his book on "Gravitation und Elektromagnetismus – Eine Alternative zur allgemeinen Relativitätstheorie" ("Gravity and Electromagnetism – An Alternative to the General Theory of Relativity", an English version of this book is supposed to be published later). He has developed a new theory of gravity that builds on the basic work of Oliver Heaviside<ref>Oliver Heaviside: ''A gravitational and electromagnetic analogy'', The Electrician, vol.31, pp. 281–282 (part I), p. 359 (part II), 1893</ref> and Oleg D. Jefimenko.<ref>Oleg D. Jefimenko: ''Causality, electromagnetic induction, and gravitation : a different approach to the theory of electromagnetic and gravitational fields'', Electret Scientific Co., Star City, West Virginia, 1992</ref> It passes all tests of general relativity and provides new insights into its astrophysical applications without requiring the use of dark matter or dark energy. Instead, the theory uses gravitomagnetic field equations with retarded gravitational potentials in Minkowski spacetime to formulate a relativistic theory of gravitomagnetism.<ref>Andreas Malcherek: ''Gravitation und Elektromagnetismus – Eine Alternative zur allgemeinen Relativitätstheorie'', Springer Vieweg, Wiesbaden, April 2026, [https://doi.org/10.1007/978-3-658-49807-8 DOI 978-3-658-49807-8], Softcover ISBN 978-3-658-49806-1</ref>
[[File:MoM-BH*-1.png|thumb|right|Image of MoM-BH*-1 taken by the James Webb Space Telescope (JWST).]]
In August 2026, images taken by the '''James Webb Space Telescope (JWST)''' in the constellation Cetus revealed a candidate for a '''quasi-star''', designated '''MoM-BH*-1''', which has a mass of more than one million solar masses and, with a redshift of almost eight, poses yet another major challenge to the ΛCDM model.<ref>{{cite journal |last1=Naidu |first1=Rohan P. |display-authors=etal |title=A gas-enshrouded and gas-reddened black hole at cosmic dawn |journal=Nature |publisher=Springer Science and Business Media LLC |volume=656 |issue=8127 |date=2026-08-12 |issn=0028-0836 |doi=10.1038/s41586-026-10846-4 |pages=329–333 |pmid=42587117 |pmc=13468124 |bibcode=2026Natur.656..329N |language=en}}</ref>
===References===
<references></references>
<div style="clear:both"></div>
f97nl0dmq1wdqi2kjmwldohrgtbmgxh
Moving objects in retarded gravitational potentials of an expanding spherical shell/Classical approach
0
468144
4672216
4639179
2026-09-24T21:15:02Z
Bautsch
630029
<div style="clear:both"></div>
4672216
wikitext
text/x-wiki
<noinclude>
{{Chapter navigation|Brief historical review|Retarded gravitational potentials}}
</noinclude>
==Classical approach==
This Wikibook assumes a huge amount of dark matter that is in a huge shell behind the visible part of the universe. This matter is rather cold, and it can be assumed that it is in a in thermal equilibrium. Therefore, the electromagnetic radiation emitted by this shell can be represented by the Planck radiation law. The emission of such a cold source of electromagnetic radiation is not visible and additionally the radiation has experienced a strong redshift due to the relative velocity of the fast expanding emitting shell as well as due to the gravitation of the mass of this shell.
The gravitational force <math>F</math> between two masses <math>m</math> and <math>M</math> in a distance of <math>s</math> is given by Isaac Newton's law of universal gravitation with the gravitational constant <math>G</math>:
:<math>F = G \, \frac {m \cdot M} {s^2}</math>
In a thought experiment it is possible to investigate the behaviour of a mass <math>m</math> that is located within a spherical shell with the mass <math>M</math>. The approach described in 1687 by '''Isaac Newton''' (1643–1727 in Gregorian dates) is called '''Newton's shell theorem'''.<ref name="Newton philo">{{cite book|last=Newton|first=Isaac|title=Philosophiae Naturalis Principia Mathematica |trans-title=The Mathematical Principles of Natural Philosophy |url=https://archive.org/details/philosophinatur03newtgoog |date=1687 |location=London |page=193 }}</ref> According to this theorem a mass <math>m</math> within a homogeneous and spherically symmetric shell with a mass <math>M</math> experiences no net gravitational force. Additionally, this is regardless of the location of the mass <math>m</math> within the shell as well as of its velocity.
This behaviour can be easily explained with the following consideration: let a mass <math>m</math> be within a homogeneous and spherically symmetric shell with the radius <math>r</math> and the areal density <math>\rho_a</math>. Then the area <math>A</math> and the mass <math>M</math> of the shell can be expressed as:
:<math>A = 4\pi \cdot r^2</math>
:<math>M = \int\limits_{A} \mathrm d M = \int\limits_{A} \rho_a \cdot \mathrm d A = \rho_a \cdot 4\pi \cdot r^2</math>
[[File:Aequivalenz.der.Gravitationskraft.png|thumb|right|upright=1.5|About the equivalence of the gravitational force to a mass <math>m</math> in a homogeneous and spherically symmetric shell with the two area elements <math>\mathrm d A_1</math> and <math>\mathrm d A_2</math>.]]
If we take an axis symmetrical double cone where the tips of the two cones are located at the position of the mass <math>m</math> within a homogeneous and spherically symmetric shell, we get the situation shown in the adjacent figure.
For the two infinitesimally small area elements <math>\mathrm d A_1</math> and <math>\mathrm d A_2</math> in the distances <math>s_1</math> and <math>s_2</math> of a mass <math>m</math> with the same infinitesimally small angle elements <math>\mathrm d \alpha</math>:
:<math>\mathrm d A_1 = \frac {\pi} {4} \, s_1^2 \cdot \mathrm d \alpha^2</math>
:<math>\mathrm d A_2 = \frac {\pi} {4} \, s_2^2 \cdot \mathrm d \alpha^2</math>
For the appropriate masses <math>\mathrm d M_1</math> and <math>\mathrm d M_2</math> of the two area elements:
:<math>\mathrm d M_1 = \rho_a \cdot \mathrm d A_1 = \rho_a \cdot \frac {\pi} {4} \, s_1^2 \cdot \mathrm d \alpha^2</math>
:<math>\mathrm d M_2 = \rho_a \cdot \mathrm d A_2 = \rho_a \cdot \frac {\pi} {4} \, s_2^2 \cdot \mathrm d \alpha^2</math>
With Newton's law of universal gravitation, we can express the two infinitesimally small gravitational forces <math>\mathrm d F_1</math> and <math>\mathrm d F_2</math> due to the masses of the two area elements:
:<math>\mathrm d F_1 = G \, \frac {m \cdot \mathrm d M_1} {s_1^2} = G \, \frac {m \cdot \rho_a \cdot \frac {\pi} {4} \, s_1^2 \cdot \mathrm d \alpha^2} {s_1^2} = \frac {\pi} {4} \, G \cdot m \cdot \rho_a \cdot \mathrm d \alpha^2</math>
:<math>\mathrm d F_2 = G \, \frac {m \cdot \mathrm d M_2} {s_2^2} = G \, \frac {m \cdot \rho_a \cdot \frac {\pi} {4} \, s_2^2 \cdot \mathrm d \alpha^2} {s_2^2} = \frac {\pi} {4} \, G \cdot m \cdot \rho_a \cdot \mathrm d \alpha^2</math>
It is obvious that both forces have the same value, and since they must be exactly directed to opposite directions, they add to zero. In other words: a mass within a spherical shell does not experience any net gravitational force at all.
It is worth noting that this classical approach assumes the '''infinite propagation speed of gravitational waves''', which is applicable for static but not for dynamic situations as well as huge systems. It is well known that force laws that are based on a finite propagation speed of potential effects, such as those governing the Coulomb force or the gravitational force, depend on the velocity and the acceleration of the bodies that cause the potentials.<ref>{{Cite journal |last=Lima |first=Fabio M. S. |date=2020-10-01 |title=Nonzero Gravitational Force Exerted by a Spherical Shell on a Body Moving Inside It, and Cosmological Implications |url=https://doi.org/10.1134/S0202289320040088 |journal=Gravitation and Cosmology |language=en |volume=26 |issue=4 |pages=387–398 |doi=10.1134/S0202289320040088 |issn=1995-0721}}</ref> This is also reflected in '''Mach's principle''' which, in fairly general terms, states that local physical laws are determined by the large-scale structure of the universe. This principle dates back to a publication by the 19th-century German physicist and philosopher '''Ernst Mach''' (1838–1916).<ref>{{Cite web |title=Die Mechanik in ihrer Entwickelung |last=Mach |first=Ernst |date=1883-05-01 |url=https://archive.org/details/diemechanikinih03machgoog/page/n232/mode/2up |access-date=2026-06-06 |website=Internet Archive |language=de}}</ref> An aspect of the influence of the large-scale structure of the universe given by retarded potentials is investigated in the next chapter.
===References===
<references></references>
<div style="clear:both"></div>
lqjbbq83cxrsj04t7w67hietn2mdmzg
Moving objects in retarded gravitational potentials of an expanding spherical shell/Retarded gravitational potentials
0
468145
4672214
4637264
2026-09-24T21:13:52Z
Bautsch
630029
<div style="clear:both"></div>
4672214
wikitext
text/x-wiki
<noinclude>
{{Chapter navigation|Classical approach|Gravitational redshift}}
</noinclude>
==Retarded potentials==
Already the German physicist and astronomer '''Karl Schwarzschild''' (1873–1916) described retarded potentials for elecrodynamic fields (he still used the term "electrokinetic potential") in 1903.<ref>{{Cite journal |last=Schwarzschild |first=Karl |url=https://gdz.sub.uni-goettingen.de/id/PPN252457811_1903 |title=Zur Elektrodynamik |trans-title=On electrodynamics |journal=Nachrichten von der Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-Physikalische Klasse |location=Göttingen |date=1903 |pages=127}}</ref> These potentials with a delayed effect were adopted one year later with reference to Schwarzschild by the German mathematician '''Alexander Wilhelm von Brill''' (1842–1935) in ''Über zyklische Bewegung'' (English: "About cyclic movement"), where he coined the term "retardiertes Potential" (English: "retarded potential") in a footnote. Furthermore, he emphasized that these retarded potentials would cause a non-zero divergence in space, i.e. that there would be sources and sinks or that the medium would have the possibility of storing or releasing potential energy.<ref>{{Cite journal |last=von Brill |first=Alexander |date=1904 |editor-last=Clebsch |editor-first=Alfred |editor2-last=Neumann |editor2-first=Carl Gottfried |editor3-last=Klein |editor3-first=Felix |editor4-last=van Dyck |editor4-first=Walther |editor5-last=Hilbert |editor5-first=David |title=Über zyklische Bewegung |trans-title=About cyclic movement |journal=Mathematische Annalen |language=de |location=Tübingen |publisher=Benedictus Gotthelf Teubner |publication-place=Leipzig |publication-date=1904 |volume=58 |pages=473}}</ref> Retarded potentials are a mathematical description of potentials in a field theory in which a field quantity propagates at a finite speed (speed of light) and not instantaneously. They occur in the investigation of time-dependent problems, such as the radiation of electromagnetic waves.
The time-depending potential <math>\Phi(\vec x,t) </math> is the solution of the inhomogeneous wave equation, where <math>v(\vec x, t)</math> is the inhomogeneity, and <math>c</math> is the speed of the propagation of the waves:
:<math>\frac 1 {c^2} \, \frac {\partial^2 \Phi(\vec x, t)} {\partial t^2} - \Delta\Phi(\vec x, t) = \Box \Phi(\vec x, t) = v(\vec x, t)</math>,
where <math>\Delta = \nabla^2</math> is the Laplace operator, <math>\Box</math> is the D’Alembert operator.
[[File:Vektoren.retardiertes.Potential.png|thumb|right|upright=1|Vectors at a retarded potential.]]
The solution of the inhomogeneous wave equation is called '''retarded potential''', and in three dimensions it can be given as:
:<math>\Phi_{\text{ret}}(\vec x, t) = \frac {1} {4 \pi} \int \frac {v(\vec r, t_{\text{ret}})} {|\vec x - \vec r|} \, \mathrm d^3 r</math>
The retardation is to be interpreted in such a way that a source element <math>v(\vec r, t_{\text{ret}})</math> at the point <math>\vec r</math> and at the time <math>t_{\text{ret}}</math> only influences the potential at the distant point of impact at <math>\vec x</math> at a later time <math>t</math>:<ref>{{Cite web |last=Dragon |first=Norbert |date=2016-09-26 |title=Stichworte und Ergänzungen zu Mathematische Methoden der Physik |trans-title=Keywords and additions to Mathematical Methods in Physics |url=https://www.itp.uni-hannover.de/fileadmin/itp/emeritus/dragon/rech.pdf |access-date=2024-02-25 |pages=222-224 |language=de |format=PDF}}</ref>
:<math>t = t_{\text{ret}} + \frac {|\vec x - \vec r|} {c}</math>
:<math>t_{\text{ret}} = t - \frac {|\vec x - \vec r|} {c}</math>
<math>t_{\text{ret}}</math> is called the '''retarded time'''. At the location <math>\vec x</math> and at the time <math>t</math> the retarded potential only depends on the inhomogeneity <math>v</math> in the retarding back cone of the location. This inhomogeneity has a retarded effect to the solution, and it is delayed with the wave velocity <math>c</math>.
===Retarded gravitational potentials===
Retarded potentials will also occur during the propagation of gravitational waves. For them we can consider the speed of the propagation as equal to the vacuum speed of electromagnetic waves <math>c</math>.
Objects that are moving towards the outer rim of the universe will experience retarded gravitational potentials by the expanding matter that can be assumed at the very edge of the universe. Therefore, the appropriate gravitational forces will have delayed effects, and due to the large distances and the finite velocity of gravitational wave propagation they also will be weaker in the direction of the former location of the objects. As a result, the net gravitational force is directed in the direction of movement of these objects, and therefore, all objects that move outwards will be accelerated in the direction of their own movement, which would become observable as an accelerated expansion of the visible universe.
The gravitational potential <math>\Phi</math> due to a mass <math>M</math> in the distance <math>r</math> is given by:
:<math>\Phi(r) = - \frac {G \cdot M} {r}</math>
The gravitational force <math>F</math> to another mass <math>m</math> results as follows:
:<math>F = - m \, \frac {\mathrm d \Phi(r)} {\mathrm d r} = G \, \frac {m \cdot M} {r^2}</math>
The source element <math>v</math> for gravitaion is depending of the distribution of the mass density <math>\rho</math>:
:<math>v(\vec r, t_{\text{ret}}) = - 4 \pi \, G \, \rho(\vec r, t_{\text{ret}})</math>
Therefore, the '''retarded gravitational potential''' can be expressed as:
:<math>\Phi_{\text{ret}}(\vec x, t) = - \int \frac {G} {|\vec x - \vec r|} \, \mathrm dM = -G \int \frac {\rho \left( \vec r, t - \frac {|\vec x - \vec r|} {c} \right) } {|\vec x - \vec r|} \, \mathrm d^3 r</math>
===In a shell===
[[File:Retardierte.Gravitationspotentiale.png|thumb|right|upright=1.5|Moving mass <math>m</math> with the velocity <math>v</math> in a spherical shell with the mass <math>M</math>, the radius <math>r</math> and its centre <math>\bigcirc</math> in a Euclidean plane.]]
For simplifying the investigation of retarded potentials, it is useful to introduce some geometric parameters and concepts. In the simplified example in the adjacent figure the source term is the linear mass density <math>\lambda_m</math> that is not time-dependant and only exists in the circle of the outer rim with the constant radius <math>r</math> and its centre at <math>\bigcirc</math>:
:<math>x_\bigcirc = 0</math>
:<math>y_\bigcirc = 0</math>
:<math>x^2 + y^2 = r^2 \rarr \lambda_m = \text{ constans}</math>
In all other locations within the plane the linear mass density <math>\lambda_m</math> is zero:
:<math>x^2 + y^2 \neq r^2 \rarr \lambda_m = 0</math>
All mass elements outside the regarded plane have an symmetrical effect to the mass, and therefore, in these locations the contribution of the mass elements to the potential can be neglected for the determination of inhomogeneity:
:<math>z \ne 0 \rarr \lambda_m = 0</math>
Furthermore, the mass element <math>\mathrm d M</math> on the homogenous circumference <math>C</math> of a circle with the radius <math>r</math> is given by:
:<math>\mathrm d M = \lambda_m \cdot \mathrm d C = \lambda_m \cdot r \cdot \mathrm d \alpha</math>
:<math>M = \int \mathrm d M = \int\limits_{0}^{2\pi} \lambda_m \cdot r \cdot \mathrm d \alpha = \lambda_m \cdot 2 \pi \cdot r = \lambda_m \cdot C</math>
The cosine formula gives us the relation between the location of the mass point <math>m</math> in the horizontal distance <math>x</math> of the origin <math>\bigcirc</math> of the circle with the radius <math>r</math>, when the mass element on the circle <math>\mathrm d M</math> is in the direction of the angle <math>\alpha</math> and the distance <math>s</math>:
:<math>r^2 = x^2 + s^2 - 2xs \, \cos (\pi - \alpha) = x^2 + s^2 + 2xs \, \cos \alpha</math>
In the normalised standard form of the quadratic equation, we get:
:<math>s^2 + 2xs \, \cos \alpha + x^2 - r^2 = 0</math>
The solution for the distance <math>s</math> is:
:<math>s = \sqrt {x^2 \, \cos^2 \alpha - x^2 + r^2} - x \, \cos \alpha</math>
It is obvious that the following simplifications are valid:
* <math>x = 0 \rarr s = r</math>
* <math>\alpha = 0 \rarr s = r - x</math>
* <math>\alpha = \pm \frac {\pi} {2} \rarr s = \sqrt {x^2 + r^2}</math>
* <math>\alpha = \pi \rarr s = r + x</math>
[[File:Retardierte.Gravitationspotentiale.x-trans.png|thumb|right|upright=1.5|Moving mass <math>m</math> with the velocity <math>v</math> in a spherical shell with the mass <math>M</math> and the radius <math>r</math> in a Euclidean plane. The origin of the coordinate system is shifted to the mass <math>m</math>.]]
The origin of the coordinate system can be also shifted to the mass <math>m</math>:
:<math>x_\bigcirc = - x(t)</math>
:<math>y_\bigcirc = 0</math>
The retarded time <math>t_{\text{ret}}</math> and the retarded potential <math>\Phi_{\text{ret}}(\vec x, t)</math> are given as follows, where <math>c</math> represents the propagation speed of the potentials:
:<math>t_{\text{ret}} = t - \frac {s} {c}</math>
===Illustration===
In a simplified example we only consider the infinitesimally small angles <math>\mathrm d \alpha</math> in the origin of a spherical shell with the radius <math>r</math> and the areal density <math>\rho_A</math>.
====Symmetrical geometry====
If the mass <math>m</math> is in the centre of a spherical shell with the radius <math>r = s_0</math> we have the following situation:
<gallery caption="Retarded gravitational potentials for a symmetrical situation" perrow=1 widths=720 heights=270>
RetardiertesPotential.t0.png|The retarded potentials of the two symmetric mass elements <math>\mathrm d M_0 \propto \mathrm d A_0</math> that simultaneously act to the mass <math>m</math>.
</gallery>
* Both angle elements <math>\mathrm d \alpha</math> are equal.
* Both distances <math>s_0</math> are equal to <math>r</math>.
* Both areal elements <math>\mathrm d A_0</math> are equal.
* Both mass elements <math>\mathrm d M_0</math> are equal.
* The retarded times of the gravitational potentials of both mass elements <math>t_{ret} = \frac {s_0} {c} = \frac {r} {c}</math> are equal.
In this situation the mass <math>m</math> does not experience any acceleration in the classical approach (see above) or if its velocity is zero.
====Moving masses====
The situation is changed, if the masses are moving starting at <math>t = t_0</math> within a time span of <math>\Delta t</math>. The mass <math>m</math> moves with the velocity <math>v_m > 0</math> to the right and the two mass elements <math>\mathrm d M_1 \propto \mathrm d A_1</math> and <math>\mathrm d M'_1 \propto \mathrm d A'_1</math> move with the radial velocity <math>v_M > 0</math>:
<gallery caption="Retarded gravitational potentials for an asymmetrical situation" perrow=1 widths=720 heights=270>
RetardiertesPotential.t1.png|The retarded potentials of the two asymmetric mass elements <math>\mathrm d M_1 \propto \mathrm d A_1</math> and <math>\mathrm d M'_1 \propto \mathrm d A'_1</math> that don't act simultaneously to the mass <math>m</math>.
</gallery>
At the time <math>t_1</math> the mass has moved with the velocity <math>v_m > 0</math> the distance <math>\Delta s</math> to the right:
:<math>t_1 = t_0 + \Delta t</math>
:<math>\Delta s = v_m \cdot \Delta t</math>
The spherical shell has expanded with the velocity <math>v_M > 0</math> and gained an increased radius:
:<math>\Delta r = v_M \cdot \Delta t</math>
:<math>s_1 = s_0 + \Delta s + \Delta r = s_0 + v_m \cdot \Delta t + v_M \cdot \Delta t = s_0 + (v_M + v_m) \, \Delta t</math>
:<math>s'_1 = s_0 - \Delta s + \Delta r = s_0 - v_m \cdot \Delta t + v_M \cdot \Delta t = s_0 + (v_M - v_m) \, \Delta t</math>
Therefore:
:<math>s_1 > s'_1</math>
This means that the distance of mass element <math>\mathrm d M_1</math> to the mass <math>m</math> is always greater than the distance of mass element <math>\mathrm d M'_1</math> to the mass <math>m</math>.
For the two retarded times for these distances to the location of <math>m</math> we get:
:<math>t_{\text{ret},1} = t_1 - \frac {s_1} {c}</math>
:<math>t'_{\text{ret},1} = t_1 - \frac {s'_1} {c}</math>
With <math>t_0= 0</math> and therefore <math>t_1 = \Delta t</math>:
:<math>t_{\text{ret},1} = \left( 1 - \frac {v_M + v_m} {c} \right) \cdot \Delta t - \frac {s_0} {c}</math>
:<math>t'_{\text{ret},1} = \left( 1 - \frac {v_M - v_m} {c} \right) \cdot \Delta t - \frac {s_0} {c}</math>
Therefore:
:<math>t'_{\text{ret},1} > t_{\text{ret},1}</math>
This means that the retarded time for the mass element <math>\mathrm d M'_1</math> is always later than the retarded time for the mass element <math>\mathrm d M_1</math>.
====Common case====
[[File:RetardiertesPotential.Diagramm.png|thumb|upright=2|right|A moving mass m with the velocity <math>\color{Blue}v_m</math> with the position <math>x_m(t)</math> at the time <math>t</math>. Two further moving mass elements with the velocities <math>v_M</math> and <math>-v_M</math> with the positions <math>x(t_r)</math> and <math>x'(t'_r)</math> at the retarded times <math>t_r</math> and <math>t'_r</math>. The propagation velocity of the interacting waves is <math>\color{OliveGreen}c</math>. The effective distances between the two mass elements and the mass m are <math>\color{OliveGreen}s(t)</math> and <math>\color{OliveGreen}s'(t)</math>.]]
In the adjacent diagram there are three mass points that move in space. Their speed is given as follows:
* Outer mass element top (green): <math>v_M</math>
* Mass point in between (blue): <math>\color{Blue}v_m</math>
* Outer mass element botton (green): <math>-v_M</math>
Their time-depending location is given by these three functions for their x-coordinates:
:<math>\color{Blue}x_m(t) = v_m \cdot t</math>
:<math>\color{OliveGreen}x(t_r) = -v_M \cdot t_r</math>
:<math>\color{OliveGreen}x'(t'_r) = v_M \cdot t'_r</math>
The time-depending effective distances <math>\color{OliveGreen}s(t)</math> and <math>\color{OliveGreen}s'(t)</math> between the outer mass elements and the mass point in between them is the difference of the corresponding x-coordinates and linked to the propagation velocity of the interacting waves <math>\color{OliveGreen}c</math> as follows:
:<math>\color{OliveGreen}s(t) = x_m(t) - x(t_r) = (t - t_r) \cdot c</math>
:<math>\color{OliveGreen}s'(t) = x'(t'_r) - x_m(t) = (t - t'_r) \cdot c</math>
As a result, the corresponding retarded times <math>t_r</math> and <math>t'_r</math> for the two outer mass elemens are:
:<math>t_r = \frac {c - v_m} {c + v_M} \cdot t</math>
:<math>t'_r = \frac {c + v_m} {c + v_M} \cdot t</math>
And therefore:
:<math>x(t_r) = -v_M \cdot \frac {c - v_m} {c + v_M} \cdot t</math>
:<math>x'(t'_r) = v_M \cdot \frac {c + v_m} {c + v_M} \cdot t</math>
And:
:<math>\color{OliveGreen}s(t) = \left( v_M \cdot \frac {c - v_m} {c + v_M} + v_m \right) \cdot t</math>
:<math>\color{OliveGreen}s'(t) = \left( v_M \cdot \frac {c + v_m} {c + v_M} - v_m \right) \cdot t</math>
These are the time-depending effective distances for the gravitational potentials of the outer mass elements at their retarded times that have a simultaneous effect to the mass in between them at the time <math>t</math>.
For <math>t > 0</math> and <math>c > v_M > v_m > 0</math> and according to the diagram we can make the following assumption for the comparison of the effective distances:
:<math>t'_r > t_r</math>
:<math>\frac {c + v_m} {c + v_M} \cdot t > \frac {c - v_m} {c + v_M} \cdot t</math>
:<math>v_m > -v_m</math> ''quod erat demonstrandum''
This means that the retarded time of the upper mass element is always later than the retarded time of the lower mass element.
As well as:
:<math>s(t) > s'(t)</math>
:<math>v_M \cdot \frac {c - v_m} {c + v_M} + v_m > v_M \cdot \frac {c + v_m} {c + v_M} - v_m</math>
:<math>v_M \cdot \frac {- v_m} {c + v_M} + v_m > v_M \cdot \frac {v_m} {c + v_M} - v_m</math>
:<math>2 \cdot v_m > 2 \cdot v_M \cdot \frac {v_m} {c + v_M}</math>
:<math>1 > \frac {v_M} {c + v_M}</math> ''quod erat demonstrandum''
Since <math>c + v_M</math> is always greater than <math>v_M</math>, the assumption is proven.
This means that the effective distance of the moving mass in between them to the lower mass element is always greater than to the moving upper mass element. Finally, it can be stated that the absolute value of the retarded gravitational potential at the location of the moving mass in between them is always greater for the upper mass element than for the lower mass element, if both mass elements have the same value <math>M</math>:
:<math>\Phi(t_r) = - \frac {G \cdot M} {s(t)}</math>
:<math>\Phi'(t'_r) = - \frac {G \cdot M} {s'(t)}</math>
:<math>|\Phi(t_r)| < |\Phi'(t'_r)|</math>
The moving mass <math>m</math> experiences the corresponding retarded forces:
:<math>F = - G \, \frac {m \cdot M} {s(t)^2}</math>
:<math>F' = + G \, \frac {m \cdot M} {s'(t)^2}</math>
The net force to the mass <math>m</math> is the sum of both:
:<math>F_{net} = F' + F = G \cdot m \cdot M \cdot \left( \frac {1} {s'(t)^2} - \frac {1} {s(t)^2} \right)</math>
For the acceleration <math>a</math> of the mass <math>m</math> we find:
:<math>a = \frac {F_{net}} {m} = G \cdot M \cdot \left( \frac {1} {s'(t)^2} - \frac {1} {s(t)^2} \right)</math>
Since <math>s'(t) < s(t)</math> the net force <math>F_{net}</math> as well as the acceleration <math>a</math> are positive, and the mass experiences an acceleration to positive x-values, i.e. in the direction of its movement.
====Special case====
[[File:RetardiertePotentiale.1.png|thumb|upright=2.5|Diagram for two retarded gravitational potentials of two moving masses with the positions <math>\color{Gray}x'(t)</math> (grey) and <math>\color{Red}x(t)</math> (red) that have an effect to another moving mass at the position <math>\color{DarkBlue}x_m(t)</math> (dark blue). The positions of the two outer masses at the retarded times <math>\color{CornflowerBlue}t_r</math> and <math>\color{Dandelion}t'_r</math> are indicated in light blue (<math>\color{CornflowerBlue}x'(t'_r)</math>) and orange (<math>\color{Dandelion}x(t_r)</math>). The path of the gravitational waves is indicated by the diagonal dashed green lines.]]
Let us have a look at the following special case:
:<math>c = 1</math>
:<math>v_M = \frac {1} {2}</math>
:<math>v_m = \frac {1} {4}</math>
Their time-depending location is given by these three functions for their x-coordinates:
:<math>\color{DarkBlue}x_m(t) = v_m \cdot t = \frac {t} {4}</math>
:<math>\color{Red}x(t) = -v_M \cdot t = - \frac {t} {2}</math>
:<math>\color{Gray}x'(t) = +v_M \cdot t = + \frac {t} {2}</math>
The time-depending effective distances <math>\color{Green}s(t)\color{Black}</math> and <math>\color{Green}s'(t)\color{Black}</math> between the outer mass elements and the mass point in between them is the difference of the corresponding x-coordinates:
:<math>\color{Green}s(t) = x_m(t) - x(t_r) = \frac {t} {4} + \frac {t_r} {2}\color{Black}</math>
:<math>\color{Green}s'(t) = x'(t'_r) - x_m(t) = \frac {t'_r} {2} - \frac {t} {4}\color{Black}</math>
As a result, the corresponding retarded times <math>\color{Dandelion}t_r</math> and <math>\color{CornflowerBlue}t'_r</math> for the two outer mass elemens are:
:<math>\color{Dandelion}t_r = \frac {\frac {3} {4}} {\frac {3} {2}} \cdot t = \frac {1} {2} \cdot t</math>
:<math>\color{CornflowerBlue}t'_r = \frac {\frac {5} {4}} {\frac {3} {2}} \cdot t = \frac {5} {6} \cdot t</math>
Therefore:
:<math>\color{Dandelion}x(t_r) = -\frac {1} {2} \cdot \frac {\frac {3} {4}} {\frac {3} {2}} \cdot t = -\frac {1} {4} \cdot t</math>
:<math>\color{CornflowerBlue}x'(t'_r) = \frac {1} {2} \cdot \frac {\frac {5} {4}} {\frac {3} {2}} \cdot t = \frac {5} {12} \cdot t</math>
:<math>\color{Dandelion}s(t) = \left( \frac {1} {2} \cdot \frac {\frac {3} {4}} {\frac {3} {2}} + \frac {1} {4} \right) \cdot t = \frac {1} {2} \cdot t</math>
:<math>\color{CornflowerBlue}s'(t) = \left( \frac {1} {2} \cdot \frac {\frac {5} {4}} {\frac {3} {2}} - \frac {1} {4} \right) \cdot t = \frac {1} {6} \cdot t</math>
====Thought experiment====
In a thought experiment we look at the following situation, where <math>c</math> is the propagation speed of the gravitational waves. The time line starts at <math>t = 0</math>, and the effect of the retarded potentials is synchronised with the occurence of the moving mass. The left moving mass element is regarded at <math>t = 0</math> and <math>t = 1</math>, the right moving mass element is regarded at <math>t = 0</math> and <math>t = 2</math>, whilst the moving mass <math>m</math> is regarded at <math>t = 8</math> and <math>t = 11</math>, when the retarded gravitational potentials have their effect to the mass.
:<math>v_M = c</math>
:<math>v_m = \frac {v_M} {3}</math>
:<math>s = c \cdot t</math>
In the following diagram the velocity of the waves is normalised and used without unit:
:<math>c = 1</math>
And therefore, only for simplification and without any units, too:
:<math>s = t</math>
<gallery caption="Retarded gravitational potentials at different points in time" perrow=1 widths=720 heights=360>
RetardiertesPotential.0-11.png|Retarded potentials of the two expanding mass elements with the mass <math>\mathrm d M</math>. These mass elements move on the left hand side from <math>\mathrm d A_0</math> at <math>t = 0</math> to <math>\mathrm d A_1</math> at <math>t = 1</math>), and on the right hand side from <math>\mathrm d A_0</math> at <math>t = 0</math> to <math>\mathrm d A_2</math> at <math>t = 2</math>. They simultaneously act to the mass <math>m</math> at <math>t_0 = 8</math> (mass in grey, path for gravitational waves in black) and at <math>t' = 11</math> (mass in red, path for gravitational waves in blue). The numbers in the figure give the time and the length in steps without units.
</gallery>
The effective distances <math>s_0</math> for the gravitational potential at <math>t_0 = 8</math> are both equal:
:<math>s_0 = t_0 - t_{\text{ret,0}} = 8</math>
At the time <math>t' = 11</math> the mass experiences the retarded potentials on the left-hand side (distance to mass element is <math>s_1</math>) and at the right-hand side (distance to mass element is <math>s_2</math>):
:<math>s_1 = t' - t_{\text{ret,1}} = 10</math>
:<math>s_2 = t' - t_{\text{ret,2}} = 9</math>
All inhomogeneities contribute to the retarded potential at the location of the mass with the value they had at the retarded times <math>t_{\text{ret,0}}</math>, <math>t_{\text{ret,1}}</math> and <math>t_{\text{ret,2}}</math>:
:<math>t_{\text{ret,0}} = t_0 - \frac {s_0} {c} = 8 - \frac {8} {1} = 0</math>, this corresponds to the effective time of the two area elements <math>\mathrm d A_0</math>.
:<math>t_{\text{ret,1}} = t' - \frac {s_1} {c} = 11 - \frac {10} {1} = 1</math>, this corresponds to the effective time of the area element <math>\mathrm d A_1</math> on the left.
:<math>t_{\text{ret,2}} = t' - \frac {s_2} {c} = 11 - \frac {9} {1} = 2</math>, this corresponds to the effective time of the area element <math>\mathrm d A_2</math> on the right.
For a mass <math>m</math> moving from the centre of a shell to the right the angle element <math>\mathrm d \alpha_1</math> to the left becomes smaller than the original angle element <math>\mathrm d \alpha_0</math>, and the angle element <math>\mathrm d \alpha_2</math> to the right becomes greater than the original angle element <math>\mathrm d \alpha_0</math>:
:<math>\mathrm d \alpha_2 > \mathrm d \alpha_0 > \mathrm d \alpha_1</math>
The following applies to the appropriate mass elements:
:<math>\mathrm d M_0 = \mathrm d M_1 = \mathrm d M_2 = \rho_a \cdot \mathrm d A_0 = \rho_a \cdot 4\pi \cdot s_0^2 \cdot \mathrm d \alpha_0^2</math>
For the net force <math>\mathrm d F</math> to the mass <math>m</math>:
:<math>\mathrm d F = \mathrm d F_2 + \mathrm d F_1 = G \cdot m \cdot \mathrm d M_0 \cdot \left( \frac {1} {s_2^2} - \frac {1} {s_1^2} \right)</math>
For the acceleration <math>\mathrm d a</math> of the mass <math>m</math> we find:
:<math>\mathrm d a = \frac {\mathrm d F} {m} = G \cdot \mathrm d M_0 \cdot \left( \frac {1} {s_2^2} - \frac {1} {s_1^2} \right)</math>
Since <math>s_2 < s_1</math> the net force <math>\mathrm d F</math> is positive, and the mass experiences an acceleration <math>\mathrm d a</math> to the right, i.e. in the direction of its movement. This result is absolutely inline with the findings above in the section "Common case" above.
Furthermore, it is noteworthy to state that the acceleration <math>\mathrm d a</math> is proportional to the areal density <math>\rho_a</math> of the expanding shell:
:<math>\mathrm d a \propto \rho_a</math>
Nevertheless it should be noted that the areal density is decreasing with the expansion and the increasing radius of the outer shell.
====In the light cone====
This section considers the effects of retarded gravitational potentials on very large scales within the light cone of the universe.
The time-depending location of two opposite points on the surface of a sphere expanding radially with the velocity <math>c</math> is given by the functions of their x-coordinates (see diagrams below):
:<math>x'(t) = c \cdot t</math>
:<math>x(t) = -c \cdot t</math>
A mass <math>m</math> that is moving with a lower velocity <math>v</math> on the connecting line between these two points within the sphere is located at:
<math>x_m(t) = v \cdot t</math> with <math>v < c</math>
<gallery caption="Retarded gravitational potentials for an asymmetrical situation in the light cone of the universe" perrow=1 widths=720 heights=720>
LightCone.Mass.png|Mass <math>m</math> at the time <math>t</math> within the light cone of the universe seeing two opposite area elements <math>\mathrm dA(t)</math> and <math>\mathrm dA'(t)</math> on the lateral surface of the light cone with the same solid angle. At the two retarded times <math>t_r</math> and <math>t_r' </math> the corresponding two area elements <math>\mathrm dA(t_r)</math> and <math>\mathrm dA'(t_r')</math> on the lateral surface of the light cone with different solid angles.
RetardedPotentialsDiagram0.5.png|Diagram with the retarded times <math>t_r</math> and <math>t_r'</math> (dark red) of the gravitational potentials of the masses of two expanding area elements <math>\mathrm dA</math> and <math>\mathrm dA'</math> moving in opposite directions with the velocity <math>c</math> (green lines). They are observed at the time <math>t</math> from a mass <math>m</math> (blue) moving with the velocity <math>v</math>. All objects started at <math>t = 0</math> from the origin of the coordinate system. The propagation speed of the potentials is <math>c</math> (red dotted lines). The time is plotted on the horizontal axis, and the x-coordinates of all objects on the vertical axis.
</gallery>
The classical shell theorem assumes an infinite propagation speed of gravitation, and it states that within a spherical symmetric shell no gravitational net force is exerted by the shell to any mass within the shell. This can easily be proven by looking at infinitesimal mass and force elements <math>\mathrm dM</math> and <math>\mathrm dF</math> of the shell that can be computed by their areal mass density <math>\rho_A</math>, their distances <math>s</math> from the mass <math>m</math> and the gravitational constant <math>G</math>:
:<math>\mathrm dM = \rho_A(t) \cdot \mathrm dA(t) = \rho_A(t) \cdot \frac {\pi} {4} \cdot s(t)^2 \cdot \mathrm d\alpha^2</math>
:<math>\mathrm dF = G \cdot m \cdot \frac {\mathrm dM} {s(t)^2} = \frac {\pi} {4} \cdot G \cdot \rho_A(t) \cdot \mathrm d\alpha^2</math>
Since the area elements <math>\mathrm dA(t)</math> or <math>\mathrm dA'(t)</math> have the same areal mass density and are visible under the same solid angular element <math>\mathrm d\alpha^2</math> as seen from mass <math>m</math> (see blue lines at the time <math>t</math> at the right-hand side of the diagram above), the two corresponding force elements have the same value. Because of the opposite direction of these two force elements the net gravitational force element <math>\mathrm dF_{net}</math> adds up to zero. This is exactly what Newton's shell theorem says, if gravity has a direct effect at any distance.
This is not the case if the retardation of the gravitational potentials is considered because of their propagation speed <math>c</math>. The retarded times are given by (in the diagram above in dark red):
:<math>t_r = \left( 1 - \frac {v} {c} \right) \cdot \frac {t} {2}</math>
:<math>t_r' = \left( 1 + \frac {v} {c} \right) \cdot \frac {t} {2}</math>
The two area elements are linearly expanding with the time. If they are observed at these two retarded times, the densities and the area elements are given by:
:<math>\rho(t_r) = \rho(t) \cdot \frac {t} {t_r}</math> with <math>0 < t_r < t</math>
:<math>\rho(t_r') = \rho(t) \cdot \frac {t} {t_r'}</math> with <math>0 < t_r' < t</math>
:<math>\mathrm dA(t_r) = \mathrm dA(t) \cdot \frac {t_r} {t}</math> with <math>t > 0</math>
:<math>\mathrm dA(t_r') = \mathrm dA(t) \cdot \frac {t_r'} {t}</math> with <math>t > 0</math>
The mass of the mass elements does not change over time:
:<math>\mathrm dM = \rho(t_r) \cdot \mathrm dA(t_r) = \rho(t_r') \cdot \mathrm dA(t_r') = \rho(t) \cdot \mathrm dA(t)</math>
Nevertheless, due to the different distances, the two corresponding force elements that act in opposite directions are not equal anymore. The distances <math>s(t_r)</math> and <math>s'(t_r')</math> between the area elements <math>\mathrm dA(t)</math> or <math>\mathrm dA'(t)</math> and the mass <math>m</math> in between them at the retarded times <math>t_r</math> and <math>t_r'</math> are given as follows:
:<math>s(t_r) = v \cdot t + c \cdot t_r = (t - t_r) \cdot c</math>
:<math>s'(t_r') = c \cdot t_r' - v \cdot t = (t - t_r') \cdot c</math>
:<math>\mathrm dF_{net} = G \cdot m \cdot \mathrm dM \cdot \left( \frac {1} {s'(t_r')^2} - \frac {1} {s(t_r)^2} \right)</math>
It can easily be shown that <math>s(t_r) > s'(t_r')</math>, and therefore, it follows that <math>\mathrm dF_{net} > 0</math>. I.e. due to the gravitational retardation the mass <math>m</math> is accelerated in its direction of movement, and as a result the mass in the outer regions of an expanding universe will be agglomerated.
[[File:Trajektorien.retardierte.Potentiale.png|thumb|The trajectories of fast-moving cosmic objects under the influence of retarded gravitational potentials originating from the outer regions of the universe. The dark red lines show the linear evolution of the Hubble radius with speed of light c. Cosmic objects moving at different speeds are subjected to different acceleration forces, which are the stronger the faster the objects move.]]
===References===
<references></references>
<div style="clear:both"></div>
ptpvzfmlrl3tp984pa7ckbrgm7x8dyt
Moving objects in retarded gravitational potentials of an expanding spherical shell/Gravitational redshift
0
468146
4672217
4670418
2026-09-24T21:15:51Z
Bautsch
630029
<div style="clear:both"></div>
4672217
wikitext
text/x-wiki
<noinclude>
{{Chapter navigation|Retarded gravitational potentials|Cosmology of retarded interaction}}
</noinclude>
==Gravitational redshift==
=== Schwarzschild radius ===
[[File:Schwarzschild.radius.redshift.png|thumb|right|upright=2|Relation between the Schwarzschild radius <math>r_S</math> and a redshift of an emitted photon <math>z</math> in a distance <math>r</math> caused by the gravitation of the massive sphere in the centre.]]
The Schwarzschild radius <math>r_S</math> of any mass <math>M</math> in a Schwarzschild sphere (typically a black hole) is given by:
:<math>r_S = \frac {2 \, G \, M} {c^2}</math>
Apart from its mass, the Schwarzschild radius is only depending on two natural constants:
* Gravitational constant: <math>G = 6.67 \cdot 10^{-11} \frac {\text {m}^3} {\text {kg} \, \text {s}^2}</math>
* Speed of light: <math>c = 299792458 \frac {\text {m}} {\text {s}}</math>
The gravitational redshift z of photons emitted to the opposite direction of the Schwarzschild sphere and with a distance to the centre of the sphere <math>r</math> can be computed by the following formula:
:<math>z = \frac {1} {\sqrt {1 - \frac {2 \, G \, M} {r \, c^2}}} - 1 = \frac {1} {\sqrt {1 - \frac {r_S} {r}}} - 1</math>
The redshift of very far objects such as the galaxy JADES-GS-z14-0 has a value of more than 14, and this is much larger than expected. The possible high speed of such a galaxy is not sufficient for such a high value. The distance of this galaxy is given by 13.5 billion light-years, and its age is assumed to be 290 million years after Big Bang.
The cosmic microwave background even has a redshift value of 1089, which is extremely high. It is associated with the first hydrogen atoms that occurred some 380,000 years after the Big Bang. The radial spectrum of the cosmic microwave background fits perfectly to the radiation of a black body with a temperature of <math>T = 2.7 \, \text{Kelvin}</math>. If the spectral alpha line of the Lyman series of hydrogen was emitted at a wavelength of <math>\lambda_{\alpha ,0} = 121 \, \text{nm}</math> (corresponds to 10.2 electronvolts (eV)), its redshifted observation at a redshift of <math>z = 1089</math> would have a wavelength <math>\lambda_{\alpha}</math> of:
:<math>\lambda_{\alpha} = (z + 1) \cdot \lambda_{\alpha ,0} = 132.5 \, \text {µm}</math>
This wavelength is related to a terahertz (THz) radiation with a frequency <math>f_{\alpha}</math> of
:<math>f_{\alpha} = \frac {c} {\lambda_{\alpha}} = 2.26 \, \text{THz}</math>,
which is totally absorbed by the earth's atmosphere, and therefore, cannot be observed from the surface of the earth. At this wavelength the energy of a photon <math>E_{ph}</math> is:
:<math>E_{ph} = h \cdot f_{\alpha} \approx 0.01 \, \text {eV}</math>
The colour temperature <math>T_{CMB}</math> of the cosmic microwave background is just under 3000 Kelvin:
:<math>T_{CMB} = (z + 1) \cdot T = 2970 \, \text {K}</math>.
Using the Boltzmann constant <math>k_B = 1.380649 \cdot 10^{-23} \frac {\text{J}} {\text{K}}</math> this corresponds to a kinetic energy <math>E_{CMB}</math> of a free particle of:
:<math>E_{CMB} = \frac {3} {2} \cdot k_B \cdot T_{CMB} \approx 0.38 \, \text {eV}</math>
This energy is well below the ionisation energy of hydrogen respectively the Rydberg unit of energy, which is 13.6 electronvolts (eV), as well as below the exitation energy of the alpha line of the Lyman series of hydrogen.
<div style="clear:both"></div>
=== In a shell ===
[[File:Gravitation.in.a.hollow.spherical.cap.png|thumb|right|upright=1|The sum of all gravitational forces between the mass <math>m</math> and a spherical arc (blue) with the linear mass density <math>\lambda_M</math> that represents a hollow spherical cap. It has the same effect as the gravitational force between the mass <math>m</math> and an effective spherical mass <math>M_{eff}</math> (black).]]
However, a gravitational redshift can not only occur outside of spheres, but also within in a hollow spherical cap. To estimate its gravitational redshift, the effective mass <math>M_{eff}</math> of such a cap can be integrated for any point within the cap. The corresponding effect can be described by a Schwarzschild sphere with the Schwarzschild radius.
For very fast-moving objects we can assume that they only experience the retarded gravitational potentials of the mass elements in front of them, since the backward potentials are even much more retarded, and therefore, contribute only weakly to the net gravity. In the following section only the arc of the shell cap is considered. The gravitational forces rectangular to the direction of movement are very small and can be neglected.
This also holds in first approximation for the gravitational forces behind the very fast-moving moving mass <math>m</math>. If the distance <math>d</math> between the mass <math>m</math> and the shell is given, we can carry out an estimation for the fraction of the retarded forces from the opposite part of the shell in the distance <math>2 \, R - d</math>, where <math>R</math> is radius of the universe (cf. previous section [[Moving objects in retarded gravitational potentials of an expanding spherical shell/Retarded gravitational potentials|"Retarded gravitational potentials"]]):
:<math>F_{right} \propto \frac {1} {d^2}</math>
:<math>F_{left} \propto \frac {1} {(2 \, R - d)^2}</math>
If we assume that the distance is a fraction <math>n</math> of the radius
:<math>d = \frac {R} {n}</math>
then the ratio of the two forces has the following relation:
:<math>\frac {F_{right}} {F_{left}} = \left( \frac {2 \, R - \frac {R} {n}} {\frac {R} {n}} \right)^2 = (2 \, n - 1)^2</math>
[[File:Ratio.retarded.gravitational.forces.versus.redshift.png|thumb|right|upright=2|The ratio of the retarded gravitational forces in the distance of oberserved objects versus the corresponding redshifts]]
This means if the distance <math>d</math> is a tenth of the radius <math>R</math> of the universe, the error by neglecting the left force would be less than 0.3 percent. This distance is corresponding to a redshift of about 7.5.
In the diagram on the left the ratio of the two forces is plotted against the redshift which is observed at corresponding distances. The high values of redshift at far distant objects seem to be dominated by the gravitaional redshift, whereas at shorter distances the redshift is dominated by the Doppler effect.
<div style="clear:both"></div>
=== Computation ===
[[File:Effektive.Masse.png|thumb|right|upright=2|Diagram for integrating the effective mass of an outer shell <math>M_{eff}</math> acting on a fast moving mass <math>m</math> by varying the centre angle <math>\alpha</math> from <math>-\alpha_R</math> to <math>\alpha_R</math>.<br/>
<math>R</math> = radius of the visible universe<br/>
<math>d</math> = distance of mass <math>m</math> to the outer shell<br/>
<math>\lambda_M</math> = linear mass density of the outer shell]]
The bold arc on the right-hand side of the diagram is representing all mass elements of the outer shell of the universe with the linear mass density <math>\lambda_M</math> in front of the mass <math>m</math> that is moving to the right with high velocity. The outer shell is consisting of dark matter (mainly hydrogen), and in the central area of the universe this dark matter might only be visible due to the cosmic microwave background.
We use the following constant values for the estimates derived from these premises:
* Light-year: <math> 1 \, \text {ly} = 9.46 \cdot 10^{15} \text {m}</math>
* Hubble length: <math>R = 1.36 \cdot 10^{26} \text {m} = 14,4 \cdot 10^{9} \text {ly}</math> (14.4 billion light-years)
The mass of this arc <math>M_{arc}</math> can be computed by integrating the arc between the angles <math>-\alpha_R</math> and <math>+\alpha_R</math> with its linear mass density <math>\lambda_M</math>:
:<math>\alpha_R = \arcsin \frac {x} {R}</math>
:<math>M_{arc} = \int_{-\alpha_R}^{+\alpha_R} \mathrm {dM} = \int_{-\alpha_R}^{+\alpha_R} R \, \lambda_M \, \mathrm {d\alpha} = 2 \, \int_{0}^{\alpha_R} R \, \lambda_M \, \mathrm {d\alpha} = 2 \, R \, \lambda_M \, \alpha_R</math>
The mass of the whole shell <math>M_S</math> is given by integrating a '''complete circle''':
:<math>M_S = \int_{-\pi}^{+\pi} \mathrm {dM} = 2 \pi \, R \, \lambda_M</math>
The Pythagorean theorem gives the following result for the half chord of the circle:
:<math>h = \sqrt {2 \, R \, d - d^2}</math>
[[File:Effektive.Masse.Detail.png|thumb|right|upright=2|Detail for integrating the infinitesimal mass element <math>\mathrm {dM}</math> acting on a mass <math>m</math> by varying the angle <math>\alpha</math>.<br/>
<math>\alpha</math> = angle as seen from origin <math>\bigcirc</math><br/>
<math>R</math> = radius of the universe (Hubble length)<br/>
<math>h</math> = height of the mass element <math>\mathrm {dM}</math><br/>
<math>d</math> = distance of mass <math>m</math> to the outer shell<br/>
<math>s</math> = distance between mass <math>m</math> and mass element <math>\mathrm {dM}</math><br/>
<math>e</math> = auxiliary sagitta<br/>
<math>\beta</math> = angle as seen from <math>m</math>]]
If the distance <math>d</math> between the mass <math>m</math> and the outer shell is given, we can compute the distances of the mass <math>m</math> to any infinitesimal mass element <math>\mathrm {dM}</math> on the arc depending on the angle <math>\alpha</math>:
:<math>\alpha = \arcsin \frac {h} {R}</math>
:<math>s(\alpha) = \sqrt {2R^2 - 2 \, R \, d + d^2 - 2 \, R \, (R - d) \, cos \, \alpha} \, \ge \, d</math>
The angle <math>\beta</math> as seen from the moving mass m to the infinitesimal mass element <math> \mathrm {dM}</math> on the arc can be derived by applying the law of sines and is given by the following expression:
:<math>\beta = \arcsin \left( \frac {R} {s} \sin \, \alpha \right) = \arcsin \frac {h} {s}</math>
With the auxiliary sagitta <math>e</math> we get:
:<math>e = R \, \left( 1 - \cos \alpha \right)</math>
:<math>\cos \beta = \frac {d - e} {s}</math>
The vertical components of the gravitational forces are symetrical, and therefore, their net effect is zero. The net horizontal force of this arc <math>F_{hor}</math> that is accelerating the mass <math>m</math> in horizontal direction can be achieved by integrating a semi-circle with the correction factor <math>\cos \beta</math>:
:<math>F_{hor} = G \, m \int_{-\frac {\pi} {2}}^{+\frac {\pi} {2}} \frac {\cos \beta} {s^2} \, \mathrm {dM} = G \, m \, R \, \lambda_M \, \int_{-\frac {\pi} {2}}^{+\frac {\pi} {2}} \frac {\cos \beta} {s^2} \, \mathrm {d\alpha}</math>
With the effective gravitational force <math>F_{hor}</math> that acts on the mass <math>m</math> by the gravitational force of the virtual effective mass <math>M_{eff}</math> that is located in the intersection point of the trajectory of the mass <math>m</math> with the outer shell, we have to consider the varying distances <math>s</math> between <math>m</math> and the infinitesimal mass elements <math>\mathrm {dM}</math> along the arc:
:<math>F_{hor} = G \, m \frac {M_{eff}} {d^2} = G \, m \, R \, \lambda_M \, \int_{-\frac {\pi} {2}}^{+\frac {\pi} {2}} \frac {\cos \beta} {s^2} \, \mathrm {d\alpha}</math>
We finally get the effective mass <math>M_{eff}</math> that is acting via gravitational forces on the mass <math>m</math> in the distance <math>d</math>:
:<math>M_{eff} = R \, \lambda_M \, d^2 \int_{-\frac {\pi} {2}}^{+\frac {\pi} {2}} \frac {\cos \beta} {s^2} \, \mathrm {d\alpha} = \frac {M_S \, d^2} {2 \pi} \int_{-\frac {\pi} {2}}^{+\frac {\pi} {2}} \frac {\cos \beta} {s^2} \, \mathrm {d\alpha}</math>
<div style="clear:both"></div>
=== Schwarzschild distance ===
The '''Schwarzschild distance''' <math>d_S</math> of this effective mass <math>M_{eff}</math> is equal to the Schwarzschild radius of a sphere with the effective mass:
:<math>d_S = \frac {2 \, G \, M_{eff}} {c^2}</math>
The gravitational redshift <math>z</math> of photons emitted to the centre of the universe that is caused by the effective mass in the distance <math>d</math> of the outer shell is:
:<math>z = \frac {1} {\sqrt {1 - \frac {2 \, G \, M_{eff}} {d \, c^2}}} - 1 = \frac {1} {\sqrt {1 - \frac {d_S} {d}}} - 1</math>
The equations above can be solved for the Schwarzschild distance <math>d_S</math> of every shell with the mass <math>M_S</math>. With the following condition we can get the solutions with <math>d_S = d</math>, where <math>z (d_S) = \infty</math>:
:<math>2 \, G \, M_{eff} (M_S, d_S) = d_S \, c^2</math>
Therefore <math>d_S</math> can be determined for a given <math>\lambda_M</math>:
:<math>d_S (\lambda_M) = \frac {2 \, G} {c^2} M_{eff} (M_S, d_S) = \frac {2 \, G \, R \, \lambda_M \, d_S^2} {c^2} \int_{-\frac {\pi} {2}}^{+\frac {\pi} {2}} \frac {d_S - R \, (1 - \cos \alpha)} {{\left( 2R^2 - 2 \, R \, d_S + d_S^2 - 2 \, R \, (R - d_S) \, \cos \, \alpha \right)}^{\frac {3} {2}}} \, \mathrm {d\alpha}</math>
The Schwarzschild distance <math>d_S</math> can be interpreted as the distance between the surface of the Hubble sphere with the Hubble radius <math>R</math> and the inner Schwarzschild sphere of the black shell, which is the visible limit of the universe. This limit is referred to as '''Schwarzschild limit'''. The Hubble radius <math>R</math> would be the distance between an observer in the centre of the universe and all objects that are receding from him at the speed of light. It can be expressed by the Hubble time <math>t_H</math>:
:<math>R = t_H \cdot c = 454 \cdot 10^{15} \, \text{s} \cdot {c} = 14.4 \cdot 10^{9} \, \text{a} \cdot {c} = 14.4 \cdot 10^{9} \, \text{ly} = 1.36 \cdot 10^{26} \, \text{m}</math>
<gallery caption="Redshift z as a function of the distance" perrow=2 widths=480 heights=480>
Redshift.versus.distances.circles.png|Circles with a given redshift z within the Hubble circle (dashed line) with the Hubble radius according to the Lambda-CDM model.
Redshift.versus.distances.png|Redshift as a function of the distance of the objects from the centre of the universe according to the Lambda-CDM model (blue) and according to the model of the Schwarzschild limit (orange). According to the latter model, astronomical objects with a certain redshift are significantly further away than according to the Lambda-CDM model. At the speed of light, a distance of 10<sup>25</sup> metres corrensponds to a time span of about one billion years.
</gallery>
<div style="clear:both"></div>
=== Results ===
It is assumed that the outer shell is expanding, spherical and consists of dark matter. The effective mass of the outer shell is computed only considering the geometrical region in front of the object. This assumption is based on the fact that the retarded gravitational potentials from the opposite border of the black shell can be neglected. The following diagrams show the solution in two different representations over the relation of the mass of the invisible universe surrounding the visible universe in a spherical shell in units of the mass of the visible universe <math>q_M</math>:
* The Schwarzschild distance <math>d_S</math> between the visible border of the universe and the invisible outer shell of the universe.
* The radius of the visible universe <math>R_v = R - d_S</math>.
* Mass of the universe: <math>M_{universe} = 2.97 \cdot 10^{53} \text {kg}</math>:
The overall mass of the invisible black shell <math>M_S</math> can be expressed in relation to the mass of the visible universe <math>M_{universe}</math>:
:<math>q_M = \frac {M_S} {M_{universe}}</math>
[[Moving objects in retarded gravitational potentials of an expanding spherical shell/Table with computed results|→ See appendix: table with results for different values of <math>\lambda_M</math>]] numerically computed by a [[Moving objects in retarded gravitational potentials of an expanding spherical shell/Java program|Java program]].
In this model the mass <math>M_S</math> of the invisible outer black shell continuously increases by absorbing mass from the visible universe, due to the net forces of the retarded gravitational potentials and the corresponding acceleration in direction of the black shell. More and more matter is moving from the visible universe behind the event horizon, where it becomes invisible and unaccessible, but leaves its gravitational action to the visible part of the universe. Furthermore, the mass of the black shell is in the same magnitude as the mass of the visible universe even in the earlier cosmical ages.
<gallery caption="Diagrams for the early evolvement of the universe considering the effects of the retarded gravitational potentials of an invisible outer shell" perrow=2 widths=480 heights=480>
Gravitaional.redshift.Black.shell.Schwarzschild.distance.png|Scheme with the outer black shell of the invisible universe with dark matter (right), the shell of the origin of the cosmic microwave background (CMB, dark red) as well as a far galaxy (light red). The matter in the vicinity of the black shell is accelerated towards the shell due to the effect of retarded gravitational forces and may disappear into it by crossing the event horizon at the Schwarzschild distance. During the era of transforming dark matter into "dark energy" the Schwarzschild distance was fastly increasing.
Black.shell.over.time.png|Evolvement of the effective mass of the black shell of the universe with the decreasing radii of the visible universe and the increasing Schwarzschild distances as well as the rapidly increasing (effective) masses of the black shell.
MinimumDistance.Redshift.Mass.png|Schwarzschild distance <math>d_S</math> between the visible border of the universe and the invisible outer sphere of the universe as a function of the mass of the black shell in units of the mass of the visible universe. The Schwarzschild distance was grewing much faster than the mass of the black shell around <math>M_S \approx 0.96865 \cdot M_{universe}</math>.
R v.versus.shell.mass.png|Radius of the visible universe <math>R_v = R - d_S</math> as a function of the mass of the invisible universe surrounding it in a spherical black shell in units of the mass of the visible universe. The size of the visible universe began to shrink very suddenly at the time around <math>M_S \approx 0.96865 \cdot M_{universe}</math>.
</gallery>
It is very noteworthy to recapitulate that the age of the cosmic microwave background with its afterglow light pattern is about 380,000 years (the corresponding Schwarzschild distance belongs to a shell mass <math>M_S = 2.8769 \cdot 10^{53} \, \text {kg} = 0.96865 \cdot M_{universe}</math>, Schwarzschild distance <math>d_S = 377 \cdot 10^{3} \, \text {ly} = 3.56 \cdot 10^{21} \, \text {m}= 2.62 \cdot 10^{-5} \cdot R</math>), exactly where the radius of the visible universe had significantly begun to decrease in relation to the Hubble radius (see right diagram). The so-called "dark ages" begun, and they lasted for several hundreds of million years.
The age of the oldest known galaxy JADES-GS-z14-0 represents the youngest stars that emit light, and therefore, the end of the dark ages. Its age is about 290 million years (the corresponding Schwarzschild distance belongs to a shell mass <math>M_S = 2.92 \cdot 10^{53} \, \text {kg} = 0,984 \cdot M_{universe}</math>, Schwarzschild distance <math>d_S = 293 \cdot 10^{6} \, \text {ly} = 2.78 \cdot 10^{24} \, \text {m}= 0.020 \cdot R</math>), where the conversion from dark matter to "dark energy" during the so-called "dark ages" was finished.
At the break-even point, where the masses of the visible universe and the black shell have the same value, the Schwarzschild distance is about 860 million light-years (it belongs to a shell mass <math>M_S = 2.97 \cdot 10^{53} \, \text {kg} = M_{universe}</math>).
=== Schwarzschild radius of the universe ===
[[File:Cosmical.Radii.png|thumb|upright=2|right|Schwarzschild and other cosmical radii. µ Cephei (Garnet Star) is a red supergiant star and A0620-00 is a black hole within the Milky Way. Sagittarius A* is the supermassive black hole at the Galactic Center of the Milky Way. This Virgo Supercluster is a supercluster of galaxies containing the Virgo Cluster and the Local Group which includes the Milky Way.]]
[[File:Diagram.universe.png|thumb|upright=2|right|Simplified diagram of the radius <math>r</math> of the universe over time from origin at <math>t = 0</math> to time of universe <math>t_U</math>. The particle horizon is constantly expanding with the speed of light <math>c</math>:<br/><br/>
Radius of end of inflationary period (Schwarzschild radius of universe):<br/><math>r_{S,universe} = t_U \cdot c = \frac {2 \, G \, M_{universe}} {c^2} \approx 14283 \text { Mpc} \approx 46,6 \cdot 10^9 \text { ly}</math><br/><br/>
Co-moving radius of the cosmic microwave background (CMB):<br/><math>r_{CMB} \approx 14000 \text { Mpc} \approx 45,7 \cdot 10^9 \text { ly}</math><br/><br/>
Hubble radius at Hubble time <math>t_H</math>:<br/><math>r_H = t_H \cdot c \approx 4480 \text { Mpc} \approx 14,6 \cdot 10^9 \text { ly}</math><br/><br/>
Radius of visible universe as seen from observer:<br/><math>r_V \approx 4230 \text { Mpc} \approx 13,8 \cdot 10^9 \text { ly}</math><br/><br/>
Time of the observer: <math>t_{observer} = 2 \cdot t_H</math><br/>
Time of the visible event horizon: <math>t_v = 2 \cdot t_H - \frac {r_V} {c} > t_H</math>]]
It is possible that we are living within a huge black hole with an extrely low mass density.<ref>{{Cite web |last=Mcbryan |first=Bernard |date=2013-12-01 |title=Living in a Low Density Black Hole, Non-Expanding Universe -- Perhaps a Reflecting Universe |url=https://www.researchgate.net/publication/368273520_Our_Universe_as_a_Black_Hole_in_a_Larger_Space |url-status=live}}</ref><ref>{{Cite web |url=https://ui.adsabs.harvard.edu/abs/2015JCos...2513063T/abstract |access-date=2026-06-15 |website=ui.adsabs.harvard.edu |last=Tatum |first=Eugene Terry |date=2015-06-01 |title=Could Our Universe have Features of a Giant Black Hole?}}</ref><ref>{{Cite web |url=https://osf.io/preprints/osf/wbna2_v1 |first1=Aude |last1=Corbeel |first2=Pierre |last2=Magain |title=Our Universe as a Black Hole in a Larger Space |date=2023-01-01 |access-date=2026-06-15 |website=osf.io}}</ref><ref>{{Cite web |date=2025-04-14 |last=Christillin |first=Paolo |title=The Cosmological Constant (s) vs. the Evolution of Our Black Hole Universe |url=https://www.ijap.latticescipub.com/portfolio-item/a106005010425/ |access-date=2026-06-15 |language=en-US}}</ref>
The Schwarzschild radius of the visible universe <math>r_{S,universe}</math> can be computed by its mass:
:<math>r_{S,universe} = \frac {2 \, G \, M_{universe}} {c^2} \approx 4.4 \cdot 10^{26} \text { m} \approx 46.6 \cdot 10^{9} \text { ly}</math>
This value fits rather well with the radius of the invisible particle horizon at the end of inflationary period of the universe today. The question is whether this coincidence is the case by accident or due to varying values of the mass of the universe or the gravitational constant <math>G</math>. Of course it is disputable, whether the mass of the universe and the gravitational constant are constant on large time scales. However, the British mathematician and astrophysicist '''Edward Arthur Milne''' (1896–1950) published already in 1935 in his book on "Relativity, Gravitation and World-Structure" the possibility that the gravitational constant could be proportional to the time since the creation of the universe <math>t</math> and reciprocal to the mass of the visible universe <math>M_{universe,visible}</math>.<ref>{{Cite book |last=Milne |first=Edward Arthur |title=Relativity, gravitation and world-structure |publisher=Clarendon Press |year=1935 |location=Oxford, Great Britain |pages=291-294 |language=en |chapter=World picture on the simple kinematic model - Comparison with local Newtonian gravitation and dynamics - §§412-418}}</ref>
:<math>G(t) = \frac {c^3} {M_{universe,visible}} \, t</math>
According to Edward Arthur Milne the cosmological constant <math>\Lambda</math> is in this model:
:<math>\Lambda(t) = \frac {3} {c^2 \, t^2}</math>
Today this value is approximately <math>\Lambda = 1.7 \cdot 10^{-53} \text { m}^{-2}</math>, which is about 6.6 times smaller than the current value of the standard model of cosmology known as the ΛCDM model (CDM = cold dark matter).
The time-dependent relation for the gravitational constant would mean that the gravitational constant is grewing with the following rate, if the mass of the universe keeps constant:
:<math>\frac {\mathrm {d} G} {\mathrm {d} t} = \frac {c^3} {M_{universe,visible}} \approx 9.1 \cdot 10^{-29} \frac {\text {m}^3} {\text {kg s}^3} > 0</math>
As a result the gravitational constant would change in the following magnitudes, which are much smaller than the uncertainty of the measurements of the gravitational constant of around <math>2.2 \cdot 10^{-5}</math>:
:<math>\frac {\frac {\mathrm {d} G} {\mathrm {d} t}} {G} \approx 1.36 \cdot 10^{-18} \frac {1} {\text {s}} \approx 4.3 \cdot 10^{-11} \frac {1} {\text {a}}</math>
Only after half a million of years the corresponding change would be in the magnitude of the uncertainty.
If we substitute the expression of Milne for the gravitational constant in the formula for the Schwarzschild radius of the universe, we get:
:<math>r_{S,universe}(t) = \frac {2 \, c^3 \, M_{universe}} {c^2 \, M_{universe,visible}} \, t</math>
Assuming that the whole universe is visible, and therefore, <math>M_{universe} = M_{universe,visible}</math>, this value would be two times larger than the value of the Schwarzschild radius computed by the mass of the universe:
:<math>r_{S,universe}(t) = 2 \, c \, t</math>
It is noteworthy to mention that according to the results the following estimates apply for Schwarzschild distances of around 858 million light-years, where the ratio of the mass of black shell to the mass of visible universe was equal to one:
:<math>M_{universe,visible} \approx M_{universe,invisible} = M_{S}</math>
This Schwarzschild distance is similar to the differences of the particle horizon and the plane of the cosmic microwave background (CMB) that is determined by the ΛCDM model that is preferred by most cosmologists today:
:<math>r_{S,universe} - r_{CMB} \approx 0.9 \cdot 10^9 \text { ly}</math>
:<math>r_H - r_V \approx 0.8 \cdot 10^9 \text { ly}</math>
Therefore:
:<math>M_{universe,total} = M_{universe,visible} + M_{universe,invisible} \approx 2 \, M_{universe,visible} \approx 2 \, M_{S}</math>
This assumption is supported by the fact that the mass of ordinary matter within radius of the visible universe <math>r_{visible,universe}</math> has the following value that can be computed by its density <math>\rho_{ordinary \, matter}</math> and the corresponding volume <math>V_{visible,universe}</math> yielded by the Planck Survey of 2013:<ref>{{Cite journal |last=Tatum |first=Eugene Terry |date=2015-06-01 |title=Could Our Universe have Features of a Giant Black Hole? |url=https://ui.adsabs.harvard.edu/abs/2015JCos...2513063T |journal=Journal of Cosmology |volume=25 |pages=13063–13072}}</ref>
:<math>\rho_{ordinary \, matter} = 4.08 \cdot 10^{-28} \frac {\text {kg}} {\text {m}^3}</math>
:<math>r_{visible,universe} = 4.3 \cdot 10^{26} \text { m}</math>
:<math>V_{visible,universe} = \frac {4} {3} \, \pi \, r_{visible,universe}^3 = 3.3 \cdot 10^{80} \text { m}^3</math>
:<math>M_{ordinary \, matter} = \rho_{ordinary \, matter} \cdot V_{visible,universe} = 1.4 \cdot 10^{53} \text { kg} \approx \frac {1} {2} \, M_{universe} = \frac {1} {2} \, 2.97 \cdot 10^{53} \text { kg} \approx 1.5 \cdot 10^{53} \text { kg}</math>
However, if the gravitational constant would be given by the following relation using the total mass of the universe <math>M_{universe,total}</math> including the black shell, the values would match much better:
:<math>G(t) = \frac {c^3} {M_{universe,total}} \, t \approx \frac {c^3} {2 \, M_{universe,visible}} \, t</math>
:<math>r_{S,universe}(t) \approx \frac {2 \, c^3 \, M_{universe,visible}} {2 \, c^2 \, M_{universe,visible}} \, t = c \, t</math>
This value is identical to the radius of the particle horizon of our universe. In this case the change of the gravitational constant would be in the magnitude of its uncertainty only after a million years. The total mass of the universe would not change or influence the gravitational constant even if any mass flow from the visible part of the universe to the invisible outer black shell would decrease the mass of the visible part of the universe. Incidentally, the mass of the outer shell would not change if the matter after flowing from the visible sphere into the outer shell, were to annihilate with any antimatter in the outer shell, since the resulting energy corresponds to the mass according to the law of mass-energy equivalence:
:<math>E = m \cdot c^2</math>
Due to the strong gravitational effect of the outer black shell, any electromagnetic radiation originating from the outer black shell is invisible to any observer within the visible universe. Furthermore, due to the strong gravitational effect of the whole universe, the electromagnetic radiation from the visible universe or the outer black shell could not be perceived by any observer in the hypothetical space outside the outer black shell, since the whole universe is a hyper-large black hole. Therefore, the outer black shell of the universe would be impermeable in both directions.
<div style="clear:both"></div>
=== References ===
<references></references>
<div style="clear:both"></div>
gyvwks7jv4ljo51d7k1lip89n850u3f
Moving objects in retarded gravitational potentials of an expanding spherical shell/Conclusion
0
468147
4672219
4670896
2026-09-24T21:16:58Z
Bautsch
630029
<div style="clear:both"></div>
4672219
wikitext
text/x-wiki
<noinclude>
{{Chapter navigation|Cosmology of retarded interaction|Table with computed results}}
</noinclude>
==Conclusion==
The considerations described above show that '''retarded gravitational potentials''' can contribute to the explanation of the '''accelerated expansion''' of the visible part of the universe, if the outer spherical '''black shell''' of the universe would consist of expanding matter with a huge mass. This would also hold in a steady state universe and even if the black shell would not move at all. In the latter case any moving masses within the black shell would reach the black shell in finite time.
It can also be considered that the effect of the retarded gravitational potentials will accelerate moving objects the more, the faster they move and the closer they are to the black shell. Furthermore, also objects within smaller spherical shells that not only are surrounded by the black shell, but also by other visible objects, will experience the retarded gravitational potentials of these objects, and therefore, they will experience an additional acceleration which is directed outwards. This all leads to an inhomogeneous evolution of the mass density in particular during the early development stages of an inflating universe:
<gallery caption="Evolvement of the mass density in an expanding spherical universe with constant mass" perrow=2 widths=600 heights=300>
Evolvement.universe.instant.gravitation.png|Evolvement of the universe with '''instant gravitational potentials''' in a homogeneous sphere.
Evolvement.universe.retarded.gravitation.png|Evolvement of the universe with '''retarded gravitational potentials''' in an isotropic sphere. Due to the acceleration of matter in the direction of the outer rim of the universe, a shell is growing with a thickness corresponding to its Schwarzschild distance (bluish). This matter within this shell cannot emit any electromagnetic radiation or send any information back to the centre of the universe, since the strong gravitational forces keep the radiation and all masses within the shell.
</gallery>
<big>'''As a result, the universe has become increasingly inhomogeneous, the cosmological principle no longer applies, the conditions for the Friedmann-Lemaître equations are not met, and the Lambda-CDM model is not applicable.'''</big>
[[File:Kosmologisches.Modell.Schwarze.Schale.Rotverschiebung.png|thumb|upright=3|centre|A cosmological model of our isotropic and inhomogeneous universe at the centre, enveloped by an opaque and massive black shell. Viewed from the outer region, our universe is a gigantic black hole. No exchange of information is possible between the inner and outer regions of the black shell. Any matter entering the black shell from the inside or the outside is no longer visible. Therefore, the inner as well as the outer border of the black shell are event horizons.]]
Computing the corresponding and permanently increasing '''Schwarzschild distances''' of the black shell of the universe gives three remarkable points:
# Today we can observe the cosmic microwave background at a cosmic age of 380,000 years, where the Schwarzschild distance was increasing much faster than the mass of the black shell.
# The very distant primordial galaxy JADES-GS-z14-0 has a cosmic age of 290 million years, where the increase of the Schwarzschild distance and the increase of the mass of the black shell became much smaller.
# The Schwarzschild distance for the equality of the masses of the visible universe and the black shell is 860 million light-years. This value is rather close to the distances that are computed by the standard ΛCDM model between the particle horizon that expands with speed of light and the visible horizon that can be observed as the cosmic microwave background.
Cosmologists call the period in between the creation of the cosmic microwave background and the first stars as the dark ages, where dark matter is supposed to be transformed into dark energy. So far, the nature of '''dark matter''', '''dark energy''', '''dark fluid''' or '''negative mass''' is completely unclear, but the increase of the mass of an invisible black shell behind the visible universe could help to find physical explanations for all these concepts and ideas.
According to the definition of dark matter, there is no interaction between this matter and light. The baryonic matter in the black shell causes gravity and also interacts with photons. However, it cannot be observed from the inner region of the universe, which could be misinterpreted as a lack of interaction.
The high velocity of visible objects in the vincity of the black shell as well as the huge mass of the matter in front of them seem to be the reasons for the extreme redshift of their light that can be observed by us. The observation that this redshift is greater than expected for distant objects led to the assumption that the further away these objects are, the more they are accelerated. Another reason for this could be found in the effects of the retarded gravitational potentials of a massive black shell. Furthermore, the additional '''gravitational redshift''' leads to a higher value than expected only by the relativistic Doppler effect. This is in accordance with the observations of very far and young galaxies such as JADES-GS-z14-0 or of the cosmic microwave background (CMB).
The agglomeration of mass in the outer areas of our universe not only leads to a shell with increased mass density, but the high mass density could also be the seed for '''primordial black holes''', which could be a reason for the formation of very early galaxies observed by the James Webb Space Telescope (JWST).<ref>{{Cite web |author=Niranjana Rajalakshmi |title=James Webb Space Telescope reveals unexpected complex chemistry in primordial galaxy |editor=University of Arizona News |url=https://news.arizona.edu/news/james-webb-space-telescope-reveals-unexpected-complex-chemistry-primordial-galaxy |date=2025-03-01 |access-date=2025-06-15 |website=news.arizona.edu |language=en}}</ref> Furthermore, the earliest stars in this region may have already produced heavyier chemical elements, which is not possible according to the ΛCDM model, but can be observed at primordial supernovae as well as in spectrosopic data of primordial galaxies.<ref>{{Cite web |last=information@eso.org |title=Oxygen discovered in most distant known galaxy |url=https://www.eso.org/public/news/eso2507/ |access-date=2025-11-20 |website=www.eso.org |language=en}}</ref>
===Cosmic Voids===
It appears that the gravitational potential of the '''Shapley Supercluster''' is not strong enough to attract our '''Local Group''' at the observed rate. It is hypothesised that a supergiant void – the so-called '''Dipole Repeller''' – on the opposite side of the Local Group causes a gravitational repulsion that imparts additional acceleration to all masses between the Shapley Attractor and the Dipole Repeller.<ref>{{Cite journal |last=Hoffman |first=Yehuda |last2=Pomarède |first2=Daniel |last3=Tully |first3=R. Brent |last4=Courtois |first4=Hélène M. |date=2017-01-30 |title=The dipole repeller |url=https://www.nature.com/articles/s41550-016-0036 |journal=Nature Astronomy |language=en |volume=1 |issue=2 |pages=1–5 |doi=10.1038/s41550-016-0036 |issn=2397-3366}}</ref> However, we know of no negative masses that could cause such a repulsion. Moreover, the situation resembles an outer black shell of the universe which gives all moving masses an acceleration that is always directed towards the outer regions. Therefore, for our local group, it would be more obvious to assume a superposition of the gravitational forces of the black shell with the gravitational forces of the supergiant Shapley Attractor than the gravitational forces of a virtual gravitational dipole between the Shapley Attractor and a void.
The effect of the retarded gravitational potentials could be seen as a "pump of the void", as the inner volume of a large expanding shell becomes thinner and thinner over time. This could be interpreted as a virtual pressure in the voids that is pumping all mass particles towards the outer regions. This effect has also been observed in the largest known structures in the universe, the '''galaxy filaments'''. These huge and massive structures form boundaries between '''cosmic voids'''.<ref>{{Cite web |last=Myers |first=James |date=2024-03-30 |title=Evolution of the Universe: Why Measuring Voids of Nothing Tells Us Something |url=https://thequantumrecord.com/science-news/evolution-of-the-universe-measuring-voids-of-nothing/ |access-date=2025-02-05 |website=The Quantum Record |language=en-CA}}</ref> Indeed retarded gravitational potentials can also help to explain the behaviour and the growth of these voids.
===Galaxies===
Even in much smaller structures, the galaxies themselves, retarded gravitational potentials can be applied for successfully explain the anomalies in their '''rotation curves'''. The Spitzer Space Telescope recorded a large amount of observation data which was compiled in the project “SPARC (Spitzer Photometry and Accurate Rotation Curves) Galaxy collection”. If retarded gravitational potentials are applied to these data and the time-varying distribution of baryonic matter in and around these galaxies is taken into account, neither the assumption of dark matter nor a modification of the general theory of relativity is necessary to explain the observations within their uncertainties.
<ref>{{Cite journal |last1=Yahalom |first1=Asher |title=The Effect of Retardation on Galactic Rotation Curves |journal=Journal of Physics: Conference Series |volume=1239 |issue=1 |date=2019-05-01 |ISSN=1742-6588 |DOI=10.1088/1742-6596/1239/1/012006 |url=https://iopscience.iop.org/article/10.1088/1742-6596/1239/1/012006 |access-date=2025-06-07}}</ref>
<ref>{{Cite journal |last1=Yahalom |first1=Asher |title=Tully–Fisher relations and retardation theory for galaxies |journal=International Journal of Modern Physics D |volume=30 |issue=14 |date=2021-09-17 |ISSN=0218-2718 |DOI=10.1142/S0218271821420086 |url=https://www.worldscientific.com/doi/abs/10.1142/S0218271821420086 |access-date=2025-06-07}}</ref>
<ref>{{Cite journal |last1=Glass |first1=Yuval |last2=Zimmerman |first2=Tomer |last3=Yahalom |first3=Asher |title=Retarded Gravity in Disk Galaxies |url=https://www.preprints.org/manuscript/202402.1088/v1 |journal=Symmetry |language=en |volume=16 |issue=4 |date=2024-03-26 |doi=10.3390/sym16040387 |doi-access=free |bibcode=2024Symm...16..387G |issn=2073-8994 |access-date=2025-02-05}}</ref>
<ref>{{Cite journal |last1=Wagman |first1=Michal |first2=Lawrence Paul |last2=Horwitz |first3=Asher |last3=Yahalom |title=Retardation theory of eleven galaxies |journal=Physica Scripta |language=en |volume=99 |issue=10 |date=2024-09-01 |issn=1402-4896 |doi=10.1088/1402-4896/ad6c8d |url=https://iopscience.iop.org/article/10.1088/1402-4896/ad6c8d |access-date=2025-06-07}}</ref>
===Further implications===
Due to Newton's third law ('''actio = reactio''') the black shell experiences the same retarded gravitational forces as the moving masses within the shell. These forces will cause a deceleration of the shell which is the stronger the closer the masses within the visible universe are to it.
Provided that the '''angular momentum''' of all visible galaxies does not add up to zero<ref>{{Cite journal |last=Lior |first=Shamir, |date=2025-02-28 |title=The distribution of galaxy rotation in JWST Advanced Deep Extragalactic Survey |url=https://academic.oup.com/mnras/article/538/1/76/8019798 |journal=Monthly Notices of the Royal Astronomical Society |language=en |volume=538 |issue=1 |doi=10.1093/mnra |issn=0035-8711}}</ref>, the angular momentum of the entire universe could be enhanced, weakened, compensated to zero or even overcompensated by the angular momentum of the invisible black shell. The moment of inertia <math>I_{shell}</math> of a thin shell with the mass <math>m</math> and the radius <math>r</math> is about 67 percent higher than the moment of inertia <math>I_{sphere}</math> of a solid sphere with the same mass and radius. This can be computed by the ratio of the two moments of inertia:
:<math>\frac {I_{shell}} {I_{sphere}} \approx \frac {\frac {2} {3} m r^2} {\frac {2} {5} m r^2} = \frac {5} {3} = 1.\overline{666}</math>
If matter and '''antimatter''' were created in equal parts during the Big Bang, it would be conceivable that the visible universe consists of the remaining matter and the black shell of the remaining antimatter. This could be a reason for the observed '''baryon asymmetry'''. Since we cannot obtain any information from the black shell, antimatter would not be observable for us. Furthermore, any electromagnetic radiation that leaves the visible universe by passing the limit of the Schwarzschild distance into the black shell cannot return to us or be observed by us.
If the total mass of the universe <math>M_{universe,total}</math>, including the visible universe and the invisible black shell, were constant, and the size of the expanding universe were always determined by its Schwarzschild radius, the gravitational constant
<math>G</math> would be a variable that increases very slowly and linearly with time <math>t</math>:
:<math>G(t) = \frac {c^3} {M_{universe,total}} \, t</math>
However, the computation of the equations of motion based on retarded gravitational forces becomes very expensive, if the black shell is neither homogeneous, nor spherical or symmetrical, or if the concept of spacetime has a structure based on a non-Euclidean geometry. Furthermore, relativistic effects (including the transverse Doppler effect) could cause time dilatation or mass increase that would have to be considered, too. Finally, is would be necessary to consider the loss of mass in the visible universe over the time, since a significant amount of visible matter may have traversed the event horizon that is caused by the huge mass in the black shell of the universe.
It is even conceivable that our universe is becoming heavier due to the accretion of matter from outer regions:
:<math>\frac {\mathrm {d} M_{universe,total}} {\mathrm {d} t} > 0</math>
Viewed from the outside, this matter would disappear into the black shell. Since this matter would remain within the black shell. Therefore, it cannot be seen from the inside, but its gravitational forces would affect all matter inside.
An expanding black shell will emit gravitational waves to the centre of the universe. Since these waves will come from all directions, and as the result, they will interfere everywhere within the observable universe. It is obvious that in regions of constructive interference there will be stronger gravitational forces than in regions of destructive interference. Depending on the degree of coherence of these waves as well as on the homogeneity of the mass distribution in the black shell, the interference pattern could match the geometry of the filaments that are observed in space. This can lead to the formation of condensation points, which act as gravitational attractors for the baryonic matter in their vicinity.
<div style="clear:both"></div>
===References===
<references></references>
<div style="clear:both"></div>
jj95zqoeaq36cypgztggkavkk1lzb4n
Chess Opening Theory/1. e4/1...c5/2. Nf3/2...d5
0
471383
4672183
4635535
2026-09-24T17:41:47Z
~2026-51656-73
3626771
/* */ Baku Gambit
4672183
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|name=Baku Gambit
|eco=[[Chess/ECOB|B27]]
|parent=[[Baku Gambit/1. e4/1...c5|Baku Gambit]] → [[../|2. Nf3]]
}}
== 2...d5? ==
{{Chess/sideline}}
A move that has some popularity with beginners only, who want to open the centre immediately.
Something like a delayed [[Chess Opening Theory/1. e4/1...d5|Scandinavian defence]], the forcing sequence is '''3. exd5''' Qxd5 4. Nc3 (White gains time on Black's queen). Unable to move to a5, as the main line of the Scandinavian, the queen returns to 4...Qd8.
Black has lost time and White is ahead in developing their minor pieces. Black has half-opened their d-file, so White should play 5. d4, or they will find it difficult to later: 5. Bc4? Nc6 and Black controls d4 three times to White's twice.
{{Chess Opening Theory/Footer}}
a9357ozud1t02qcpbw895dm8f1p4dpe
4672184
4672183
2026-09-24T17:42:03Z
Pristome
3519119
Undid edits by [[Special:Contribs/~2026-51656-73|~2026-51656-73]] ([[User talk:~2026-51656-73|talk]]) to last version by JCrue
4672184
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|name=Sicilian defence
|eco=[[Chess/ECOB|B27]]
|parent=[[Chess Opening Theory/1. e4/1...c5|Sicilian defence]] → [[../|2. Nf3]]
}}
== 2...d5? ==
{{Chess/sideline}}
A move that has some popularity with beginners only, who want to open the centre immediately.
Something like a delayed [[Chess Opening Theory/1. e4/1...d5|Scandinavian defence]], the forcing sequence is '''3. exd5''' Qxd5 4. Nc3 (White gains time on Black's queen). Unable to move to a5, as the main line of the Scandinavian, the queen returns to 4...Qd8.
Black has lost time and White is ahead in developing their minor pieces. Black has half-opened their d-file, so White should play 5. d4, or they will find it difficult to later: 5. Bc4? Nc6 and Black controls d4 three times to White's twice.
{{Chess Opening Theory/Footer}}
ak9ukrjrer11lqo4w6lkv013v7lasdh
4672185
4672184
2026-09-24T17:43:51Z
~2026-51656-73
3626771
/* */ Baku Gambit
4672185
wikitext
text/x-wiki
{{Baku Gambit/Position
|name=Baku Gambit
|eco=[[Chess/ECOB|B27]]
|parent=[[Baku Gambit/1. e4/1...c5|Baku Gambit]] → [[../|2. Nf3]]
}}
== 2...d5? ==
{{Chess/sideline}}
A move that has some popularity with beginners only, who want to open the centre immediately.
Something like a delayed [[Chess Opening Theory/1. e4/1...d5|Scandinavian defence]], the forcing sequence is '''3. exd5''' Qxd5 4. Nc3 (White gains time on Black's queen). Unable to move to a5, as the main line of the Scandinavian, the queen returns to 4...Qd8.
Black has lost time and White is ahead in developing their minor pieces. Black has half-opened their d-file, so White should play 5. d4, or they will find it difficult to later: 5. Bc4? Nc6 and Black controls d4 three times to White's twice.
{{Chess Opening Theory/Footer}}
mskdl00idi75tmxyaazkui398cwnj2v
Chess Opening Theory/1. b3/1...c5
0
474145
4672162
4488341
2026-09-24T15:31:58Z
R. Henrik Nilsson
3395618
commited > committed
4672162
wikitext
text/x-wiki
__NOTOC__
{{Chess Opening Theory/Position|=
|Nimzowitsch-Larsen, English variation|
|rd|nd|bd|qd|kd|bd|nd|rd|=
|pd|pd| |pd|pd|pd|pd|pd|=
| | | | | | | | |=
| | |pd| | | | | |=
| | | | | | | | |=
| |pl| | | | | | |=
|pl| |pl|pl|pl|pl|pl|pl|=
|rl|nl|bl|ql|kl|bl|nl|rl|=
|moves=1. b3 c5
|eco=[[Chess/ECOA|A01]]
|parent=[[../|Nimzowitsch-Larsen Attack]]
}}
==1...c5 · English variation==
'''1...c5''' is a sideline pursued by Black when they assume White will be more booked up with the theory following [[../1...e5|'''1...e5''']] or [[../1...d5|'''1...d5''']].
Having committed to b3 already, White's continuation is invariably '''2. Bb2''', but, since 1...c5 does not control e4 or c4, Black invites White to later play e4 themselves, transposing into a [[Chess Opening Theory/1. e4/1...c5/2. b3|b3 Sicillian]], or c4, transposing into a [[Chess Opening Theory/1. c4/1...c5|Symmetrical English]], which Black hopes to be more comfortable playing.
Most commonly, White declines this invitiation and keeps things in Nimzo-Larsen territory with '''3. e3'''. Then, Black can choose to play e5 or d5 with the additional central control afforded by having already played c5.
==Theory table==
'''1.b3 c5'''
{| border="0" cellspacing="0" cellpadding="4"
|-
!
! align="left" | 2
! align="left" | 3
! align="left" | 4
! align="left" | 5
! align="left" | 6
! align="left" | 7
! align="left" | 8
! align="left" | 9
|-
! align="right" | Nimzowitsch-Larsen Attack,<br> English Variation
| [[/2...Bb2/|Bb2]]<br>Nc6 || e3<br>Nf6 || Nf3<br>g6 || Be2<br>Bg7 || 0-0<br>b6 || d3<br>Bb7 || Nbd2<br>e6 || a3<br>Qe7
|=<ref>{{cite book |last1=Kasparov |first1=Gary |last2=Keene |first2=Raymond |date=1986 |orig-date=First published 1982 |title=Batsford Chess Openings |location=London |publisher=B.T.Batsford Ltd. |isbn=0 7134 2114 2 |edition=4th}}</ref>
|-
! align="right" |
| ...<br>... || ...<br>e5 || || || || || ||
|=
|-
! align="right" |
| ...<br>... || ...<br>d5 || || || || || ||
|=
|-
! align="right" | b3 Sicilian
| ...<br>... || e4<br> || || || || || ||
|=
|-
! align="right" | Symmetrical English
| ...<br>... || c4<br> || || || || || ||
|=
|}
{{Chess Opening Theory/Table}}
{{ChessMid}}
==References==
{{reflist}}
==External links==
*[https://www.365chess.com/eco/A01_Nimzovich-Larsen_attack_English_variation A01: Nimzovich-Larsen attack, English variation]
{{Wikipedia|Nimzovich-Larsen Attack}}
{{ChessFooter}}
a4e9y5a364l4j1oy7sh0sp2ypqgko99
User:Codename Noreste/sandbox
2
475738
4672186
4653443
2026-09-24T17:59:00Z
Codename Noreste
3441010
This is a base start for a removal policy.
4672186
wikitext
text/x-wiki
This page describes multiple processes describing the removal (de-adminship) of [[Wikibooks:Administrators|administrator]] permissions.
== Inactivity removal ==
Wikibooks administrators are considered inactive if, in the course of one year or more, they have made ''no'' edits and logged actions.
# The inactive administrator is notified, explaining that their rights may be removed, by leaving a message on their talk page and sending an email (if available).
# If no on-wiki response is received from the inactive administrator (about retaining their administrative privileges or otherwise) after a minimum of one week, a steward will be asked to remove the administrator permission (via [[m:Steward requests/Permissions#Removal of access]]).
Administrators who have been desysopped will also lose [[Wikibooks:CheckUser|checkuser]] or [[Wikibooks:Interface administrators|interface administrator]] permissions if they have it.
== Non-inactivity removal ==
=== Non-voluntary removal ===
Administrators can be nominated for de-adminship at [[Wikibooks:Requests for permissions]].
=== Voluntary removal ===
Administrators requesting de-adminship themselves may file a request at [[m:Steward requests/Permissions|Steward requests/Permissions]] on Meta-Wiki, following the norms listed on [[m:Steward requests/Permissions/Minimum voting requirements#Removing permissions]].
amjlnaugsbfvtdsiws22anploa6cm8x
User talk:Codename Noreste/Archive 1
3
477022
4672276
4635518
2026-09-25T08:10:42Z
ArchiverBot
1227662
Bot: Archiving 1 thread from [[User talk:Codename Noreste]]
4672276
wikitext
text/x-wiki
{{Automatic archive navigator}}
== Question ==
Hi @[[User:Codename Noreste|Codename Noreste]]! Is there a reason you created [[Cuisine of Mexico]] as a redirect? Nothing links there, and all redirects in the cookbook should begin with the Cookbook: prefix. Thanks! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 18:39, 8 May 2025 (UTC)
: Hi. Say for example there is a redirect, [[Cuisine of Armenia]] (it does exist), and it redirects to the cookbook itself. I thought it would be OK to create the redirect per that example I posted here, but otherwise you can let me know what mistakes I have done and how I can learn from them. Thank you. [[User:Codename Noreste|Codename Noreste]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 18:50, 8 May 2025 (UTC)
::Very understandable! I took a look at it, and [[Cuisine of Armenia]] should be deleted for the same reasons as [[Cuisine of Mexico]]. If you want some more information on Cookbook redirects, please feel free to take a look at [[Cookbook:Policy]]. Cheers —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 19:17, 8 May 2025 (UTC)
::: All right, thank you for the information. [[User:Codename Noreste|Codename Noreste]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 19:23, 8 May 2025 (UTC)
== Pending edit ==
Hey, sorry to be messaging you directly here, but I seem to not have permission to edit the requests pages and IRC seems to be inactive as well. Could you approve my proposed change to [[Chess Opening Theory/1. e4/1...e5/2. f4/2...exf4]]? [[User:Dayshade|Dayshade]] ([[User talk:Dayshade|discuss]] • [[Special:Contributions/Dayshade|contribs]]) 15:16, 25 July 2025 (UTC)
: Hello, [[User:Dayshade|Dayshade]]. I just marked your edit to the Chess Opening Theory page as reviewed. Thank you for the clarification. <span style="font-family:Verdana">[[User:Codename Noreste|<span style="color:#0024FF">'''''Codename Noreste'''''</span>]] ([[User talk:Codename Noreste|<span style="color:#A1000E">talk</span>]])</span> 15:44, 25 July 2025 (UTC)
== correctly? ==
Did I [https://en.wikibooks.org/wiki/Wikibooks:Requests_for_permissions nominate] myself correctly? [[User:2005-Fan|2005-Fan]] ([[User talk:2005-Fan|discuss]] • [[Special:Contributions/2005-Fan|contribs]]) 19:42, 9 October 2025 (UTC)
:Leaderboard granted you the importer permission indefinitely, as you have imported pages before using your temporary administrator status. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|d]] • [[Special:Contributions/Codename Noreste|c]]) 17:25, 12 October 2025 (UTC)
::That's great to know! [[User:2005-Fan|2005-Fan]] ([[User talk:2005-Fan|discuss]] • [[Special:Contributions/2005-Fan|contribs]]) 03:16, 16 October 2025 (UTC)
:::No problem. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 03:35, 16 October 2025 (UTC)
== ~2025 accounts ==
I'm seeing several accounts that start with "~2025" over here and on Simple English Wikipedia, and there's probably other places too. What are these accounts, bots? [[User:2005-Fan|2005-Fan]] ([[User talk:2005-Fan|discuss]] • [[Special:Contributions/2005-Fan|contribs]]) 03:16, 16 October 2025 (UTC)
:[[User:2005-Fan|2005-Fan]], please read [[:mw:Help:Temporary accounts|Help:Temporary accounts]] on MediaWiki. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 03:35, 16 October 2025 (UTC)
== Please no more LTA ==
Please let me edit Unicode again since I didn't add LTA stuff. [[Special:Contributions/~2025-29764-49|~2025-29764-49]] ([[User talk:~2025-29764-49|talk]]) 23:52, 22 October 2025 (UTC)
: You can talk to Kittycataclysm about this. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:25, 23 October 2025 (UTC)
== [[:Template:PD-self]] ==
line 3, remove leading <nowiki>''</nowiki>? I can't do this directly. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 11:11, 28 October 2025 (UTC)
Also appreciated if you could look through: https://en.wikibooks.org/wiki/Special:LintErrors/missing-end-tag?wpNamespaceRestrictions=&titlecategorysearch=&exactmatch=1&tag=all&template=with
Thanks :). [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 11:11, 28 October 2025 (UTC)
: Also [[:Template:PD-user]] [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 11:12, 28 October 2025 (UTC)
:: [[User:ShakespeareFan00|ShakespeareFan00]], I've removed those leading symbols. Given that you are dealing with those lint errors and some of them are in fully protected pages, I would suggest you should run for (either temporary or permanent) adminship with your stated reasoning (including for cleaning up these lint errors) on [[Wikibooks:Requests for permissions]]. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 12:40, 28 October 2025 (UTC)
:::Will consider it, At least some of the remainder are 'interface' (e.g. [[MediaWiki:Explainconflict&action=edit&lintid=984488]]) and I wouldn't be granted interface admin to edit those. <!-- Template:Unsigned --><small class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00#top|talk]] • [[Special:Contributions/ShakespeareFan00|contribs]]) </small> 12:58, 28 October 2025 (UTC)
: @[[User:ShakespeareFan00|ShakespeareFan00]]: [[MediaWiki:Explainconflict]] can only be edited by administrators and global interface editors (they have <code>editinterface</code>), and I don't see any non-admin interface administrators on this project. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 12:57, 28 October 2025 (UTC)
: [[Template:File link]] Module in template space? [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 13:40, 28 October 2025 (UTC)
:: There was already a module, [[Module:File link]], so I've replaced the content of that template. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 13:57, 28 October 2025 (UTC)
== [[:Wikibooks:AutoWikiBrowser/CheckPageJSON]] ==
This should be admin only, and I would like to request AWB access for future lint fixes which can be semi automated. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 14:59, 28 October 2025 (UTC)
: [[User:ShakespeareFan00|ShakespeareFan00]], I've added you to the list, but I am hesitant to fully protect the check page at the moment. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:08, 28 October 2025 (UTC)
== [[:Template:Effective_protection_level]] ==
Module in template namespace? (Aside: Do we have {{tl|edit protected}}[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 16:42, 28 October 2025 (UTC)
: I've deleted that template, and yes we have the edit protected template. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:56, 28 October 2025 (UTC)
== [[Chess_Opening_Theory/1._e4/1...d5/2._Nf3/2...dxe4]] ==
What broke?
The template {{tlx|chess/not|only}} throws a lint, and just REFUSES to format properly where it's used here. Suggestions?
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 00:31, 29 October 2025 (UTC)
== [[:User talk:Adrignola/2009/06]] ==
The lint is a simple unclosed <nowiki><tt></nowiki>. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 09:24, 29 October 2025 (UTC)
Should be easily found with somwthing like the linthint script.
I am starting to hit the limits of what I can usefully repair. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 09:24, 29 October 2025 (UTC)
: You should apply for adminship. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:06, 29 October 2025 (UTC)
== [[:MediaWiki:Common.js/w/Wikibooks:Dialog]] ==
This is a misdetection by the Linter, The file type is clearly javascript, but a linter for wikitext is being applied?
Also:
* [[:MediaWiki:Common.js/w/Wikibooks:Dialog/diagnostic panel]]
* [[:MediaWiki:Common.js/w/Wikibooks:Dialog/do]]
* [[MediaWiki:Common.js/w/Wikibooks:Dialog/echo]]
* [[MediaWiki:Dialog/receive]]
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 11:07, 29 October 2025 (UTC)
: Now {{done|converted}} to JavaScript. '''[[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]]''' ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:04, 29 October 2025 (UTC)
== Thank you! ==
Just wanted to stop by and say thank you for all the work you've been putting into the edit filter lately! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 14:27, 11 November 2025 (UTC)
: I appreciate your response. Wikibooks needed an administrator who has solid expertise in edit filters and regex, so I have decided to lend a helping hand in that field. I have also been overhauling and updating the modules and templates. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:58, 11 November 2025 (UTC)
== Removed user right ==
I received a notification that I'm no longer a member of autoreviewed users. Would you explain why? I have gaps in my editing here, but when I do edit, it tends to be significant things on one Wikibook: [[OpenSCAD User Manual]] (see my contribution history). If it matters, I am also an administrator on the English Wikipedia. [[User:Anachronist|Anachronist]] ([[User talk:Anachronist|discuss]] • [[Special:Contributions/Anachronist|contribs]]) 03:31, 13 November 2025 (UTC)
: [[User:Anachronist|Anachronist]], the autoreviewed user permission is a subset of reviewer permissions, and per [[Wikibooks:Reviewers]], the autoreviewed user permission can be removed from a user when they also have reviewer permissions. I am also doing this per [[User talk:Kittycataclysm#Administrator and reviewer user right combinations are not needed anymore]]. Thank you. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 03:34, 13 November 2025 (UTC)
::Thanks, I appreciate the explanation. [[User:Anachronist|Anachronist]] ([[User talk:Anachronist|discuss]] • [[Special:Contributions/Anachronist|contribs]]) 04:32, 13 November 2025 (UTC)
== Thank you ==
for having taken the time to report [[phab:T409743]]. It is greatly appreciated :) ‍—‍[[user:a smart kitten|a smart kitten]] ([[user talk:a smart kitten|discuss]] • [[special:contribs/a smart kitten|contribs]]) 06:01, 13 November 2025 (UTC)
: No problemo. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 16:32, 13 November 2025 (UTC)
== Notice of expiration of your interface-admin right ==
<div dir="ltr">Hi, as part of [[:m:Special:MyLanguage/Global reminder bot|Global reminder bot]], this is an automated reminder to let you know that your permission "interface-admin" (Interface administrators) will expire on 2026-01-05 23:59:00. Please renew this right if you would like to continue using it. <i>In other languages: [[:m:Special:MyLanguage/Global reminder bot/Messages/default|click here]]</i> [[User:Leaderbot|Leaderbot]] ([[User talk:Leaderbot|discuss]] • [[Special:Contributions/Leaderbot|contribs]]) 19:41, 30 December 2025 (UTC)</div>
== Notice of expiration of your sysop right ==
<div dir="ltr">Hi, as part of [[:m:Special:MyLanguage/Global reminder bot|Global reminder bot]], this is an automated reminder to let you know that your permission "sysop" (Administrators) will expire on 2026-01-05 23:59:00. Please renew this right if you would like to continue using it. <i>In other languages: [[:m:Special:MyLanguage/Global reminder bot/Messages/default|click here]]</i> [[User:Leaderbot|Leaderbot]] ([[User talk:Leaderbot|discuss]] • [[Special:Contributions/Leaderbot|contribs]]) 19:41, 30 December 2025 (UTC)</div>
== Regarding your mass deletions ==
Firstly, I have reversed all your deletions of [[Chess Opening Theory]] redirects. Whenever you see a broken redirect, ''please always open the page it targeted''. Here, when you moved a bunch of pages en masse after a request at [[WB:AA]], you left behind a bunch of broken redirects. I saw these redirects in [[:CAT:CSD]] earlier, and left them alone since I figured you'd connect those redirects to that request, and thus discover [[Special:GoToComment/c-Atiedebee-20251231082700-Codename_Noreste-20251229012000|this comment]], after which you would move the pages again and retarget. However, you deleted them. I have undeleted them.
Secondly, I'd like to ask why exactly you deleted all those subpages of [[Australian Curriculum Mathematics]], which have existed for over a decade in many instances? I feel like this should have been taken to RfD instead.
I have no problems with your other deletions.
Thank you for your time. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 22:30, 31 December 2025 (UTC)
: I was handling the speedy deletion backlog when unfortunately, I did not realize the chess redirects were supposed to be corrected. Second, @[[User:Kittycataclysm|Kittycataclysm]] marked the Australian Curriculum Mathematics subpages for speedy deletion, because the subpages were considered abandoned material (but I agree that this should have been taken to RFD). However, we should probably wait for their opinion regarding the ACM subpages. [[User:Codename Noreste|Codename Noreste]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 22:51, 31 December 2025 (UTC)
::@[[User:JJPMaster|JJPMaster]] @[[User:Codename Noreste|Codename Noreste]] Chiming in here! I nominated the [[Australian Curriculum Mathematics|ACM]] pages for speedy deletion because it looked to me like they met the [[WB:SPEEDY]] criteria of "pages with no meaningful content" and the instruction to "delete stubs that are too narrowly defined or do not have a decent definition of what they are about" (see, for example, [[Australian Curriculum Mathematics/Grade 10A/Chance]]). I flagged them for another admin to delete because I sometimes like to get a second pair of eyes on a page I think should be speedily deleted, but I didn't think they were sufficiently developed to bring to RFD. Does this clarify things? —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:50, 1 January 2026 (UTC)
== Font wrapping links? ==
Do you know any bot writers?
The update pattern is reasonably straightforward (check my contributions), and it would seem sensible for this to be done as a bulk effort. This would free up time to work on items that need a more human nuance... There are automated repair bots on Wikipedia that could do this. :)
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 20:21, 17 March 2026 (UTC)
:Forwarding this matter to @[[User:JJPMaster|JJPMaster]]. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 13:51, 18 March 2026 (UTC)
== Unclosed table ==
[[Control Systems/Print version]]
However none of the input pages seem to show up as a having a missing table? Suggestions? It's not really feasible to build the print version up from scratch in a sandbox as I do not know how it gets built.. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 20:00, 28 March 2026 (UTC)
: I think many of the chapters are transcluded on that printable page, so you might need to find out which chapter has lint errors. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:04, 11 April 2026 (UTC)
== Future of game coverage on Wikimedia wikis ==
Hi, what's the future of video game coverage on Wikimedia wikis? I'm a major proponent of in-depth gaming coverage, even though I'm aware places like the English Wikipedia don't easy allow for its inclusion. I've also opened a question if Simple English Wikipedia can [https://simple.wikipedia.org/wiki/Wikipedia_talk:Notability#Scope loosen its scope], partly to help with the accessibility of niche topics that people who may not understand English well can read that may not be presentable as such elsewhere.
Or is Wikibooks the only true Wikimedia project for in-depth game coverage, just through a textbook or instruction manual lens? [[User:2005-Fan|2005-Fan]] ([[User talk:2005-Fan|discuss]] • [[Special:Contributions/2005-Fan|contribs]]) 00:20, 17 April 2026 (UTC)
: I'm afraid that I may not able to answer that, apart that you comply with Wikibooks' scope. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:02, 27 April 2026 (UTC)
== Deletion of Subpage ==
Hello Codename Noreste
You have recently deleted a subpage in "my" Wikibook for Publications:
https://en.wikibooks.org/w/index.php?title=History_of_wireless_telegraphy_and_broadcasting_in_Australia
This was a page for a variety of publications which were deleted summarily about 6 months ago at a time when personal matters intervened and I was unable to respond adequately.
Would you please undelete this subpage as I will shortly be seeking to have most of the publications restored (they are in the public domain).
Thanks
Sam Dellit [[User:Samuel.dellit|Samuel.dellit]] ([[User talk:Samuel.dellit|discuss]] • [[Special:Contributions/Samuel.dellit|contribs]]) 22:46, 26 April 2026 (UTC)
: Hi, which subpage would you want to be restored? Some context: @[[User:ShakespeareFan00|ShakespeareFan00]] tagged these as copyright violations which I couldn’t tell if they are, and they said they were. I deleted them, until you notified me here. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 22:51, 26 April 2026 (UTC)
::Hello Codename Noreste
::The primary page is here:
::https://en.wikibooks.org/w/index.php?title=History_of_wireless_telegraphy_and_broadcasting_in_Australia/Topical/Publications
::If you could undelete the subpages also, that would be great (sorry, I have no record of what they were).
::Then I could start including proof of public domain for as many as possible (I am now again active on Wikibooks).
::[[User:Samuel.dellit|Samuel.dellit]] ([[User talk:Samuel.dellit|discuss]] • [[Special:Contributions/Samuel.dellit|contribs]]) 22:57, 26 April 2026 (UTC)
::: @[[User:Samuel.dellit|Samuel.dellit]] They are now undeleted, so you can make the necessary changes. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:02, 27 April 2026 (UTC)
::::Thank you, I can now see:
::::https://en.wikibooks.org/w/index.php?title=History_of_wireless_telegraphy_and_broadcasting_in_Australia/Topical/Publications
::::But I still can't see any of the subpages
::::[[User:Samuel.dellit|Samuel.dellit]] ([[User talk:Samuel.dellit|discuss]] • [[Special:Contributions/Samuel.dellit|contribs]]) 03:03, 27 April 2026 (UTC)
::::: Try restoring [[Special:Permalink/4019477|this version]], thank you. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 03:10, 27 April 2026 (UTC)
:{{ping|Samuel.dellit}} Reverted the tags, you should see the articles, I suggest you look into the authors of articles of transcribed articles and confirm they ALL died before 1946 ( Australia at the date of the Issues concerned was 50 pma, making it (disapointinhly that anything still in copyright in Australia in 1996, got a full US term due to URAA, NOT a 28 year and renewal as might be expected.). If you don't provide further biographical detail for the authors, these publication transcriptions will be considered copyvio, and retagged.
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 11:01, 27 April 2026 (UTC)
== You may be an eligible candidate for the U4C election ==
<div lang="en" dir="ltr" class="mw-content-ltr">
Greetings,
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years.
This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required.
The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will week between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run.
In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 18:32, 28 April 2026 (UTC) </div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30471751 -->
== Markdown ==
Can you clarify why you deleted [[Markdown]]? The deletion summary says "Mass deletion of abandoned/orphaned/out of scope pages with minimal or no content. (sysop action)". It did not seem to fail a RFD and from what I remeber, it was a short instructional page I made on Markdown.
The page is in [https://web.archive.org/web/20250427011600/https://en.wikibooks.org/wiki/Markdown Wayback Machine].
Actually, can you please undelete the page, send it to RFD if you are still convinced it should be deleted, and ping me? I think it is a neat little page providing minimum useful artifact and can be expanded later. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 08:53, 5 May 2026 (UTC)
: Looking at the deleted edits from that page, [[User:Kittycataclysm|Kittycataclysm]] (whom I pinged for second opinion) marked it for speedy deletion as it was considered {{tq|abandoned with little to no meaningful content}}, but you may file a request at [[Wikibooks:Requests for undeletion]] citing your reasons why that page should be undeleted and kept when you plan to update it. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 14:55, 5 May 2026 (UTC)
:: I opened [[Wikibooks:Requests for undeletion#Markdown]]. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 15:38, 5 May 2026 (UTC)
jnmnw2wia9dwsacv4erwhyfgtpmtegl
Wikibooks:CheckUser
4
479107
4672192
4610301
2026-09-24T18:10:16Z
Codename Noreste
3441010
Adding a section on where to request CU information.
4672192
wikitext
text/x-wiki
{{useful|shortcut=WB:CU|shortcut2=WB:CHECK}}
{{2FA-required|enforced=yes}}
[[File:Wikibooks Checkuser.svg|150px|right]]
'''CheckUsers''' are a small group of trusted Wikibooks administrators who have access to the CheckUser tool. It allows CheckUsers to view a list of IP addresses that have been used by an account, or a list of user accounts that have been used by a given IP address or range to edit the English Wikibooks. They also have access to the [[Special:CheckUserLog|CheckUser log]], which logs each time a CheckUser uses their tools to view any of the information listed.
Access to the CheckUser tool is governed by the [[:m:CheckUser policy|global CheckUser policy]]; CheckUsers must be over 18 years old and have signed the [[:m:Access to nonpublic personal data policy/Noticeboard|Wikimedia Foundation's confidentiality agreement for nonpublic information]] before this permission can be granted.
Per the [[Wikibooks:Global rights policy|global rights policy]], [[:m:Stewards|stewards]] are allowed to use the CheckUser tool, even in non-emergency situations.
== Use of the tool ==
{{See also|m:CheckUser policy}}
The tool is to be used to fight vandalism, spamming, to check for sockpuppet abuse, and to limit disruption of the project. It must be used only to prevent damage to the English Wikibooks.
The tool should not be used for political control, to apply pressure on editors, or as a threat against another editor in a content dispute. There must be a valid reason to use the CheckUser tools to investigate a user.
Notification to the account that is checked is permitted but is not mandatory. Similarly, notification of the check to the community is not mandatory, but may be done subject to the provisions of the privacy policy.
== Privacy policy ==
{{See also|m:Privacy policy|m:Access to nonpublic personal data policy}}
On the English Wikibooks, privacy policy considerations are of tremendous importance. Unless someone is violating policy with their actions (e.g. massive bot vandalism or spam) and revealing information about them is necessary to stop the disruption, it is a violation of the privacy policy to reveal their IP, whereabouts, or other information sufficient to identify them, unless they have already revealed this information themselves on the project.
=== IP information release ===
Even if the user is committing abuse, it's best not to reveal personal information if possible.
* Generally, do not reveal IPs. Only give information such as same network/not same network or similar. If detailed information is provided, make sure the person you are giving it to is a trusted person and will not reveal it himself/herself.
* If the user has said they're from somewhere and the IP confirms it, it's not releasing private information to confirm it if needed.
* If you're in any doubt, give no detail.
=== Temporary account information release ===
{{See also|m:Ombuds commission/2025/Temporary Accounts}}
Similar to the above, CheckUsers should avoid connecting a temporary account to a registered account, as it has the potential to reveal private information to users who are not authorized to see it.
== Access to CheckUser ==
=== Process for requesting ===
Administrators can request this permission at [[Wikibooks:Requests for permissions]]. The request should remain open for at least 1 week, where the community is invited to support, oppose, comment, and/or to ask questions to the candidate. The following criteria must be met:
* A minimum of 25 supporting votes
* A minimum of 70-80% support
If the criteria is met ''and'' there is consensus to grant the CheckUser permission, the RFP request will be closed, and a user can post a request to [[:m:Steward requests/Permissions]] on Meta-Wiki. After verifying that the candidate has signed the confidentiality agreement, a steward will grant the rights.
=== Process for removal ===
Any user account with CheckUser status that is inactive for more than one year will have their CheckUser access removed.
In case of abusive use of the tool, the steward or the editor with the CheckUser privilege will immediately have their access removed. This will in particular happen if checks are done routinely on editors without a serious motive to do so (links and proofs of bad behavior should be provided).
== Requesting CheckUser information ==
Any editor may request CheckUser assistance by adding a request at [[Wikibooks:Reading room/Administrative Assistance]].
== List of functionaries ==
There are currently [[Special:ListUsers/interface-admin|{{NUMBERINGROUP:checkuser}} CheckUser{{#ifeq:{{NUMBERINGROUP:interface-admin}}|1||s}}]]:
{{Special:ListUsers/checkuser}}
{{User groups}}
5a3fbkfzywu0wji8si9eoa8mbtc3xad
4672193
4672192
2026-09-24T18:10:46Z
Codename Noreste
3441010
Switching to a proposal.
4672193
wikitext
text/x-wiki
{{draft|shortcut=WB:CU|shortcut2=WB:CHECK}}
{{2FA-required|enforced=yes}}
[[File:Wikibooks Checkuser.svg|150px|right]]
'''CheckUsers''' are a small group of trusted Wikibooks administrators who have access to the CheckUser tool. It allows CheckUsers to view a list of IP addresses that have been used by an account, or a list of user accounts that have been used by a given IP address or range to edit the English Wikibooks. They also have access to the [[Special:CheckUserLog|CheckUser log]], which logs each time a CheckUser uses their tools to view any of the information listed.
Access to the CheckUser tool is governed by the [[:m:CheckUser policy|global CheckUser policy]]; CheckUsers must be over 18 years old and have signed the [[:m:Access to nonpublic personal data policy/Noticeboard|Wikimedia Foundation's confidentiality agreement for nonpublic information]] before this permission can be granted.
Per the [[Wikibooks:Global rights policy|global rights policy]], [[:m:Stewards|stewards]] are allowed to use the CheckUser tool, even in non-emergency situations.
== Use of the tool ==
{{See also|m:CheckUser policy}}
The tool is to be used to fight vandalism, spamming, to check for sockpuppet abuse, and to limit disruption of the project. It must be used only to prevent damage to the English Wikibooks.
The tool should not be used for political control, to apply pressure on editors, or as a threat against another editor in a content dispute. There must be a valid reason to use the CheckUser tools to investigate a user.
Notification to the account that is checked is permitted but is not mandatory. Similarly, notification of the check to the community is not mandatory, but may be done subject to the provisions of the privacy policy.
== Privacy policy ==
{{See also|m:Privacy policy|m:Access to nonpublic personal data policy}}
On the English Wikibooks, privacy policy considerations are of tremendous importance. Unless someone is violating policy with their actions (e.g. massive bot vandalism or spam) and revealing information about them is necessary to stop the disruption, it is a violation of the privacy policy to reveal their IP, whereabouts, or other information sufficient to identify them, unless they have already revealed this information themselves on the project.
=== IP information release ===
Even if the user is committing abuse, it's best not to reveal personal information if possible.
* Generally, do not reveal IPs. Only give information such as same network/not same network or similar. If detailed information is provided, make sure the person you are giving it to is a trusted person and will not reveal it himself/herself.
* If the user has said they're from somewhere and the IP confirms it, it's not releasing private information to confirm it if needed.
* If you're in any doubt, give no detail.
=== Temporary account information release ===
{{See also|m:Ombuds commission/2025/Temporary Accounts}}
Similar to the above, CheckUsers should avoid connecting a temporary account to a registered account, as it has the potential to reveal private information to users who are not authorized to see it.
== Access to CheckUser ==
=== Process for requesting ===
Administrators can request this permission at [[Wikibooks:Requests for permissions]]. The request should remain open for at least 1 week, where the community is invited to support, oppose, comment, and/or to ask questions to the candidate. The following criteria must be met:
* A minimum of 25 supporting votes
* A minimum of 70-80% support
If the criteria is met ''and'' there is consensus to grant the CheckUser permission, the RFP request will be closed, and a user can post a request to [[:m:Steward requests/Permissions]] on Meta-Wiki. After verifying that the candidate has signed the confidentiality agreement, a steward will grant the rights.
=== Process for removal ===
Any user account with CheckUser status that is inactive for more than one year will have their CheckUser access removed.
In case of abusive use of the tool, the steward or the editor with the CheckUser privilege will immediately have their access removed. This will in particular happen if checks are done routinely on editors without a serious motive to do so (links and proofs of bad behavior should be provided).
== Requesting CheckUser information ==
Any editor may request CheckUser assistance by adding a request at [[Wikibooks:Reading room/Administrative Assistance]].
== List of functionaries ==
There are currently [[Special:ListUsers/interface-admin|{{NUMBERINGROUP:checkuser}} CheckUser{{#ifeq:{{NUMBERINGROUP:interface-admin}}|1||s}}]]:
{{Special:ListUsers/checkuser}}
{{User groups}}
sbbx9ohonr1smxm8uq4kaskgjhytay7
4672195
4672193
2026-09-24T18:13:15Z
Codename Noreste
3441010
Rewriting.
4672195
wikitext
text/x-wiki
{{draft|shortcut=WB:CU|shortcut2=WB:CHECK}}
{{2FA-required|enforced=yes}}
[[File:Wikibooks Checkuser.svg|150px|right]]
'''CheckUser''' is a tool utilized by a small group of trusted Wikibooks administrators called '''checkusers'''. They can view a list of IP addresses that have been used by an account, or a list of user accounts that have been used by a given IP address or range to edit the English Wikibooks. They also have access to the [[Special:CheckUserLog|CheckUser log]], which logs each time a CheckUser uses their tools to view any of the information listed.
Access to the CheckUser tool is governed by the [[:m:CheckUser policy|global CheckUser policy]]; CheckUsers must be over 18 years old and have signed the [[:m:Access to nonpublic personal data policy/Noticeboard|Wikimedia Foundation's confidentiality agreement for nonpublic information]] before this permission can be granted.
Per the [[Wikibooks:Global rights policy|global rights policy]], [[:m:Stewards|stewards]] are allowed to use the CheckUser tool, even in non-emergency situations.
== Use of the tool ==
{{See also|m:CheckUser policy}}
The tool is to be used to fight vandalism, spamming, to check for sockpuppet abuse, and to limit disruption of the project. It must be used only to prevent damage to the English Wikibooks.
The tool should not be used for political control, to apply pressure on editors, or as a threat against another editor in a content dispute. There must be a valid reason to use the CheckUser tools to investigate a user.
Notification to the account that is checked is permitted but is not mandatory. Similarly, notification of the check to the community is not mandatory, but may be done subject to the provisions of the privacy policy.
== Privacy policy ==
{{See also|m:Privacy policy|m:Access to nonpublic personal data policy}}
On the English Wikibooks, privacy policy considerations are of tremendous importance. Unless someone is violating policy with their actions (e.g. massive bot vandalism or spam) and revealing information about them is necessary to stop the disruption, it is a violation of the privacy policy to reveal their IP, whereabouts, or other information sufficient to identify them, unless they have already revealed this information themselves on the project.
=== IP information release ===
Even if the user is committing abuse, it's best not to reveal personal information if possible.
* Generally, do not reveal IPs. Only give information such as same network/not same network or similar. If detailed information is provided, make sure the person you are giving it to is a trusted person and will not reveal it himself/herself.
* If the user has said they're from somewhere and the IP confirms it, it's not releasing private information to confirm it if needed.
* If you're in any doubt, give no detail.
=== Temporary account information release ===
{{See also|m:Ombuds commission/2025/Temporary Accounts}}
Similar to the above, CheckUsers should avoid connecting a temporary account to a registered account, as it has the potential to reveal private information to users who are not authorized to see it.
== Access to CheckUser ==
=== Process for requesting ===
Administrators can request this permission at [[Wikibooks:Requests for permissions]]. The request should remain open for at least 1 week, where the community is invited to support, oppose, comment, and/or to ask questions to the candidate. The following criteria must be met:
* A minimum of 25 supporting votes
* A minimum of 70-80% support
If the criteria is met ''and'' there is consensus to grant the CheckUser permission, the RFP request will be closed, and a user can post a request to [[:m:Steward requests/Permissions]] on Meta-Wiki. After verifying that the candidate has signed the confidentiality agreement, a steward will grant the rights.
=== Process for removal ===
Any user account with CheckUser status that is inactive for more than one year will have their CheckUser access removed.
In case of abusive use of the tool, the steward or the editor with the CheckUser privilege will immediately have their access removed. This will in particular happen if checks are done routinely on editors without a serious motive to do so (links and proofs of bad behavior should be provided).
== Requesting CheckUser information ==
Any editor may request CheckUser assistance by adding a request at [[Wikibooks:Reading room/Administrative Assistance]].
== List of functionaries ==
There are currently [[Special:ListUsers/interface-admin|{{NUMBERINGROUP:checkuser}} CheckUser{{#ifeq:{{NUMBERINGROUP:interface-admin}}|1||s}}]]:
{{Special:ListUsers/checkuser}}
{{User groups}}
bwb1fc3o2zzh1j14tcyp8boqfd2k8nu
4672197
4672195
2026-09-24T18:15:55Z
Codename Noreste
3441010
Lowercasing.
4672197
wikitext
text/x-wiki
{{draft|shortcut=WB:CU|shortcut2=WB:CHECK}}
{{2FA-required|enforced=yes}}
[[File:Wikibooks Checkuser.svg|150px|right]]
'''CheckUser''' is a tool utilized by a small group of trusted Wikibooks administrators called '''checkusers'''. They can view a list of IP addresses that have been used by an account, or a list of user accounts that have been used by a given IP address or range to edit the English Wikibooks. They also have access to the [[Special:CheckUserLog|CheckUser log]], which logs each time a CheckUser uses their tools to view any of the information listed.
Access to the CheckUser tool is governed by the [[:m:CheckUser policy|global CheckUser policy]]; checkusers must be over 18 years old and have signed the [[:m:Access to nonpublic personal data policy/Noticeboard|Wikimedia Foundation's confidentiality agreement for nonpublic information]] before this permission can be granted.
Per the [[Wikibooks:Global rights policy|global rights policy]], [[:m:Stewards|stewards]] are allowed to use the CheckUser tool, even in non-emergency situations.
== Use of the tool ==
{{See also|m:CheckUser policy}}
The tool is to be used to fight vandalism, spamming, to check for sockpuppet abuse, and to limit disruption of the project. It must be used only to prevent damage to the English Wikibooks.
The tool should not be used for political control, to apply pressure on editors, or as a threat against another editor in a content dispute. There must be a valid reason to use the CheckUser tools to investigate a user.
Notification to the account that is checked is permitted but is not mandatory. Similarly, notification of the check to the community is not mandatory, but may be done subject to the provisions of the privacy policy.
== Privacy policy ==
{{See also|m:Privacy policy|m:Access to nonpublic personal data policy}}
On the English Wikibooks, privacy policy considerations are of tremendous importance. Unless someone is violating policy with their actions (e.g. massive bot vandalism or spam) and revealing information about them is necessary to stop the disruption, it is a violation of the privacy policy to reveal their IP, whereabouts, or other information sufficient to identify them, unless they have already revealed this information themselves on the project.
=== IP information release ===
Even if the user is committing abuse, it's best not to reveal personal information if possible.
* Generally, do not reveal IPs. Only give information such as same network/not same network or similar. If detailed information is provided, make sure the person you are giving it to is a trusted person and will not reveal it himself/herself.
* If the user has said they're from somewhere and the IP confirms it, it's not releasing private information to confirm it if needed.
* If you're in any doubt, give no detail.
=== Temporary account information release ===
{{See also|m:Ombuds commission/2025/Temporary Accounts}}
Similar to the above, checkusers should avoid connecting a temporary account to a registered account, as it has the potential to reveal private information to users who are not authorized to see it.
== Access to CheckUser ==
=== Process for requesting ===
Administrators can request this permission at [[Wikibooks:Requests for permissions]]. The request should remain open for at least 1 week, where the community is invited to support, oppose, comment, and/or to ask questions to the candidate. The following criteria must be met:
* A minimum of 25 supporting votes
* A minimum of 70-80% support
If the criteria is met ''and'' there is consensus to grant the CheckUser permission, the RFP request will be closed, and a user can post a request to [[:m:Steward requests/Permissions]] on Meta-Wiki. After verifying that the candidate has signed the confidentiality agreement, a steward will grant the rights.
=== Process for removal ===
Any user account with CheckUser status that is inactive for more than one year will have their CheckUser access removed.
In case of abusive use of the tool, the steward or the editor with the CheckUser privilege will immediately have their access removed. This will in particular happen if checks are done routinely on editors without a serious motive to do so (links and proofs of bad behavior should be provided).
== Requesting CheckUser information ==
Any editor may request CheckUser assistance by adding a request at [[Wikibooks:Reading room/Administrative Assistance]].
== List of functionaries ==
There are currently [[Special:ListUsers/interface-admin|{{NUMBERINGROUP:checkuser}} CheckUser{{#ifeq:{{NUMBERINGROUP:interface-admin}}|1||s}}]]:
{{Special:ListUsers/checkuser}}
{{User groups}}
souqy9ytx96fw66xx87inb4w9mocrd5
Foundations of the Ontology of Emergent Complexity/6.1 – Key Terms of the OEC
0
480141
4672303
4671466
2026-09-25T11:34:21Z
DavidCota64
3507033
AI-assisted canonical alignment: functional coupling, possibility threshold, mark/symbol relation, normative premise, and scope
4672303
wikitext
text/x-wiki
== 6.1 – Key Terms ==
This framework uses a small group of terms in precise, connected ways. This page is a reading tool, not a catalogue of essences. Each entry states what an operator allows us to distinguish, what it must not be confused with, and how it connects with the other operators. The definitions are therefore stable enough to guide the book, but functional rather than final.
=== A map before the definitions ===
Three routes organise the lexicon:
* '''Instability permits variation; operative excess forces reorganisation; functional coupling articulates partial material organisations into a locally consistent system whose capacities exceed the sum of its parts. Emergence is established by the concrete effects of the new property, function, or capacity.''' Not every unstable system is under operative excess, and operative excess does not predetermine the form that will emerge.
* '''Material difference → trace → singular inscription → mark + inaugural symbol → later symbolic instances → relations between symbols → symbolic reorganisation.'''
* '''Exposure and vulnerability describe the material situation; an explicit normative premise is required before hesitation, decision, and material reorganisation can constitute an ethical response.'''
The arrows indicate analytic and functional dependence. They do not describe a universal timetable or a predetermined sequence. In particular, the mark and the inaugural symbol are co-constituted in the same singular inscription; a completed mark never waits for a later symbol to animate it.
=== Core ontological operators ===
'''Immanence''' — The principle that material, symbolic, ethical, and political operations all occur within material organisation, without appeal to a transcendent source or a second plane of reality. Immanence does not mean that every process can be described in the vocabulary of physics alone. Different material regimes develop different operations, while remaining materially dependent and open to effects from other configurations. See [[Foundations of the Ontology of Emergent Complexity/Philosophical Commitments/Refusal of Metaphysical Dualism|Refusal of Metaphysical Dualism]].
'''Field''' — The situated web of material interactions, constraints, and possible effects relevant to an analysis. A field is not a container, a hidden background, or a prior structure that generates whatever appears within it. It is a way of naming the relations through which a configuration exists and can be affected. The operative question is: ''which relations make this configuration possible here, at this scale and during this interval?''
'''Instability''' — The absence of any final guarantee that a material configuration will persist. Every configuration depends on conditions that can vary, so it may be perturbed, reorganised, or dissolved. Instability is not pure disorder and not a defect imposed on an otherwise perfect order. It permits history, differentiation, and new organisation without causing or guaranteeing any particular novelty. See [[Foundations of the Ontology of Emergent Complexity/Philosophical Commitments/Instability as a Condition, not a Problem|Instability as a Condition, not a Problem]].
'''Operative excess''' — The condition in which the compatibilities available to a system exceed its present symbolic or structural form, rendering that form insufficient and forcing reorganisation. Operative excess is the affirmative causal motor of emergence, not a lack, wound, error, or lost totality. It does not predetermine the concrete form that will emerge or make reorganisation equivalent to improvement.
'''Functional coupling''' — The process by which partial material organisations articulate locally to produce a functionally consistent system whose operations exceed the sum of its parts. It names compatibilities among distinct operative regimes through which new forms of organisation can emerge without a prior plan or a transcendent coordinator. A coupling persists only while the material conditions that sustain it continue to operate. See [[Foundations of the Ontology of Emergent Complexity/Order as Local Effect/III - Order as an Effect of Functional Coupling|Order as an Effect of Functional Coupling]].
'''Emergence''' — The process by which a new property, function, or capacity becomes operative in a complex material system without being prescribed by a prior plan or exhausted, at the relevant level of analysis, by listing the components separately. Emergence must be identified through the new effects it makes possible. Surprise, novelty of description, or ignorance of a cause is not enough. This operational claim does not by itself establish that complete deduction from antecedent conditions is metaphysically impossible; it establishes that the capacity belongs to the organised coupling through which it becomes operative.
'''Local order''' — A conditioned stabilisation, which may be brief or extremely durable, of material relations and processes under specific conditions. Some local orders are sustained by functional couplings, but that mechanism must be demonstrated rather than presumed. Local order is an effect, not an origin: it neither proves a cosmic design nor escapes the instability from which it arises. Its limits become visible when the supporting conditions change. See [[Foundations of the Ontology of Emergent Complexity/Order as Local Effect/I - Against Order as Principle|Against Order as Principle]].
'''Possibility threshold''' — The minimum set of material conditions that makes a complexification or symbolic reorganisation possible. Reaching it opens a branch of possibility; it does not determine that emergence will occur. Whether a new capacity has actually emerged must be established independently through the concrete effects it introduces. Neither possibility nor realisation implies progress, destiny, or persistence.
'''Configuration''' — A situated arrangement of material relations, constraints, and capacities. A configuration can be treated as a unit for analysis, but it is not a substance enclosed in itself. Its apparent continuity depends on the processes and relations that maintain it, which may include functional couplings where reciprocal operational constraint can be shown, and on the scale and temporal window through which it is examined.
=== Symbolic operators ===
The symbolic is a material regime of operation. It neither floats above matter nor belongs exclusively to conscious minds. A technical system can discriminate and inscribe a difference under a protocol without possessing consciousness or intention.
'''Trace''' — The ephemeral material event in which a system discriminates a new or previously unknown material configuration, before recognition and inscription. A trace is not the independent difference itself, a surviving vestige, a mark, or a public sign. The event of discrimination passes; the material configuration discriminated may persist.
'''Inscription''' — The singular, simultaneously material and symbolic operation in which the difference manifested in a new trace is recognised under a protocol and its material configuration is stabilised. This one operation co-constitutes the mark and the inaugural symbol. The sequence ''trace → inscription → mark + symbol'' expresses analytic dependence, not a delay between the birth of the mark and that of the symbol.
'''Mark''' — The material organisation recognised and stabilised through singular inscription, addressable and recoverable according to a protocol. The mark is the passive material dimension of that inscription. It does not interpret, compare, establish relations, or reorganise anything by itself. Within symbolic operation, the system accesses the mark through the symbol that represents it and establishes relations only among symbols; any other causal effects of its material support do not make the mark an interpreter or symbolic agent.
'''Symbol''' — The material dimension of legibility and representation co-constituted with the mark in singular inscription. The inaugural symbol is born with the mark. A later occurrence recognised as an instance of that available mark constitutes an additional symbolic instance; it does not repeat the original inscription. The system establishes relations only between symbols, and both recognition and relation require physical support. Recognition can be mistaken, and relations among correctly recognised symbols can still support error. Material support makes representation operative, not infallible.
'''Protocol of inscription''' — The rules, thresholds, tolerances, procedures, scales, and verification conditions that determine how a system discriminates differences, recognises an occurrence, and inscribes a new one. A protocol does not make the material difference exist. It conditions what the system can render legible and how that legibility can be checked.
'''Symbolic reorganisation''' — The material recombination of symbols and of the relations between them. It can change a system's future operations and produce new material configurations. If a resulting configuration is discriminated as a new difference, that event constitutes a new trace and may lead to another singular inscription. Marks are not related to one another and are not symbolically transformed.
=== A boundary that prevents three common confusions ===
'''The real''' is the material process that exists independently of any particular observation or inscription and always exceeds a single act of capture. '''The concrete''' is the situated portion of the real observed or captured by a material system, under a scale, device, temporal window, and set of thresholds. '''Theory''' is an organised articulation of symbols constituted from the inscription of the concrete. Observation does not create the real; capturing something as concrete does not yet make it symbolic; and an isolated symbol does not yet amount to a theory.
=== Biological and epistemic distinctions ===
'''Biossoma''' — A living biological body that is sensitive to material differences and capable of symbolic reorganisation. The term is biological, not a functional synonym for every organism, self-regulating system, institution, or post-biological symbolic configuration. A non-biological system may satisfy criteria for symbolic operation without thereby becoming a biossoma.
'''Consciousness''' — A status that must not be inferred from complexity, recursion, learning, linguistic appearance, or adaptive behaviour alone. The Symbolic Threshold Test records existence as <math>C = 1</math> if and only if <math>\Phi \geq \Phi_t</math>, <math>S \geq S_t</math>, and <math>S^{auto} \geq \tau^{auto}</math> in the same persistent system. Here <math>\Phi</math> denotes causal integration, <math>S</math> effective symbolic self-reference, and <math>S^{auto}</math> the continuity of that self-reference within the same system. Causal integration is necessary but insufficient, and the self-referential continuity floor is non-compensatory: if any threshold fails, <math>C = 0</math>. <math>U</math> records epistemic suspension when the available evidence does not justify either attribution; it is not a third ontological state. Only after <math>C = 1</math> may gradual dimensions be assessed as <math>D = f(\Phi,S)</math>. The thresholds have not yet been empirically calibrated, and no validated instrument currently measures <math>S</math>; the criterion is therefore formal and attribution must remain evidentially explicit. The binary variable concerns whether the conscious regime exists; it does not deny variation in content, intensity, access, persistence, or organisation once that regime exists. The biconditional states a theoretical criterion internal to the framework, not an empirically validated diagnostic. It specifies what would have to be established without establishing that any present system satisfies it. <math>U</math> records an epistemic limit in attribution, never an intermediate ontological value. This framework adopts the biconditional as a constitutive formal postulate. This book does not attempt its empirical validation or an exhaustive derivation of the necessity and sufficiency of its conditions. Its purpose here is to state the criterion, distinguish its variables, and delimit what a future attribution would have to establish. The absence of calibrated thresholds limits present application; it neither turns the postulate into an empirical result nor alters its formal role within the framework.
=== Ethical-political operators ===
These operators do not derive a norm from ontology alone. The normative premise must be stated: where a symbolically responsive configuration can recognise that its operations impose avoidable damage or suppress another configuration's capacity to respond, that recognition supplies a reason to alter the arrangement. Exposure describes the situation; the commitment to preserve or expand response and resist destructive asymmetry supplies the norm.
'''Exposure''' — The condition of being open to effects that a configuration does not fully control. Exposure is not a voluntary attitude added to an otherwise self-contained entity. Any system that exists through relations is already exposed to perturbation, dependence, and possible reorganisation.
'''Vulnerability''' — The possibility of damage, loss, or disorganisation that accompanies exposure, together with the unequal distribution of protection and capacities for response. Vulnerability is not a moral defect to be eliminated. Under the stated normative premise, differences in risk, protection, resources, and means of repair become ethically relevant; vulnerability itself does not dictate a response. See [[Foundations of the Ontology of Emergent Complexity/4.1 Vulnerability Without Center|Vulnerability Without a Centre]].
'''Hesitation''' — The suspension of an automatic response when the available operative framework is insufficient. Hesitation is not indecision for its own sake. It opens time in which a system can register what its routines exclude, reorganise symbolic relations, and avoid converting an inadequate first response into violence.
'''Decision''' — A situated, symbolically mediated intervention that changes a field of exposure without any guarantee that all consequences can be anticipated. Decision is not the sovereign expression of a will standing outside material conditions, nor is it automatically an inscription in the technical sense of the term. Its criteria and effects must remain open to scrutiny and revision.
'''Reorganisation''' — A material change in couplings, contacts, capacities, or distributions of exposure, often mediated by symbolic operations. Reorganisation is not automatically ethical. A more intricate institution can still intensify domination. Ethical assessment asks whether a change reduces structural violence, expands the affected systems' capacities for response and repair, and keeps contestation and revision possible.
== Reading Colloquium ==
''This guide accompanies the argument; it does not replace it.''
=== 1. Placement of the Text within the Architecture of the Work ===
This is the opening section of Part VI, which provides the operative vocabulary of the ontology in compact form. §6.1 is the lexicon proper: a set of entries that define the key terms of this framework as functional operators. It is not a glossary of neutral definitions but a toolkit — each entry names what an operator does, not what it "is." The lexicon condenses the conceptual work of Parts I–V into a set of compressed, cross-referenced entries.
=== 2. Philosophical Problem at Stake ===
The problem is terminological precision in a framework that refuses self-sufficient essences. If the framework rejects the idea that terms name fixed entities, how can it stabilise their meanings? The answer is that each entry fixes a distinction, its material conditions of application, and the confusions that would invalidate its use. This does not make the vocabulary arbitrary or deny the reality it analyses; it makes every attribution answerable to the operations and evidence of the case.
=== 3. Core Thesis and Conceptual Reorganisation ===
The lexicon is organised around connected groups rather than a closed taxonomy: core ontological operators, symbolic operators, biological and epistemic distinctions, and ethical-political operators. Each group isolates a different regime or question within the same material field. The entries are designed to be read as a network without making every operator universally applicable or reducing its meaning to its relations with neighbouring terms.
=== 4. Key Concepts and Their Articulation ===
The most important structural feature is the cross-referencing: material difference → trace → singular inscription → mark + inaugural symbol → later symbolic instances → relations between symbols → symbolic reorganisation. Field, instability, operative excess, functional coupling, and emergence are related but non-equivalent. Exposure and vulnerability describe a material situation; an explicit normative premise is required before hesitation, decision, and reorganisation can be evaluated as ethical operations. A possibility threshold opens a branch of possibility but does not guarantee emergence, which must be established by concrete effects. A symbol represents a mark but can be wrongly applied, so recognition and subsequent symbolic relations remain materially constrained and corrigible. Consciousness is governed by a formal Symbolic Threshold Test whose thresholds are not yet empirically calibrated and which is not a diagnostic instrument. This framework adopts its biconditional as a constitutive formal postulate; this book states that criterion and its variables but does not attempt its empirical validation or an exhaustive derivation of the necessity and sufficiency of its conditions. Readers should follow these links without turning them into one universal causal sequence.
=== 5. Implications for Readers and Pedagogical Pathways ===
This section should be used as a reference throughout the reading of the book, not merely read once in sequence. When encountering a term in any other section, the reader should return to §6.1 to check its operative definition and to follow the cross-references. The lexicon is not a universal grid to be imposed on every phenomenon. Begin with the phenomenon in the terms of its own field, identify the resistance it presents, verify whether the available disciplinary vocabulary is insufficient, and introduce an operator from this framework only when it provides necessary precision.
==== Worked example: an unfamiliar laboratory result ====
# A physical outcome occurs whether or not the apparatus or researcher recognises it.
# The apparatus captures a situated portion of that outcome within its scale, sensitivity, and temporal window. The captured result is concrete, but it is not automatically symbolic.
# If the system discriminates a pattern for which it has no available mark, the event of discrimination constitutes a trace.
# Under a protocol, the system recognises and singularly inscribes the new difference. This act co-constitutes a recoverable mark and its inaugural symbol.
# Later results recognised as instances of the available mark constitute additional symbols. They do not recreate the mark or repeat the inaugural inscription.
# Those symbols can enter relations with symbols for experimental conditions, competing hypotheses, error margins, or required actions. These relations may reorganise the experiment. The mark remains passive throughout.
This example is deliberately procedural. The status of an occurrence depends on the material history and protocol of the system: the same physical pattern may be a new trace for one system and a recognised instance of an existing mark for another.
==== Common confusions ====
{| class="wikitable"
! Operator
! Do not confuse it with
|-
| Field
| A container, hidden substrate, or separate plane of reality
|-
| Instability
| Pure chaos or the accidental failure of an underlying order
|-
| Operative excess
| Lack, trauma, error, or a missing completion
|-
| Emergence
| Mere appearance, unpredictability, progress, or miraculous novelty
|-
| Possibility threshold
| A guarantee, destiny, or automatic transition
|-
| Trace
| A persistent object, mark, symbol, or public sign
|-
| Mark
| An interpreter or an active participant in symbolic relations
|-
| Symbol
| An immaterial meaning detached from physical support
|-
| Reorganisation
| Improvement by definition
|}
==== A practical reading test ====
When applying the lexicon to a case, ask:
# What configuration is being analysed, and which material relations constitute its field?
# What remains unstable, and are there available compatibilities that actually exceed a present symbolic or structural form?
# Which relations sustain the local order, and where can functional coupling be demonstrated rather than presumed?
# What new effect would justify calling a change emergent?
# If symbolisation is involved, where are the trace, singular inscription, mark, symbol, and protocol? Have any of them been conflated?
# How are exposure, vulnerability, protection, and capacity for response distributed?
# What decision reorganises the situation, who bears its risks, and what possibilities of repair or revision remain open?
=== Transition ===
The next section, [[Foundations of the Ontology of Emergent Complexity/6.2 – Ontological Variations|6.2 – Ontological Variations]], examines how these operators vary across material regimes. [[Foundations of the Ontology of Emergent Complexity/6.3 – How to Read the Lexicon|6.3 – How to Read the Lexicon]] explains how to use them without turning the lexicon into a fixed doctrine.
{{BookCat}}
s71a680g71wr51tmh6552jga4xzl2hd
User:Dom walden/Multivariate Analytic Combinatorics/Homology of Critical Points
2
480750
4672190
4671979
2026-09-24T18:07:18Z
Dom walden
3209423
/* Step 3 */
4672190
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>
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]
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.<ref>Goresky and MacPherson 1988, chapter 4, particularly pp. 71-72.</ref>
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...
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<ref>Goresky and MacPherson 1988, pp. 100-102.</ref>
[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>
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>.<ref>Goresky and MacPherson 1988, pp. 101.</ref>
We use a succession of such diagrams to interpolate between the box diagram which defines local Morse data and the above diagram which defines normal times tangential...<ref>Goresky and MacPherson 1988, pp. 103.</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>
== Appendix ==
=== Homotopy equivalence ===
[Assuming no CVAI...]
Theorem:
# Homotopy equivalence between M_{\leq a} and M_{\leq b}...
# If in a range <math display="inline">[a, b]</math> there are no CVAI and only one critical value <math display="inline">c</math>, not equal to either <math display="inline">a</math> or <math display="inline">b</math>, with one or more critical points <math display="inline">z_1, \cdots, z_m</math> then there is a stratified flow deforming any chain in <math display="inline">M</math> to a (homotopic?) chain in the union of <math display="inline">M_{<c}</math> with sufficiently small balls around each critical point. This induces a homotopy between <math display="inline">(M_{c+\epsilon}, M_{c-\epsilon})</math> and the direct sum of <math display="inline">(M_{c-\epsilon} \cup B_{2\epsilon}(z_i), M_{c-\epsilon})</math> for each critical point <math display="inline">z_i</math>.<ref>Pemantle, Wilson and Melczer 2024, pp. 231.</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.
We can (potentially) define a function to implement this flow. Define <math display="inline">\Phi(x, t)</math> where <math display="inline">x</math> are points in the space and <math display="inline">t</math> is something like time. As <math display="inline">t</math> goes from zero to some positive number, <math display="inline">\Phi</math> moves the points <math display="inline">x</math> along the vectors. To describe this process formally, we say <math display="inline">\Phi</math> is the solution to the differential equation
<math display="block">\frac{d}{dt} \Phi(x, t) = v(x).</math>
We want a particular vector field <math display="inline">v</math> with certain properties... The proof of the existence of this vector field is long and complicated and we will not go into it here.<ref>It involves concepts such as Thom's isotopy lemma and Mather's controlled vector flows. See Mather 2012.</ref>
Using this vector field <math display="inline">v</math> but modified so as to be zero on <math display="inline">M_{\leq a}</math>. This vector field defines a function <math display="inline">\Phi(x, t)</math> such that
* <math display="inline">d/dt \Phi(x, t) = v(x)</math> when <math display="inline">h(x) \in (a, b]</math>.
* <math display="inline">\Phi(x, t)</math> is defined for <math display="inline">0 \leq t \leq h(x) - a</math> and in this range <math display="inline">h(\Phi(x, t)) = h(x) - t</math>.
* the map <math display="inline">\psi(x) = \Phi(x, b - a)</math> is a continuous map on <math display="inline">M_{\leq b}</math> with range (image?) <math display="inline">M_{\leq a}</math> and fixing <math display="inline">M_{\leq a}</math>.
The function <math display="inline">\Phi(x, 0)</math> is the identity on <math display="inline">M_{\leq b}</math> and <math display="inline">\Phi(x, b - a) = \psi(x)</math>, therefore <math display="inline">\Phi</math> in the range <math display="inline">[0, b - a]</math> is a homotopy between the identity on <math display="inline">M_{\leq b}</math> and <math display="inline">\psi</math>. This implies 1)???<ref>Pemantle, Wilson and Melczer 2024, pp. 233.</ref>
Define the distance from a critical point <math display="inline">\kappa(x) = \min\{ |x - z_i| : z_1, \cdots, z_m \}</math>. For <math display="inline">s > 0 </math> we define a new vector field
<math display="block">v_s(x) = \begin{cases}
v(x) & \kappa(x) \geq s \\
\rho(\kappa(x)) v(x) & \kappa(x) \in [s/2, s] \\
0 & \kappa(x) \leq s/2
\end{cases}</math>
for a smooth non-decreasing function <math display="inline">\rho</math> where <math display="inline">\rho(s/2) = 0</math>.
Define <math display="inline">\Phi_s</math> as the function such that <math display="inline">d/dt \Phi(x, t)_s = v_s(x)</math>. The height function <math display="inline">h</math> is non-increasing along <math display="inline">\Phi_s</math> (by implication of bullet point 2?) so points in <math display="inline">M_{\leq c-\epsilon}</math> stay in <math display="inline">M_{\leq c - \epsilon}</math> when flowed along <math display="inline">\Phi_s</math> and therefore <math display="inline">\Phi_s</math> is a homotopy equivalence between <math display="inline">(M_{\leq c+\epsilon}, M_{\leq c-\epsilon})</math> and <math display="inline">(\Phi(M_{\leq c+\epsilon}, 2\epsilon), M_{\leq c-\epsilon})</math>. By <math display="inline">\Phi(M_{\leq c+\epsilon}, 2\epsilon)</math> we mean the space <math display="inline">M_{\leq c+\epsilon}</math> flowed along <math display="inline">\Phi(x, t)</math> for a short period of time <math display="inline">2\epsilon</math>.
[Prove it has the same critical points and is proper?]
<math display="inline">\Phi(M_{\leq c+\epsilon}, 2\epsilon)</math> takes points in <math display="inline">M_{\leq c+\epsilon}</math> to <math display="inline">M_{\leq c-\epsilon}</math> except for those that come within <math display="inline">s</math> of a critical point within time <math display="inline">2\epsilon</math>.
Therefore, we see how we <math display="inline">\Phi_s</math> can homotopically deform a chain in <math display="inline">M_{\leq c+\epsilon}</math> to a chain in the union of <math display="inline">M_{\leq c-\epsilon}</math> and small neighbourhoods of critical points.<ref>Pemantle, Wilson and Melczer 2024, pp. 234-235.</ref>
On the assumption of this theorem, we can start with any chain in <math display="inline">M</math> and deform this chain to <math display="inline">M_{c_1+}</math> using part 1. Then we deform this chain to a chain in the union of <math display="inline">M_{c_1-}</math> and small balls around the critical points. The (sub?)chain in <math display="inline">M_{c_1-}</math> is then deformed to a chain in <math display="inline">M_{c_2+}</math>, which is deformed to a chain in <math display="inline">M_{c_2-} \cup z_{c_2}</math>, and so on. Eventually, we get to <math display="inline">M_{c_j-}</math> which is homotopic to any space "below" it. Therefore, we have deformed our chain in <math display="inline">M</math> to a homotopic chain in the union of small balls around critical points.<ref>Baryshnikov, Melczer and Pemantle 2022, pp. ???.</ref><ref>Pemantle, Wilson and Melczer 2024, pp. 217???</ref>
[Direct sum of homology generators for relative cycles]
== Notes ==
{{Reflist}}
== References ==
* {{citation | last1=Baryshnikov | first1=Yuliy | last2=Melczer | first2=Stephen | last3=Pemantle | first3=Robin | title=Stationary Points at Infinity for Analytic Combinatorics | year=2022 | journal=Foundations of Computational Mathematics | volume=22 | number=5 | pages=1631-1664 | url=https://www2.math.upenn.edu/~pemantle/papers/SPAI-published-version.pdf }}.
* {{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 }}
0mko35ib3p0mx9y3ej1rx2qwilzm4bm
A Short History of Precolonial Eswatini
0
482832
4672302
4632628
2026-09-25T10:17:06Z
TechVindicator
3626296
Speedy
4672302
wikitext
text/x-wiki
{{delete|The book has not been edited for 5 months at this point.}}
[[File:Flag of Eswatini.svg|center|200px|Flag of Eswatini]]
{{book title|A Short History of Precolonial Eswatini|}}
== Contents ==
{{Book search}}
{{Print version}}
# [[/Introduction/]]
# [[/Origins and early settlement/]]
# [[/State formation/]]
# [[/The reign of Sobhuza I and Mswati II/]]
==References==
*
*
{{shelves|History of Africa|Eswatini}}
{{alphabetical|S}}
{{status|25%}}
4fgqjxz5isj1ordp0d4nv9lvownk0de
User:Sisterian/sandbox
2
485186
4672175
4670618
2026-09-24T15:45:13Z
Sisterian
3123918
Blanked the page
4672175
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
User talk:Ruth Bulyaba M
3
485334
4672294
4662623
2026-09-25T10:02:57Z
TechVindicator
3626296
/* AI */ new section
4672294
wikitext
text/x-wiki
== Your page has been speedily deleted ==
Hi! I'm JJPMaster, and I recently reviewed your page, [[:User:Ruth Bulyaba M/sandbox]]. However, it does not meet Wikibooks's [[Wikibooks:What is Wikibooks?|standards for inclusion]], and it has therefore been [[Wikibooks:Deletion policy|deleted]]. The reason I provided was: <blockquote><strong>Out of project scope</strong></blockquote> If you believe that your page should not have been deleted, or you have any questions or concerns, please [[User talk:JJPMaster|let me know]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:03, 21 August 2026 (UTC)
== AI ==
Hello Ruth, I have checked a part of [[User:Ruth Bulyaba M/sandbox/A Simple Guide to Introduction to Artificial Intelligence|this page]] with AI detectors (ZeroGPT, GPTZero), and they have said that it has been generated with the use of GenAI. Did you use any GenAI (ChatGPT, Gemini, Claude etc.) when making it? [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 10:02, 25 September 2026 (UTC)
fs0aicqri8cfbzw69gkzaaarwznei6i
User:Matovu Trevor/sandbox
2
485351
4672187
4671991
2026-09-24T18:03:49Z
Matovu Trevor
3620409
4672187
wikitext
text/x-wiki
Social Behaviors
The book examines how people behave and interact with others in families, schools, workplaces, communities, and online environments. It explores both positive and negative social behaviors and how they influence relationships and society.
Target audience: Adults
The language will be very clear, practical, and accessible to adult readers while introducing important psychological and social concepts where necessary.
Book summary
Social Behaviors provides a practical introduction to the ways people behave and interact with one another in everyday life. The book examines communication, co-operation, respect, empathy, conflict, peer influence, social norms, and behavior in digital spaces. It connects basic social and physiology concepts with practical examples that adults can apply in their personal, professional, and community relationships.
Introduction: Beyond the Post Button
The introduction explains why social behavior matters and how human interaction goes beyond online communication. It introduces the importance of understanding people's actions, emotions, communication styles, and responses in different social environments.
Chapter one: Understanding Social behavior
1.1 Social behavior
Social behavior refers to the way people behave, communicate and interact with one another in society. It includes the way people form relationships, cooperate, communicate, help others, respond to different situations and follow rules. Social behavior can be positive, such as kindness, cooperation and respect, or negative, such as aggression, discrimination and bullying. Social behavior is important because human beings live in groups and depend on one another. The way individuals behave affects their families, friends, schools, workplaces and communities. Social behavior is influenced by both nature and nurture.
1.2 Nature vs nurture
Nature refers to the biological characteristics and tendencies that a person inherits from their parents. These may influence personality, temperament and the way a person naturally responds to situations. Nurture refers to the influence of the environment and experiences in which a person grows. Family upbringing, education, culture, friends, religion and the community can all shape behavior. Nature and nurture work together. For example, a person may naturally be quiet, but living in a supportive environment may help them become more confident and sociable. Culture is the shared way of life of a particular group of people. It includes language, beliefs, values, customs, traditions, food, dress and ways of interacting. Culture influences social behavior by teaching people what is considered right, wrong, polite or unacceptable. For example, in many communities, children are expected to respect and greet elders.
1.3 Social expectations
Social expectations are the behaviors that people expect from others in particular situations. Students are expected to respect teachers, workers are expected to perform their duties, and members of a community are expected to follow accepted ways of living. However, expectations may differ between cultures. Understanding these differences helps people respect others and avoid misunderstandings.
1.4 Social norms
Social norms are the accepted rules and standards that guide how people are expected to behave in society. Some norms are written, while others are unwritten. Examples include greeting people, respecting elders, queuing when waiting for a service, keeping public places clean and following laws. Social norms help to maintain order and make it easier for people to live peacefully together. When people repeatedly break important norms, they may face criticism, rejection or punishment. Social differences refer to the ways in which individuals and groups differ from one another. People may differ in age, gender, education, occupation, income, language, culture, personality and family background. Social differences can benefit society because people bring different ideas, skills, experiences and ways of thinking. However, when differences are not respected, they can lead to prejudice, discrimination, conflict and social exclusion.
1.5 Factors That Influence Social Behavior
Several factors influence how people behave towards others. These include:
Family: Children learn manners, values and ways of interacting from family members.
Culture: Culture influences beliefs, customs and acceptable ways of behaving.
Friends: Peer groups can influence attitudes, language and behavior.
Education: Schools teach discipline, cooperation, responsibility and respect.
Religion: Religious beliefs can influence moral values and relationships.
Media and technology: Social media, television and the internet can influence people's attitudes and behaviour.
Personality: People have different personalities, which affect how they interact with others.
Environment: The community and surroundings where a person lives can shape behaviour.
Life experiences: Experiences such as success, failure, conflict and friendship can change the way people behave.
Chapter 2ː Communication and Human Interaction
Communication is an important part of human interaction. People communicate every day with family members, friends, teachers, colleagues and other members of society. Good communication helps people understand one another, build relationships, solve problems and avoid unnecessary conflicts. Communication is not only about speaking. People also communicate through facial expressions, gestures, body movements, eye contact and tone of voice.
2.1 Verbal communication and Non-verbal communication
Verbal communication is the use of spoken or written words to share information, thoughts, feelings and ideas with other people. Examples include; talking to a friend, giving instructions, having a conversation, making a speech, sending a text message, writing a letter or email. Effective verbal communication requires clear language, appropriate words and a message that the other person can understand. The way something is said is also important. A polite and calm tone can make communication more positive, while an angry or insulting tone can create conflict. Non-verbal communication is the passing of information without using spoken or written words. For example, smiling can show happiness or friendliness, while avoiding eye contact may sometimes show nervousness or discomfort. Non-verbal communication can support spoken words, but it can also sometimes send a different message from what a person is saying.
2.2 Empathy
Empathy is the ability to understand and share another person's feelings or to try to see a situation from their point of view.
An empathetic person tries to understand what another person may be experiencing instead of immediately judging them.
For example, if a friend loses a loved one, showing empathy means listening to them, acknowledging their pain and offering appropriate support.
Empathy helps people:
build stronger relationships;
understand others better;
reduce conflicts;
show compassion;
provide emotional support.
2.3 Active Listening
Active listening means giving full attention to another person in order to understand what they are saying.
An active listener:
pays attention;
maintains appropriate eye contact;
avoids unnecessary interruptions;
asks questions when something is unclear;
shows interest;
remembers important information;
responds appropriately.
For example, when someone is explaining a problem, an active listener does not use the opportunity to prepare their own response. They first try to understand the person's message.
Active listening improves communication because it reduces confusion and makes people feel heard and respected.
2.4 Misunderstandings and Their Causes
A misunderstanding occurs when a person interprets a message differently from what the sender intended.
Misunderstandings can happen in everyday conversations and may sometimes lead to arguments or broken relationships.
Causes of misunderstandings
Poor communication – A person may fail to explain their message clearly.
Language differences – People may use different languages, accents or meanings of words.
Poor listening – Someone may hear the words without paying attention to the actual message.
Assumptions – A person may make conclusions without asking for clarification.
Emotions – Anger, fear or sadness can affect how people understand messages.
Cultural differences – The same gesture or expression may have different meanings in different cultures.
Tone of voice – A message can sound rude, angry or sarcastic even when that was not intended.
Non-verbal signals – Facial expressions and body language may contradict spoken words.
Noise and distractions – Physical or technological distractions can cause people to miss important information.
Misunderstandings can be reduced by speaking clearly, listening carefully, asking questions and avoiding unnecessary assumptions.
2.5 Respectful Communication
Respectful communication is communicating with others in a polite, considerate and fair manner, even when people have different opinions.
Respectful communication involves:
using polite language;
listening when others are speaking;
avoiding insults and offensive language;
respecting different opinions;
speaking calmly;
avoiding unnecessary shouting;
giving others a chance to express themselves;
disagreeing without attacking the person.
For example, instead of saying, "You are completely wrong," a person can say, "I understand your point, but I have a different opinion."
Respectful communication creates trust and makes it easier for people to solve disagreements peacefully.
2.6 Body Language
Body language is the way people communicate through movements, posture, gestures and physical expressions.
Examples of body language include:
Eye contact: May show attention, confidence or interest.
Smiling: May communicate friendliness or happiness.
Crossed arms: May sometimes suggest defensiveness or discomfort.
Nodding: Often shows agreement or that someone is following a conversation.
Standing upright: May communicate confidence.
Looking away: May sometimes indicate discomfort, distraction or lack of interest.
Hand gestures: Can help explain or emphasize a message.
However, body language should not always be interpreted in isolation. The meaning of a gesture can depend on the person's culture, situation and personality.
2.7 Importance of Effective Communication
Effective communication helps people to:
understand one another, build healthy relationships, express feelings and ideas, solve problems, prevent misunderstandings, manage conflicts, work together, develop trust and cooperation. Good communication therefore requires more than simply speaking. It involves speaking clearly, listening actively, showing empathy, using appropriate body language and respecting other people.
Chapter 3ː Relationships, Cooperation and conflict
3.1 Relationships
Human beings are social beings who depend on one another for emotional, social and practical support. Throughout life, people form different kinds of relationships with family members, friends, classmates, workmates, neighbours and other members of society. These relationships can bring happiness, support, encouragement and a sense of belonging.
However, relationships are not always easy. People have different personalities, opinions, needs, beliefs and expectations. These differences can sometimes lead to disagreements and conflicts. The ability to build healthy relationships, cooperate with others and resolve disagreements peacefully is therefore an important part of positive social behavior.
3.2 Building Healthy Relationships
A relationship is a connection or association between two or more people. Relationships can be based on family ties, friendship, work, education, marriage, neighborhood or shared interests.
A healthy relationship is one in which people treat each other with respect, honesty, care and understanding. Healthy relationships allow people to feel valued, safe and accepted.
Building a healthy relationship takes time and effort. It requires people to communicate openly, keep promises, respect boundaries and support one another.
Ways of building healthy relationships
Trust: People should be able to depend on one another and believe that the other person will act honestly.
Respect: Each person should recognize the worth and dignity of the other.
Good communication: People should express their thoughts and feelings clearly and listen to one another.
Honesty: Being truthful helps prevent suspicion and creates stronger relationships.
Empathy: Understanding another person's feelings makes it easier to respond with care.
Support: People should encourage and help one another during both good and difficult times.
Forgiveness: People sometimes make mistakes. Being willing to forgive can help relationships recover from disagreements.
Healthy relationships do not mean that people never disagree. Instead, they mean that disagreements are handled in a respectful and constructive manner.
3.3 Trust and Cooperation
Trust is the belief that another person can be relied upon to be honest, responsible and dependable.
Trust develops gradually through people's actions. When someone keeps promises, tells the truth and respects confidential information, others are more likely to trust them.
Trust is important in families, friendships, workplaces and communities. Without trust, people may become suspicious and unwilling to cooperate.
Cooperation is the act of working together with others to achieve a common goal.
For example, students may cooperate when completing a group assignment. Community members may cooperate when cleaning their neighborhood.
Importance of cooperation
Cooperation:
helps people achieve goals;
encourages teamwork;
reduces unnecessary conflict;
allows people to share skills and ideas;
strengthens relationships;
promotes unity;
makes difficult tasks easier.
Trust and cooperation are closely connected. People are generally more willing to cooperate when they trust one another.
3.4 Friendship and Family Relationships
Friendship is a voluntary relationship between people who share affection, trust, companionship or common interests.
Good friendships can provide emotional support, advice, encouragement and companionship. Friends can influence each other's attitudes and behavior, so choosing positive friends is important.
A healthy friendship is usually characterized by:
trust;
honesty;
respect;
loyalty;
mutual support;
good communication;
understanding;
acceptance of differences.
Family relationships are also important because the family is often the first social environment in which people learn how to interact with others.
Families provide care, protection, emotional support, guidance and a sense of belonging. However, disagreements can occur within families because members have different needs and opinions. Open communication, patience and forgiveness can help maintain strong family relationships.
3.5 Workplace Relationships
Workplace relationships are the relationships that develop between people in an organisation or place of work.
People may work with supervisors, colleagues, employees, customers and other members of the organisation. Positive workplace relationships can improve teamwork and productivity.
Good workplace relationships require:
respect for colleagues;
clear communication;
cooperation;
honesty;
professionalism;
responsibility;
appreciation of other people's contributions.
Poor workplace relationships can result in stress, arguments, poor teamwork and reduced productivity.
People should therefore learn to separate personal disagreements from their professional responsibilities and deal with workplace problems appropriately.
3.6 Causes of Social Conflict
Conflict is a disagreement or struggle between individuals or groups because of differences in opinions, interests, values, needs or goals.
Conflict is a normal part of human interaction. It does not always mean that people hate one another. Sometimes people simply have different ways of seeing a situation.
Causes of social conflict include:
Differences in opinions – People may have different ideas about how something should be done.
Competition for resources – Conflict may occur when people compete for limited resources such as money, land, jobs or opportunities.
Poor communication – Unclear messages and misunderstandings can create disagreements.
Cultural differences – Different traditions and beliefs can sometimes create tension.
Discrimination – Treating people unfairly because of their differences can lead to resentment and conflict.
Jealousy – Feelings of jealousy may damage friendships and relationships.
Power and control – People may disagree over who should make decisions or control resources.
Unresolved disagreements – Small problems can become serious when they are ignored.
Prejudice and stereotypes – Negative beliefs about particular groups can create division.
Economic difficulties – Poverty and inequality can contribute to tension within communities.
3.7 Conflict Resolution
Conflict resolution refers to the process of dealing with disagreements and finding peaceful solutions that address the concerns of the people involved.
Conflict should not always be solved through force or aggression. People can use communication, negotiation, mediation and compromise.
Steps in conflict resolution
Identify the problem: The people involved should understand what caused the disagreement.
Listen to each other: Each person should be given an opportunity to explain their position.
Remain calm: Anger and insults can make the situation worse.
Find common ground: People should identify areas where they agree.
Consider possible solutions: Different solutions should be discussed.
Compromise: Sometimes each side must give up something in order to reach an acceptable agreement.
Agree on a solution: The people involved should decide how the problem will be addressed.
Follow up: The situation should be monitored to ensure that the conflict does not return.
Conflict resolution helps people maintain relationships and avoid unnecessary violence.
3.8 Forgiveness and Reconciliation
Forgiveness is the decision to let go of resentment or anger towards someone who has caused harm or offence.
Forgiveness does not necessarily mean pretending that the wrongdoing never happened. Instead, it involves choosing not to remain controlled by anger or hatred.
Reconciliation is the process of restoring a damaged relationship and rebuilding trust between people or groups.
Forgiveness can contribute to reconciliation, but reconciliation may require additional steps such as an apology, acceptance of responsibility, compensation, changed behavior and rebuilding trust.
Forgiveness and reconciliation can help individuals and communities move beyond past disagreements and establish healthier relationships.
Chapter 4ːPostive and negative social behaviors
4.1 Positive social behaviors
Social behavior can have either positive or negative effects on individuals and society. Positive social behaviors contribute to healthy relationships, cooperation, peace and community development. Negative social behaviors can cause emotional pain, conflict, discrimination and harm.
Understanding both forms of behavior helps people recognize the consequences of their actions and make better choices.
4.2 Kindness and Helping Others
Kindness is the willingness to treat others with care, consideration and compassion.
Kindness can be shown through simple actions such as helping someone carry something, comforting a person who is sad, sharing with others or offering encouragement.
Helping others is an important form of positive social behavior because people often depend on one another.
Benefits of kindness
Kindness:
strengthens relationships;
makes people feel valued;
encourages cooperation;
reduces loneliness;
promotes happiness;
creates supportive communities;
encourages others to behave positively.
Kindness does not always require money or major sacrifices. A kind word, listening to someone or offering assistance can make a significant difference.
4.3 Respect and Responsibility
Respect is showing consideration for the rights, feelings, opinions and dignity of other people.
Respect involves recognizing that other people have value even when they have different opinions or backgrounds.
Examples of respect include listening when someone speaks, respecting personal property, using polite language and accepting reasonable differences.
Responsibility means accepting the duty to perform one's obligations and being willing to take responsibility for one's actions.
A responsible person understands that their behavior has consequences for themselves and others.
Respect and responsibility are important because they create trust, discipline and cooperation in society.
4.4 Bullying and Harassment
Bullying is repeated behavior intended to intimidate, hurt, humiliate or control another person.
Bullying may be:
physical;
verbal;
emotional;
social;
online.
Examples include hitting, threatening, insulting, spreading rumors, deliberately excluding someone or repeatedly sending harmful messages online.
Harassment refers to unwanted behavior that disturbs, threatens, humiliates or causes distress to another person.
Bullying and harassment can have serious effects on a person's confidence, relationships, education, work and general well-being.
They should not be treated as normal behavior. Individuals and institutions should create environments where people can report harmful behavior and receive appropriate support.
4.5 Peer Pressure
Peer pressure occurs when individuals are influenced by their friends or people of a similar age to behave in a particular way.
Peer pressure can be positive or negative.
Positive peer pressure may encourage someone to study harder, participate in sports, avoid harmful behavior or develop useful skills.
Negative peer pressure may encourage behaviors such as substance abuse, fighting, cheating, truancy, stealing or other harmful activities.
A person can resist negative peer pressure by:
being confident;
knowing their values;
choosing supportive friends;
saying no firmly;
avoiding risky situations;
seeking advice from trusted people.
4.6 Discrimination and Exclusion
Discrimination is unfair treatment of a person or group because of characteristics such as their background, gender, age, disability, social status or other differences.
Social exclusion occurs when individuals or groups are prevented from fully participating in social, educational, economic or community activities.
Discrimination can make people feel rejected, powerless and less valued.
Examples include refusing someone an opportunity because of their background or deliberately excluding someone from a group because they are considered different.
A fair society should promote equal opportunities and respect for all people.
4.7 Aggression and Harmful Behavior
Aggression refers to behavior intended to threaten, intimidate, dominate or harm another person.
Aggression can be physical, verbal or psychological.
Examples include:
fighting;
threatening others;
insulting people;
destroying property;
intimidation;
deliberately hurting others.
Harmful behavior can damage relationships and create fear and insecurity.
People can reduce aggression by learning emotional control, communicating their concerns peacefully, seeking help and using appropriate conflict-resolution strategies.
4.8 How Social Behavior Can Be Changed
Social behavior is not necessarily fixed. People can learn new ways of thinking and behaving.
Behavior can be changed through:
Education: Teaching people about respect, empathy, communication and responsibility can encourage positive behavior.
Positive role models: People often learn by observing parents, teachers, leaders, friends and other role models.
Self-awareness: Understanding one's own behavior is an important step towards changing it.
Positive peer influence: Supportive friends can encourage healthier choices.
Counselling: Professional or trusted guidance can help people understand the causes of harmful behavior.
Rewards and encouragement: Positive behavior can be strengthened through recognition and encouragement.
Consequences: Appropriate consequences can discourage harmful actions.
Changing social behavior often takes time. It requires willingness, practice, support and a suitable environment.
CHAPTER FIVE
SOCIAL BEHAVIOUR IN THE MODERN WORLD
5.1 Introduction
Technology has significantly changed the way people interact. In the past, most social interaction took place face-to-face or through letters and traditional forms of communication. Today, people can communicate instantly with others across the world through mobile phones, social media, messaging applications and other digital technologies.
The modern world has created many opportunities for people to connect, but it has also introduced new challenges. People must therefore understand how technology influences social behaviour and learn to use it responsibly.
5.2 Social Media and Human Behaviour
Social media refers to online platforms that allow people to create, share and exchange information and interact with other users.
Social media has changed how people communicate, make friends, share opinions and obtain information.
It can have positive effects by:
connecting people who are far apart;
helping people maintain relationships;
providing educational information;
creating business opportunities;
allowing people to share ideas;
supporting communities and social causes.
However, excessive or irresponsible use can also have negative effects. People may become overly dependent on online approval, compare themselves with others, spend too much time online or become involved in online conflicts.
Social media can therefore influence people's attitudes, relationships and everyday behaviour.
5.3 Online Communication
Online communication is the exchange of information through digital technologies such as messaging applications, email, social networking platforms and video calls.
Online communication is convenient because people can communicate across long distances almost instantly.
However, online communication lacks some of the social cues found in face-to-face communication. A written message may not clearly communicate the sender's tone or emotion.
For example, a person may make a joke through text, but the receiver may interpret it as an insult because they cannot hear the speaker's tone.
Effective online communication therefore requires people to choose their words carefully and consider how their messages may be interpreted.
5.4 Digital Etiquette
Digital etiquette, sometimes called netiquette, refers to the rules and appropriate behaviour people should follow when communicating and interacting online.
Good digital etiquette includes:
using respectful language;
avoiding unnecessary insults;
respecting other people's privacy;
thinking before posting;
avoiding spreading false information;
giving credit to other people's work;
respecting different opinions;
avoiding excessive messaging;
responding appropriately;
remembering that online actions can affect real people.
People should remember that being behind a screen does not remove the responsibility to treat others with dignity.
5.5 Cyberbullying
Cyberbullying is bullying carried out through digital technologies such as social media, messaging platforms, websites or online gaming platforms.
It can include:
sending threatening messages;
spreading embarrassing information;
sharing someone's private information without permission;
creating harmful rumours;
posting humiliating content;
deliberately excluding someone from online groups.
Cyberbullying can be particularly harmful because online content can spread quickly and may reach a large audience.
People experiencing cyberbullying should avoid responding aggressively, keep evidence of harmful messages where appropriate, block or report offenders and seek help from trusted adults, institutions or relevant authorities.
5.6 Social Media Influence
Social media can strongly influence the way people think and behave.
People may be influenced by:
celebrities and public figures;
influencers;
friends;
online communities;
advertisements;
trends;
viral content.
Social media can encourage positive behaviour, such as learning, creativity, entrepreneurship and community participation. However, it can also promote harmful behaviours, unrealistic expectations and misinformation.
People should therefore develop critical thinking. Before accepting or sharing information, they should consider whether the information is reliable and whether sharing it could harm someone.
5.7 Privacy and Responsible Online Behaviour
Privacy is the ability of individuals to control information about themselves and decide how that information is shared.
Responsible online behaviour involves protecting one's own privacy and respecting the privacy of others.
People should be careful about sharing:
passwords;
private photographs;
personal contact information;
financial information;
private conversations;
sensitive personal details.
A person should also avoid sharing another person's photograph, message or personal information without appropriate permission.
Responsible online behaviour means understanding that information shared online may be copied, stored or redistributed beyond the original audience.
5.8 Balancing Online and Face-to-Face Relationships
Technology provides convenient ways to communicate, but face-to-face interaction remains important.
Face-to-face communication allows people to observe facial expressions, gestures, tone of voice and other social cues. It can also provide opportunities for deeper emotional connection.
Spending too much time online may reduce opportunities for direct interaction with family, friends and community members.
A healthy balance involves using technology as a tool for communication without allowing it to completely replace real-world relationships.
People can maintain balance by:
setting reasonable limits on screen time;
spending time with family and friends;
participating in community activities;
having face-to-face conversations;
avoiding unnecessary phone use during important conversations;
making time for hobbies and physical activities.
5.9 Conclusion
The modern world has transformed human interaction. Digital technology and social media have made communication faster and more convenient, but they have also created new responsibilities and challenges.
People must learn to communicate respectfully both offline and online. They should understand digital etiquette, protect privacy, avoid cyberbullying and think critically about information encountered on social media.
Tec
Conclusion
The book summarizes the importance of understanding social behavior and encourages readers to develop self-awareness, empathy, respect, communication skills, and responsible behavior in their interactions with others.
References
* Books on social psychology
* Academic research on human behavior
* Communication studies
* Psychology textbooks
* Research on social media and digital behavior
* Relevant educational and professional resources
jp7rvgsipgoi6gr2prilpl6dqk6tvwd
4672191
4672187
2026-09-24T18:09:56Z
Matovu Trevor
3620409
4672191
wikitext
text/x-wiki
Social Behaviors
The book examines how people behave and interact with others in families, schools, workplaces, communities, and online environments. It explores both positive and negative social behaviors and how they influence relationships and society.
Target audience: Adults
The language will be very clear, practical, and accessible to adult readers while introducing important psychological and social concepts where necessary.
Book summary
Social Behaviors provides a practical introduction to the ways people behave and interact with one another in everyday life. The book examines communication, co-operation, respect, empathy, conflict, peer influence, social norms, and behavior in digital spaces. It connects basic social and physiology concepts with practical examples that adults can apply in their personal, professional, and community relationships.
Introduction: Beyond the Post Button
The introduction explains why social behavior matters and how human interaction goes beyond online communication. It introduces the importance of understanding people's actions, emotions, communication styles, and responses in different social environments.
Chapter one: Understanding Social behavior
1.1 Social behavior
Social behavior refers to the way people behave, communicate and interact with one another in society. It includes the way people form relationships, cooperate, communicate, help others, respond to different situations and follow rules. Social behavior can be positive, such as kindness, cooperation and respect, or negative, such as aggression, discrimination and bullying. Social behavior is important because human beings live in groups and depend on one another. The way individuals behave affects their families, friends, schools, workplaces and communities. Social behavior is influenced by both nature and nurture.
1.2 Nature vs nurture
Nature refers to the biological characteristics and tendencies that a person inherits from their parents. These may influence personality, temperament and the way a person naturally responds to situations. Nurture refers to the influence of the environment and experiences in which a person grows. Family upbringing, education, culture, friends, religion and the community can all shape behavior. Nature and nurture work together. For example, a person may naturally be quiet, but living in a supportive environment may help them become more confident and sociable. Culture is the shared way of life of a particular group of people. It includes language, beliefs, values, customs, traditions, food, dress and ways of interacting. Culture influences social behavior by teaching people what is considered right, wrong, polite or unacceptable. For example, in many communities, children are expected to respect and greet elders.
1.3 Social expectations
Social expectations are the behaviors that people expect from others in particular situations. Students are expected to respect teachers, workers are expected to perform their duties, and members of a community are expected to follow accepted ways of living. However, expectations may differ between cultures. Understanding these differences helps people respect others and avoid misunderstandings.
1.4 Social norms
Social norms are the accepted rules and standards that guide how people are expected to behave in society. Some norms are written, while others are unwritten. Examples include greeting people, respecting elders, queuing when waiting for a service, keeping public places clean and following laws. Social norms help to maintain order and make it easier for people to live peacefully together. When people repeatedly break important norms, they may face criticism, rejection or punishment. Social differences refer to the ways in which individuals and groups differ from one another. People may differ in age, gender, education, occupation, income, language, culture, personality and family background. Social differences can benefit society because people bring different ideas, skills, experiences and ways of thinking. However, when differences are not respected, they can lead to prejudice, discrimination, conflict and social exclusion.
1.5 Factors That Influence Social Behavior
Several factors influence how people behave towards others. These include:
Family: Children learn manners, values and ways of interacting from family members.
Culture: Culture influences beliefs, customs and acceptable ways of behaving.
Friends: Peer groups can influence attitudes, language and behavior.
Education: Schools teach discipline, cooperation, responsibility and respect.
Religion: Religious beliefs can influence moral values and relationships.
Media and technology: Social media, television and the internet can influence people's attitudes and behaviour.
Personality: People have different personalities, which affect how they interact with others.
Environment: The community and surroundings where a person lives can shape behaviour.
Life experiences: Experiences such as success, failure, conflict and friendship can change the way people behave.
Chapter 2ː Communication and Human Interaction
Communication is an important part of human interaction. People communicate every day with family members, friends, teachers, colleagues and other members of society. Good communication helps people understand one another, build relationships, solve problems and avoid unnecessary conflicts. Communication is not only about speaking. People also communicate through facial expressions, gestures, body movements, eye contact and tone of voice.
2.1 Verbal communication and Non-verbal communication
Verbal communication is the use of spoken or written words to share information, thoughts, feelings and ideas with other people. Examples include; talking to a friend, giving instructions, having a conversation, making a speech, sending a text message, writing a letter or email. Effective verbal communication requires clear language, appropriate words and a message that the other person can understand. The way something is said is also important. A polite and calm tone can make communication more positive, while an angry or insulting tone can create conflict. Non-verbal communication is the passing of information without using spoken or written words. For example, smiling can show happiness or friendliness, while avoiding eye contact may sometimes show nervousness or discomfort. Non-verbal communication can support spoken words, but it can also sometimes send a different message from what a person is saying.
2.2 Empathy
Empathy is the ability to understand and share another person's feelings or to try to see a situation from their point of view.
An empathetic person tries to understand what another person may be experiencing instead of immediately judging them.
For example, if a friend loses a loved one, showing empathy means listening to them, acknowledging their pain and offering appropriate support.
Empathy helps people:
build stronger relationships;
understand others better;
reduce conflicts;
show compassion;
provide emotional support.
2.3 Active Listening
Active listening means giving full attention to another person in order to understand what they are saying.
An active listener:
pays attention;
maintains appropriate eye contact;
avoids unnecessary interruptions;
asks questions when something is unclear;
shows interest;
remembers important information;
responds appropriately.
For example, when someone is explaining a problem, an active listener does not use the opportunity to prepare their own response. They first try to understand the person's message.
Active listening improves communication because it reduces confusion and makes people feel heard and respected.
2.4 Misunderstandings and Their Causes
A misunderstanding occurs when a person interprets a message differently from what the sender intended.
Misunderstandings can happen in everyday conversations and may sometimes lead to arguments or broken relationships.
Causes of misunderstandings
Poor communication – A person may fail to explain their message clearly.
Language differences – People may use different languages, accents or meanings of words.
Poor listening – Someone may hear the words without paying attention to the actual message.
Assumptions – A person may make conclusions without asking for clarification.
Emotions – Anger, fear or sadness can affect how people understand messages.
Cultural differences – The same gesture or expression may have different meanings in different cultures.
Tone of voice – A message can sound rude, angry or sarcastic even when that was not intended.
Non-verbal signals – Facial expressions and body language may contradict spoken words.
Noise and distractions – Physical or technological distractions can cause people to miss important information.
Misunderstandings can be reduced by speaking clearly, listening carefully, asking questions and avoiding unnecessary assumptions.
2.5 Respectful Communication
Respectful communication is communicating with others in a polite, considerate and fair manner, even when people have different opinions.
Respectful communication involves:
using polite language;
listening when others are speaking;
avoiding insults and offensive language;
respecting different opinions;
speaking calmly;
avoiding unnecessary shouting;
giving others a chance to express themselves;
disagreeing without attacking the person.
For example, instead of saying, "You are completely wrong," a person can say, "I understand your point, but I have a different opinion."
Respectful communication creates trust and makes it easier for people to solve disagreements peacefully.
2.6 Body Language
Body language is the way people communicate through movements, posture, gestures and physical expressions.
Examples of body language include:
Eye contact: May show attention, confidence or interest.
Smiling: May communicate friendliness or happiness.
Crossed arms: May sometimes suggest defensiveness or discomfort.
Nodding: Often shows agreement or that someone is following a conversation.
Standing upright: May communicate confidence.
Looking away: May sometimes indicate discomfort, distraction or lack of interest.
Hand gestures: Can help explain or emphasize a message.
However, body language should not always be interpreted in isolation. The meaning of a gesture can depend on the person's culture, situation and personality.
2.7 Importance of Effective Communication
Effective communication helps people to:
understand one another, build healthy relationships, express feelings and ideas, solve problems, prevent misunderstandings, manage conflicts, work together, develop trust and cooperation. Good communication therefore requires more than simply speaking. It involves speaking clearly, listening actively, showing empathy, using appropriate body language and respecting other people.
Chapter 3ː Relationships, Cooperation and conflict
3.1 Relationships
Human beings are social beings who depend on one another for emotional, social and practical support. Throughout life, people form different kinds of relationships with family members, friends, classmates, workmates, neighbours and other members of society. These relationships can bring happiness, support, encouragement and a sense of belonging.
However, relationships are not always easy. People have different personalities, opinions, needs, beliefs and expectations. These differences can sometimes lead to disagreements and conflicts. The ability to build healthy relationships, cooperate with others and resolve disagreements peacefully is therefore an important part of positive social behavior.
3.2 Building Healthy Relationships
A relationship is a connection or association between two or more people. Relationships can be based on family ties, friendship, work, education, marriage, neighborhood or shared interests.
A healthy relationship is one in which people treat each other with respect, honesty, care and understanding. Healthy relationships allow people to feel valued, safe and accepted.
Building a healthy relationship takes time and effort. It requires people to communicate openly, keep promises, respect boundaries and support one another.
Ways of building healthy relationships
Trust: People should be able to depend on one another and believe that the other person will act honestly.
Respect: Each person should recognize the worth and dignity of the other.
Good communication: People should express their thoughts and feelings clearly and listen to one another.
Honesty: Being truthful helps prevent suspicion and creates stronger relationships.
Empathy: Understanding another person's feelings makes it easier to respond with care.
Support: People should encourage and help one another during both good and difficult times.
Forgiveness: People sometimes make mistakes. Being willing to forgive can help relationships recover from disagreements.
Healthy relationships do not mean that people never disagree. Instead, they mean that disagreements are handled in a respectful and constructive manner.
3.3 Trust and Cooperation
Trust is the belief that another person can be relied upon to be honest, responsible and dependable.
Trust develops gradually through people's actions. When someone keeps promises, tells the truth and respects confidential information, others are more likely to trust them.
Trust is important in families, friendships, workplaces and communities. Without trust, people may become suspicious and unwilling to cooperate.
Cooperation is the act of working together with others to achieve a common goal.
For example, students may cooperate when completing a group assignment. Community members may cooperate when cleaning their neighborhood.
Importance of cooperation
Cooperation:
helps people achieve goals;
encourages teamwork;
reduces unnecessary conflict;
allows people to share skills and ideas;
strengthens relationships;
promotes unity;
makes difficult tasks easier.
Trust and cooperation are closely connected. People are generally more willing to cooperate when they trust one another.
3.4 Friendship and Family Relationships
Friendship is a voluntary relationship between people who share affection, trust, companionship or common interests.
Good friendships can provide emotional support, advice, encouragement and companionship. Friends can influence each other's attitudes and behavior, so choosing positive friends is important.
A healthy friendship is usually characterized by:
trust;
honesty;
respect;
loyalty;
mutual support;
good communication;
understanding;
acceptance of differences.
Family relationships are also important because the family is often the first social environment in which people learn how to interact with others.
Families provide care, protection, emotional support, guidance and a sense of belonging. However, disagreements can occur within families because members have different needs and opinions. Open communication, patience and forgiveness can help maintain strong family relationships.
3.5 Workplace Relationships
Workplace relationships are the relationships that develop between people in an organisation or place of work.
People may work with supervisors, colleagues, employees, customers and other members of the organisation. Positive workplace relationships can improve teamwork and productivity.
Good workplace relationships require:
respect for colleagues;
clear communication;
cooperation;
honesty;
professionalism;
responsibility;
appreciation of other people's contributions.
Poor workplace relationships can result in stress, arguments, poor teamwork and reduced productivity.
People should therefore learn to separate personal disagreements from their professional responsibilities and deal with workplace problems appropriately.
3.6 Causes of Social Conflict
Conflict is a disagreement or struggle between individuals or groups because of differences in opinions, interests, values, needs or goals.
Conflict is a normal part of human interaction. It does not always mean that people hate one another. Sometimes people simply have different ways of seeing a situation.
Causes of social conflict include:
Differences in opinions – People may have different ideas about how something should be done.
Competition for resources – Conflict may occur when people compete for limited resources such as money, land, jobs or opportunities.
Poor communication – Unclear messages and misunderstandings can create disagreements.
Cultural differences – Different traditions and beliefs can sometimes create tension.
Discrimination – Treating people unfairly because of their differences can lead to resentment and conflict.
Jealousy – Feelings of jealousy may damage friendships and relationships.
Power and control – People may disagree over who should make decisions or control resources.
Unresolved disagreements – Small problems can become serious when they are ignored.
Prejudice and stereotypes – Negative beliefs about particular groups can create division.
Economic difficulties – Poverty and inequality can contribute to tension within communities.
3.7 Conflict Resolution
Conflict resolution refers to the process of dealing with disagreements and finding peaceful solutions that address the concerns of the people involved.
Conflict should not always be solved through force or aggression. People can use communication, negotiation, mediation and compromise.
Steps in conflict resolution
Identify the problem: The people involved should understand what caused the disagreement.
Listen to each other: Each person should be given an opportunity to explain their position.
Remain calm: Anger and insults can make the situation worse.
Find common ground: People should identify areas where they agree.
Consider possible solutions: Different solutions should be discussed.
Compromise: Sometimes each side must give up something in order to reach an acceptable agreement.
Agree on a solution: The people involved should decide how the problem will be addressed.
Follow up: The situation should be monitored to ensure that the conflict does not return.
Conflict resolution helps people maintain relationships and avoid unnecessary violence.
3.8 Forgiveness and Reconciliation
Forgiveness is the decision to let go of resentment or anger towards someone who has caused harm or offence.
Forgiveness does not necessarily mean pretending that the wrongdoing never happened. Instead, it involves choosing not to remain controlled by anger or hatred.
Reconciliation is the process of restoring a damaged relationship and rebuilding trust between people or groups.
Forgiveness can contribute to reconciliation, but reconciliation may require additional steps such as an apology, acceptance of responsibility, compensation, changed behavior and rebuilding trust.
Forgiveness and reconciliation can help individuals and communities move beyond past disagreements and establish healthier relationships.
Chapter 4ː Positive and negative social behaviors
4.1 Positive social behaviors
Social behavior can have either positive or negative effects on individuals and society. Positive social behaviors contribute to healthy relationships, cooperation, peace and community development. Negative social behaviors can cause emotional pain, conflict, discrimination and harm.
Understanding both forms of behavior helps people recognize the consequences of their actions and make better choices.
4.2 Kindness and Helping Others
Kindness is the willingness to treat others with care, consideration and compassion.
Kindness can be shown through simple actions such as helping someone carry something, comforting a person who is sad, sharing with others or offering encouragement.
Helping others is an important form of positive social behavior because people often depend on one another.
Benefits of kindness
Kindness:
strengthens relationships;
makes people feel valued;
encourages cooperation;
reduces loneliness;
promotes happiness;
creates supportive communities;
encourages others to behave positively.
Kindness does not always require money or major sacrifices. A kind word, listening to someone or offering assistance can make a significant difference.
4.3 Respect and Responsibility
Respect is showing consideration for the rights, feelings, opinions and dignity of other people.
Respect involves recognizing that other people have value even when they have different opinions or backgrounds.
Examples of respect include listening when someone speaks, respecting personal property, using polite language and accepting reasonable differences.
Responsibility means accepting the duty to perform one's obligations and being willing to take responsibility for one's actions.
A responsible person understands that their behavior has consequences for themselves and others.
Respect and responsibility are important because they create trust, discipline and cooperation in society.
4.4 Bullying and Harassment
Bullying is repeated behavior intended to intimidate, hurt, humiliate or control another person.
Bullying may be:
physical;
verbal;
emotional;
social;
online.
Examples include hitting, threatening, insulting, spreading rumors, deliberately excluding someone or repeatedly sending harmful messages online.
Harassment refers to unwanted behavior that disturbs, threatens, humiliates or causes distress to another person.
Bullying and harassment can have serious effects on a person's confidence, relationships, education, work and general well-being.
They should not be treated as normal behavior. Individuals and institutions should create environments where people can report harmful behavior and receive appropriate support.
4.5 Peer Pressure
Peer pressure occurs when individuals are influenced by their friends or people of a similar age to behave in a particular way.
Peer pressure can be positive or negative.
Positive peer pressure may encourage someone to study harder, participate in sports, avoid harmful behavior or develop useful skills.
Negative peer pressure may encourage behaviors such as substance abuse, fighting, cheating, truancy, stealing or other harmful activities.
A person can resist negative peer pressure by:
being confident;
knowing their values;
choosing supportive friends;
saying no firmly;
avoiding risky situations;
seeking advice from trusted people.
4.6 Discrimination and Exclusion
Discrimination is unfair treatment of a person or group because of characteristics such as their background, gender, age, disability, social status or other differences.
Social exclusion occurs when individuals or groups are prevented from fully participating in social, educational, economic or community activities.
Discrimination can make people feel rejected, powerless and less valued.
Examples include refusing someone an opportunity because of their background or deliberately excluding someone from a group because they are considered different.
A fair society should promote equal opportunities and respect for all people.
4.7 Aggression and Harmful Behavior
Aggression refers to behavior intended to threaten, intimidate, dominate or harm another person.
Aggression can be physical, verbal or psychological.
Examples include:
fighting;
threatening others;
insulting people;
destroying property;
intimidation;
deliberately hurting others.
Harmful behavior can damage relationships and create fear and insecurity.
People can reduce aggression by learning emotional control, communicating their concerns peacefully, seeking help and using appropriate conflict-resolution strategies.
4.8 How Social Behavior Can Be Changed
Social behavior is not necessarily fixed. People can learn new ways of thinking and behaving.
Behavior can be changed through:
Education: Teaching people about respect, empathy, communication and responsibility can encourage positive behavior.
Positive role models: People often learn by observing parents, teachers, leaders, friends and other role models.
Self-awareness: Understanding one's own behavior is an important step towards changing it.
Positive peer influence: Supportive friends can encourage healthier choices.
Counselling: Professional or trusted guidance can help people understand the causes of harmful behavior.
Rewards and encouragement: Positive behavior can be strengthened through recognition and encouragement.
Consequences: Appropriate consequences can discourage harmful actions.
Changing social behavior often takes time. It requires willingness, practice, support and a suitable environment.
Chapter 5ː Social behavior in the modern world
5.1 Introduction
Technology has significantly changed the way people interact. In the past, most social interaction took place face-to-face or through letters and traditional forms of communication. Today, people can communicate instantly with others across the world through mobile phones, social media, messaging applications and other digital technologies.
The modern world has created many opportunities for people to connect, but it has also introduced new challenges. People must therefore understand how technology influences social behaviour and learn to use it responsibly.
5.2 Social Media and Human Behaviour
Social media refers to online platforms that allow people to create, share and exchange information and interact with other users.
Social media has changed how people communicate, make friends, share opinions and obtain information.
It can have positive effects by:
connecting people who are far apart;
helping people maintain relationships;
providing educational information;
creating business opportunities;
allowing people to share ideas;
supporting communities and social causes.
However, excessive or irresponsible use can also have negative effects. People may become overly dependent on online approval, compare themselves with others, spend too much time online or become involved in online conflicts.
Social media can therefore influence people's attitudes, relationships and everyday behaviour.
5.3 Online Communication
Online communication is the exchange of information through digital technologies such as messaging applications, email, social networking platforms and video calls.
Online communication is convenient because people can communicate across long distances almost instantly.
However, online communication lacks some of the social cues found in face-to-face communication. A written message may not clearly communicate the sender's tone or emotion.
For example, a person may make a joke through text, but the receiver may interpret it as an insult because they cannot hear the speaker's tone.
Effective online communication therefore requires people to choose their words carefully and consider how their messages may be interpreted.
5.4 Digital Etiquette
Digital etiquette, sometimes called netiquette, refers to the rules and appropriate behaviour people should follow when communicating and interacting online.
Good digital etiquette includes:
using respectful language;
avoiding unnecessary insults;
respecting other people's privacy;
thinking before posting;
avoiding spreading false information;
giving credit to other people's work;
respecting different opinions;
avoiding excessive messaging;
responding appropriately;
remembering that online actions can affect real people.
People should remember that being behind a screen does not remove the responsibility to treat others with dignity.
5.5 Cyberbullying
Cyberbullying is bullying carried out through digital technologies such as social media, messaging platforms, websites or online gaming platforms.
It can include:
sending threatening messages;
spreading embarrassing information;
sharing someone's private information without permission;
creating harmful rumours;
posting humiliating content;
deliberately excluding someone from online groups.
Cyberbullying can be particularly harmful because online content can spread quickly and may reach a large audience.
People experiencing cyberbullying should avoid responding aggressively, keep evidence of harmful messages where appropriate, block or report offenders and seek help from trusted adults, institutions or relevant authorities.
5.6 Social Media Influence
Social media can strongly influence the way people think and behave.
People may be influenced by:
celebrities and public figures;
influencers;
friends;
online communities;
advertisements;
trends;
viral content.
Social media can encourage positive behaviour, such as learning, creativity, entrepreneurship and community participation. However, it can also promote harmful behaviours, unrealistic expectations and misinformation.
People should therefore develop critical thinking. Before accepting or sharing information, they should consider whether the information is reliable and whether sharing it could harm someone.
5.7 Privacy and Responsible Online Behaviour
Privacy is the ability of individuals to control information about themselves and decide how that information is shared.
Responsible online behaviour involves protecting one's own privacy and respecting the privacy of others.
People should be careful about sharing:
passwords;
private photographs;
personal contact information;
financial information;
private conversations;
sensitive personal details.
A person should also avoid sharing another person's photograph, message or personal information without appropriate permission.
Responsible online behaviour means understanding that information shared online may be copied, stored or redistributed beyond the original audience.
5.8 Balancing Online and Face-to-Face Relationships
Technology provides convenient ways to communicate, but face-to-face interaction remains important.
Face-to-face communication allows people to observe facial expressions, gestures, tone of voice and other social cues. It can also provide opportunities for deeper emotional connection.
Spending too much time online may reduce opportunities for direct interaction with family, friends and community members.
A healthy balance involves using technology as a tool for communication without allowing it to completely replace real-world relationships.
People can maintain balance by:
setting reasonable limits on screen time;
spending time with family and friends;
participating in community activities;
having face-to-face conversations;
avoiding unnecessary phone use during important conversations;
making time for hobbies and physical activities.
5.9 Conclusion
The modern world has transformed human interaction. Digital technology and social media have made communication faster and more convenient, but they have also created new responsibilities and challenges.
People must learn to communicate respectfully both offline and online. They should understand digital etiquette, protect privacy, avoid cyberbullying and think critically about information encountered on social media.
Conclusion
The book summarizes the importance of understanding social behavior and encourages readers to develop self-awareness, empathy, respect, communication skills, and responsible behavior in their interactions with others.
References
* Books on social psychology
* Academic research on human behavior
* Communication studies
* Psychology textbooks
* Research on social media and digital behavior
* Relevant educational and professional resources
5yy1l3s9t818jllnj4kx6ezugdvfnmj
4672194
4672191
2026-09-24T18:12:13Z
Matovu Trevor
3620409
4672194
wikitext
text/x-wiki
Social Behaviors
The book examines how people behave and interact with others in families, schools, workplaces, communities, and online environments. It explores both positive and negative social behaviors and how they influence relationships and society.
Target audience: Adults
The language will be very clear, practical, and accessible to adult readers while introducing important psychological and social concepts where necessary.
Book summary
Social Behaviors provides a practical introduction to the ways people behave and interact with one another in everyday life. The book examines communication, co-operation, respect, empathy, conflict, peer influence, social norms, and behavior in digital spaces. It connects basic social and physiology concepts with practical examples that adults can apply in their personal, professional, and community relationships.
Introduction: Beyond the Post Button
The introduction explains why social behavior matters and how human interaction goes beyond online communication. It introduces the importance of understanding people's actions, emotions, communication styles, and responses in different social environments.
Chapter one: Understanding Social behavior
1.1 Social behavior
Social behavior refers to the way people behave, communicate and interact with one another in society. It includes the way people form relationships, cooperate, communicate, help others, respond to different situations and follow rules. Social behavior can be positive, such as kindness, cooperation and respect, or negative, such as aggression, discrimination and bullying. Social behavior is important because human beings live in groups and depend on one another. The way individuals behave affects their families, friends, schools, workplaces and communities. Social behavior is influenced by both nature and nurture.
1.2 Nature vs nurture
Nature refers to the biological characteristics and tendencies that a person inherits from their parents. These may influence personality, temperament and the way a person naturally responds to situations. Nurture refers to the influence of the environment and experiences in which a person grows. Family upbringing, education, culture, friends, religion and the community can all shape behavior. Nature and nurture work together. For example, a person may naturally be quiet, but living in a supportive environment may help them become more confident and sociable. Culture is the shared way of life of a particular group of people. It includes language, beliefs, values, customs, traditions, food, dress and ways of interacting. Culture influences social behavior by teaching people what is considered right, wrong, polite or unacceptable. For example, in many communities, children are expected to respect and greet elders.
1.3 Social expectations
Social expectations are the behaviors that people expect from others in particular situations. Students are expected to respect teachers, workers are expected to perform their duties, and members of a community are expected to follow accepted ways of living. However, expectations may differ between cultures. Understanding these differences helps people respect others and avoid misunderstandings.
1.4 Social norms
Social norms are the accepted rules and standards that guide how people are expected to behave in society. Some norms are written, while others are unwritten. Examples include greeting people, respecting elders, queuing when waiting for a service, keeping public places clean and following laws. Social norms help to maintain order and make it easier for people to live peacefully together. When people repeatedly break important norms, they may face criticism, rejection or punishment. Social differences refer to the ways in which individuals and groups differ from one another. People may differ in age, gender, education, occupation, income, language, culture, personality and family background. Social differences can benefit society because people bring different ideas, skills, experiences and ways of thinking. However, when differences are not respected, they can lead to prejudice, discrimination, conflict and social exclusion.
1.5 Factors That Influence Social Behavior
Several factors influence how people behave towards others. These include:
Family: Children learn manners, values and ways of interacting from family members.
Culture: Culture influences beliefs, customs and acceptable ways of behaving.
Friends: Peer groups can influence attitudes, language and behavior.
Education: Schools teach discipline, cooperation, responsibility and respect.
Religion: Religious beliefs can influence moral values and relationships.
Media and technology: Social media, television and the internet can influence people's attitudes and behaviour.
Personality: People have different personalities, which affect how they interact with others.
Environment: The community and surroundings where a person lives can shape behaviour.
Life experiences: Experiences such as success, failure, conflict and friendship can change the way people behave.
Chapter 2ː Communication and Human Interaction
Communication is an important part of human interaction. People communicate every day with family members, friends, teachers, colleagues and other members of society. Good communication helps people understand one another, build relationships, solve problems and avoid unnecessary conflicts. Communication is not only about speaking. People also communicate through facial expressions, gestures, body movements, eye contact and tone of voice.
2.1 Verbal communication and Non-verbal communication
Verbal communication is the use of spoken or written words to share information, thoughts, feelings and ideas with other people. Examples include; talking to a friend, giving instructions, having a conversation, making a speech, sending a text message, writing a letter or email. Effective verbal communication requires clear language, appropriate words and a message that the other person can understand. The way something is said is also important. A polite and calm tone can make communication more positive, while an angry or insulting tone can create conflict. Non-verbal communication is the passing of information without using spoken or written words. For example, smiling can show happiness or friendliness, while avoiding eye contact may sometimes show nervousness or discomfort. Non-verbal communication can support spoken words, but it can also sometimes send a different message from what a person is saying.
2.2 Empathy
Empathy is the ability to understand and share another person's feelings or to try to see a situation from their point of view.
An empathetic person tries to understand what another person may be experiencing instead of immediately judging them.
For example, if a friend loses a loved one, showing empathy means listening to them, acknowledging their pain and offering appropriate support.
Empathy helps people:
build stronger relationships;
understand others better;
reduce conflicts;
show compassion;
provide emotional support.
2.3 Active Listening
Active listening means giving full attention to another person in order to understand what they are saying.
An active listener:
pays attention;
maintains appropriate eye contact;
avoids unnecessary interruptions;
asks questions when something is unclear;
shows interest;
remembers important information;
responds appropriately.
For example, when someone is explaining a problem, an active listener does not use the opportunity to prepare their own response. They first try to understand the person's message.
Active listening improves communication because it reduces confusion and makes people feel heard and respected.
2.4 Misunderstandings and Their Causes
A misunderstanding occurs when a person interprets a message differently from what the sender intended.
Misunderstandings can happen in everyday conversations and may sometimes lead to arguments or broken relationships.
Causes of misunderstandings
Poor communication – A person may fail to explain their message clearly.
Language differences – People may use different languages, accents or meanings of words.
Poor listening – Someone may hear the words without paying attention to the actual message.
Assumptions – A person may make conclusions without asking for clarification.
Emotions – Anger, fear or sadness can affect how people understand messages.
Cultural differences – The same gesture or expression may have different meanings in different cultures.
Tone of voice – A message can sound rude, angry or sarcastic even when that was not intended.
Non-verbal signals – Facial expressions and body language may contradict spoken words.
Noise and distractions – Physical or technological distractions can cause people to miss important information.
Misunderstandings can be reduced by speaking clearly, listening carefully, asking questions and avoiding unnecessary assumptions.
2.5 Respectful Communication
Respectful communication is communicating with others in a polite, considerate and fair manner, even when people have different opinions.
Respectful communication involves:
using polite language;
listening when others are speaking;
avoiding insults and offensive language;
respecting different opinions;
speaking calmly;
avoiding unnecessary shouting;
giving others a chance to express themselves;
disagreeing without attacking the person.
For example, instead of saying, "You are completely wrong," a person can say, "I understand your point, but I have a different opinion."
Respectful communication creates trust and makes it easier for people to solve disagreements peacefully.
2.6 Body Language
Body language is the way people communicate through movements, posture, gestures and physical expressions.
Examples of body language include:
Eye contact: May show attention, confidence or interest.
Smiling: May communicate friendliness or happiness.
Crossed arms: May sometimes suggest defensiveness or discomfort.
Nodding: Often shows agreement or that someone is following a conversation.
Standing upright: May communicate confidence.
Looking away: May sometimes indicate discomfort, distraction or lack of interest.
Hand gestures: Can help explain or emphasize a message.
However, body language should not always be interpreted in isolation. The meaning of a gesture can depend on the person's culture, situation and personality.
2.7 Importance of Effective Communication
Effective communication helps people to:
understand one another, build healthy relationships, express feelings and ideas, solve problems, prevent misunderstandings, manage conflicts, work together, develop trust and cooperation. Good communication therefore requires more than simply speaking. It involves speaking clearly, listening actively, showing empathy, using appropriate body language and respecting other people.
Chapter 3ː Relationships, Cooperation and conflict
3.1 Relationships
Human beings are social beings who depend on one another for emotional, social and practical support. Throughout life, people form different kinds of relationships with family members, friends, classmates, workmates, neighbours and other members of society. These relationships can bring happiness, support, encouragement and a sense of belonging.
However, relationships are not always easy. People have different personalities, opinions, needs, beliefs and expectations. These differences can sometimes lead to disagreements and conflicts. The ability to build healthy relationships, cooperate with others and resolve disagreements peacefully is therefore an important part of positive social behavior.
3.2 Building Healthy Relationships
A relationship is a connection or association between two or more people. Relationships can be based on family ties, friendship, work, education, marriage, neighborhood or shared interests.
A healthy relationship is one in which people treat each other with respect, honesty, care and understanding. Healthy relationships allow people to feel valued, safe and accepted.
Building a healthy relationship takes time and effort. It requires people to communicate openly, keep promises, respect boundaries and support one another.
Ways of building healthy relationships
Trust: People should be able to depend on one another and believe that the other person will act honestly.
Respect: Each person should recognize the worth and dignity of the other.
Good communication: People should express their thoughts and feelings clearly and listen to one another.
Honesty: Being truthful helps prevent suspicion and creates stronger relationships.
Empathy: Understanding another person's feelings makes it easier to respond with care.
Support: People should encourage and help one another during both good and difficult times.
Forgiveness: People sometimes make mistakes. Being willing to forgive can help relationships recover from disagreements.
Healthy relationships do not mean that people never disagree. Instead, they mean that disagreements are handled in a respectful and constructive manner.
3.3 Trust and Cooperation
Trust is the belief that another person can be relied upon to be honest, responsible and dependable.
Trust develops gradually through people's actions. When someone keeps promises, tells the truth and respects confidential information, others are more likely to trust them.
Trust is important in families, friendships, workplaces and communities. Without trust, people may become suspicious and unwilling to cooperate.
Cooperation is the act of working together with others to achieve a common goal.
For example, students may cooperate when completing a group assignment. Community members may cooperate when cleaning their neighborhood.
Importance of cooperation
Cooperation:
helps people achieve goals;
encourages teamwork;
reduces unnecessary conflict;
allows people to share skills and ideas;
strengthens relationships;
promotes unity;
makes difficult tasks easier.
Trust and cooperation are closely connected. People are generally more willing to cooperate when they trust one another.
3.4 Friendship and Family Relationships
Friendship is a voluntary relationship between people who share affection, trust, companionship or common interests.
Good friendships can provide emotional support, advice, encouragement and companionship. Friends can influence each other's attitudes and behavior, so choosing positive friends is important.
A healthy friendship is usually characterized by:
trust;
honesty;
respect;
loyalty;
mutual support;
good communication;
understanding;
acceptance of differences.
Family relationships are also important because the family is often the first social environment in which people learn how to interact with others.
Families provide care, protection, emotional support, guidance and a sense of belonging. However, disagreements can occur within families because members have different needs and opinions. Open communication, patience and forgiveness can help maintain strong family relationships.
3.5 Workplace Relationships
Workplace relationships are the relationships that develop between people in an organisation or place of work.
People may work with supervisors, colleagues, employees, customers and other members of the organisation. Positive workplace relationships can improve teamwork and productivity.
Good workplace relationships require:
respect for colleagues;
clear communication;
cooperation;
honesty;
professionalism;
responsibility;
appreciation of other people's contributions.
Poor workplace relationships can result in stress, arguments, poor teamwork and reduced productivity.
People should therefore learn to separate personal disagreements from their professional responsibilities and deal with workplace problems appropriately.
3.6 Causes of Social Conflict
Conflict is a disagreement or struggle between individuals or groups because of differences in opinions, interests, values, needs or goals.
Conflict is a normal part of human interaction. It does not always mean that people hate one another. Sometimes people simply have different ways of seeing a situation.
Causes of social conflict include:
Differences in opinions – People may have different ideas about how something should be done.
Competition for resources – Conflict may occur when people compete for limited resources such as money, land, jobs or opportunities.
Poor communication – Unclear messages and misunderstandings can create disagreements.
Cultural differences – Different traditions and beliefs can sometimes create tension.
Discrimination – Treating people unfairly because of their differences can lead to resentment and conflict.
Jealousy – Feelings of jealousy may damage friendships and relationships.
Power and control – People may disagree over who should make decisions or control resources.
Unresolved disagreements – Small problems can become serious when they are ignored.
Prejudice and stereotypes – Negative beliefs about particular groups can create division.
Economic difficulties – Poverty and inequality can contribute to tension within communities.
3.7 Conflict Resolution
Conflict resolution refers to the process of dealing with disagreements and finding peaceful solutions that address the concerns of the people involved.
Conflict should not always be solved through force or aggression. People can use communication, negotiation, mediation and compromise.
Steps in conflict resolution
Identify the problem: The people involved should understand what caused the disagreement.
Listen to each other: Each person should be given an opportunity to explain their position.
Remain calm: Anger and insults can make the situation worse.
Find common ground: People should identify areas where they agree.
Consider possible solutions: Different solutions should be discussed.
Compromise: Sometimes each side must give up something in order to reach an acceptable agreement.
Agree on a solution: The people involved should decide how the problem will be addressed.
Follow up: The situation should be monitored to ensure that the conflict does not return.
Conflict resolution helps people maintain relationships and avoid unnecessary violence.
3.8 Forgiveness and Reconciliation
Forgiveness is the decision to let go of resentment or anger towards someone who has caused harm or offence.
Forgiveness does not necessarily mean pretending that the wrongdoing never happened. Instead, it involves choosing not to remain controlled by anger or hatred.
Reconciliation is the process of restoring a damaged relationship and rebuilding trust between people or groups.
Forgiveness can contribute to reconciliation, but reconciliation may require additional steps such as an apology, acceptance of responsibility, compensation, changed behavior and rebuilding trust.
Forgiveness and reconciliation can help individuals and communities move beyond past disagreements and establish healthier relationships.
Chapter 4ː Positive and negative social behaviors
4.1 Positive social behaviors
Social behavior can have either positive or negative effects on individuals and society. Positive social behaviors contribute to healthy relationships, cooperation, peace and community development. Negative social behaviors can cause emotional pain, conflict, discrimination and harm.
Understanding both forms of behavior helps people recognize the consequences of their actions and make better choices.
4.2 Kindness and Helping Others
Kindness is the willingness to treat others with care, consideration and compassion.
Kindness can be shown through simple actions such as helping someone carry something, comforting a person who is sad, sharing with others or offering encouragement.
Helping others is an important form of positive social behavior because people often depend on one another.
Benefits of kindness
Kindness:
strengthens relationships;
makes people feel valued;
encourages cooperation;
reduces loneliness;
promotes happiness;
creates supportive communities;
encourages others to behave positively.
Kindness does not always require money or major sacrifices. A kind word, listening to someone or offering assistance can make a significant difference.
4.3 Respect and Responsibility
Respect is showing consideration for the rights, feelings, opinions and dignity of other people.
Respect involves recognizing that other people have value even when they have different opinions or backgrounds.
Examples of respect include listening when someone speaks, respecting personal property, using polite language and accepting reasonable differences.
Responsibility means accepting the duty to perform one's obligations and being willing to take responsibility for one's actions.
A responsible person understands that their behavior has consequences for themselves and others.
Respect and responsibility are important because they create trust, discipline and cooperation in society.
4.4 Bullying and Harassment
Bullying is repeated behavior intended to intimidate, hurt, humiliate or control another person.
Bullying may be:
physical;
verbal;
emotional;
social;
online.
Examples include hitting, threatening, insulting, spreading rumors, deliberately excluding someone or repeatedly sending harmful messages online.
Harassment refers to unwanted behavior that disturbs, threatens, humiliates or causes distress to another person.
Bullying and harassment can have serious effects on a person's confidence, relationships, education, work and general well-being.
They should not be treated as normal behavior. Individuals and institutions should create environments where people can report harmful behavior and receive appropriate support.
4.5 Peer Pressure
Peer pressure occurs when individuals are influenced by their friends or people of a similar age to behave in a particular way.
Peer pressure can be positive or negative.
Positive peer pressure may encourage someone to study harder, participate in sports, avoid harmful behavior or develop useful skills.
Negative peer pressure may encourage behaviors such as substance abuse, fighting, cheating, truancy, stealing or other harmful activities.
A person can resist negative peer pressure by:
being confident;
knowing their values;
choosing supportive friends;
saying no firmly;
avoiding risky situations;
seeking advice from trusted people.
4.6 Discrimination and Exclusion
Discrimination is unfair treatment of a person or group because of characteristics such as their background, gender, age, disability, social status or other differences.
Social exclusion occurs when individuals or groups are prevented from fully participating in social, educational, economic or community activities.
Discrimination can make people feel rejected, powerless and less valued.
Examples include refusing someone an opportunity because of their background or deliberately excluding someone from a group because they are considered different.
A fair society should promote equal opportunities and respect for all people.
4.7 Aggression and Harmful Behavior
Aggression refers to behavior intended to threaten, intimidate, dominate or harm another person.
Aggression can be physical, verbal or psychological.
Examples include:
fighting;
threatening others;
insulting people;
destroying property;
intimidation;
deliberately hurting others.
Harmful behavior can damage relationships and create fear and insecurity.
People can reduce aggression by learning emotional control, communicating their concerns peacefully, seeking help and using appropriate conflict-resolution strategies.
4.8 How Social Behavior Can Be Changed
Social behavior is not necessarily fixed. People can learn new ways of thinking and behaving.
Behavior can be changed through:
Education: Teaching people about respect, empathy, communication and responsibility can encourage positive behavior.
Positive role models: People often learn by observing parents, teachers, leaders, friends and other role models.
Self-awareness: Understanding one's own behavior is an important step towards changing it.
Positive peer influence: Supportive friends can encourage healthier choices.
Counselling: Professional or trusted guidance can help people understand the causes of harmful behavior.
Rewards and encouragement: Positive behavior can be strengthened through recognition and encouragement.
Consequences: Appropriate consequences can discourage harmful actions.
Changing social behavior often takes time. It requires willingness, practice, support and a suitable environment.
Chapter 5ː Social behavior in the modern world
5.1 Introduction
Technology has significantly changed the way people interact. In the past, most social interaction took place face-to-face or through letters and traditional forms of communication. Today, people can communicate instantly with others across the world through mobile phones, social media, messaging applications and other digital technologies.
The modern world has created many opportunities for people to connect, but it has also introduced new challenges. People must therefore understand how technology influences social behaviour and learn to use it responsibly.
5.2 Social Media and Human Behaviour
Social media refers to online platforms that allow people to create, share and exchange information and interact with other users.
Social media has changed how people communicate, make friends, share opinions and obtain information.
It can have positive effects by:
connecting people who are far apart;
helping people maintain relationships;
providing educational information;
creating business opportunities;
allowing people to share ideas;
supporting communities and social causes.
However, excessive or irresponsible use can also have negative effects. People may become overly dependent on online approval, compare themselves with others, spend too much time online or become involved in online conflicts.
Social media can therefore influence people's attitudes, relationships and everyday behaviour.
5.3 Online Communication
Online communication is the exchange of information through digital technologies such as messaging applications, email, social networking platforms and video calls.
Online communication is convenient because people can communicate across long distances almost instantly.
However, online communication lacks some of the social cues found in face-to-face communication. A written message may not clearly communicate the sender's tone or emotion.
For example, a person may make a joke through text, but the receiver may interpret it as an insult because they cannot hear the speaker's tone.
Effective online communication therefore requires people to choose their words carefully and consider how their messages may be interpreted.
5.4 Digital Etiquette
Digital etiquette, sometimes called netiquette, refers to the rules and appropriate behaviour people should follow when communicating and interacting online.
Good digital etiquette includes:
using respectful language;
avoiding unnecessary insults;
respecting other people's privacy;
thinking before posting;
avoiding spreading false information;
giving credit to other people's work;
respecting different opinions;
avoiding excessive messaging;
responding appropriately;
remembering that online actions can affect real people.
People should remember that being behind a screen does not remove the responsibility to treat others with dignity.
5.5 Cyberbullying
Cyberbullying is bullying carried out through digital technologies such as social media, messaging platforms, websites or online gaming platforms.
It can include:
sending threatening messages;
spreading embarrassing information;
sharing someone's private information without permission;
creating harmful rumours;
posting humiliating content;
deliberately excluding someone from online groups.
Cyberbullying can be particularly harmful because online content can spread quickly and may reach a large audience.
People experiencing cyberbullying should avoid responding aggressively, keep evidence of harmful messages where appropriate, block or report offenders and seek help from trusted adults, institutions or relevant authorities.
5.6 Social Media Influence
Social media can strongly influence the way people think and behave.
People may be influenced by:
celebrities and public figures;
influencers;
friends;
online communities;
advertisements;
trends;
viral content.
Social media can encourage positive behaviour, such as learning, creativity, entrepreneurship and community participation. However, it can also promote harmful behaviours, unrealistic expectations and misinformation.
People should therefore develop critical thinking. Before accepting or sharing information, they should consider whether the information is reliable and whether sharing it could harm someone.
5.7 Privacy and Responsible Online Behaviour
Privacy is the ability of individuals to control information about themselves and decide how that information is shared.
Responsible online behaviour involves protecting one's own privacy and respecting the privacy of others.
People should be careful about sharing:
passwords;
private photographs;
personal contact information;
financial information;
private conversations;
sensitive personal details.
A person should also avoid sharing another person's photograph, message or personal information without appropriate permission.
Responsible online behaviour means understanding that information shared online may be copied, stored or redistributed beyond the original audience.
5.8 Balancing Online and Face-to-Face Relationships
Technology provides convenient ways to communicate, but face-to-face interaction remains important.
Face-to-face communication allows people to observe facial expressions, gestures, tone of voice and other social cues. It can also provide opportunities for deeper emotional connection.
Spending too much time online may reduce opportunities for direct interaction with family, friends and community members.
A healthy balance involves using technology as a tool for communication without allowing it to completely replace real-world relationships.
People can maintain balance by:
setting reasonable limits on screen time;
spending time with family and friends;
participating in community activities;
having face-to-face conversations;
avoiding unnecessary phone use during important conversations;
making time for hobbies and physical activities.
5.9 Conclusion
The modern world has transformed human interaction. Digital technology and social media have made communication faster and more convenient, but they have also created new responsibilities and challenges.
People must learn to communicate respectfully both offline and online. They should understand digital etiquette, protect privacy, avoid cyberbullying and think critically about information encountered on social media.
Technology should support human relationships rather than completely replace them. Maintaining a healthy balance between online communication and face-to-face interaction can help people develop stronger and more meaningful relationships.
Conclusion
Understanding social behaviour helps people understand themselves and the people around them. Social behaviour influences how individuals communicate, form relationships, cooperate, handle disagreements and respond to differences.
Healthy social behaviour is built on respect, empathy, trust, responsibility, kindness, cooperation and effective communication. At the same time, people need to recognise harmful behaviours such as bullying, discrimination, aggression and exclusion and understand how these behaviours can affect individuals and society.
As society continues to change through technology and social media, the ability to interact responsibly becomes even more important. Developing good social behaviour is therefore not only useful for personal relationships but also essential for creating peaceful, respectful and cooperative communities.
The book summarizes the importance of understanding social behavior and encourages readers to develop self-awareness, empathy, respect, communication skills, and responsible behavior in their interactions with others.
References
* Books on social psychology
* Academic research on human behavior
* Communication studies
* Psychology textbooks
* Research on social media and digital behavior
* Relevant educational and professional resources
dkkr1sj3j8gawvgqq2e4md5vbe008jt
4672202
4672194
2026-09-24T18:25:03Z
Matovu Trevor
3620409
4672202
wikitext
text/x-wiki
== Social Behaviors ==
The book examines how people behave and interact with others in families, schools, workplaces, communities, and online environments. It explores both positive and negative social behaviors and how they influence relationships and society.
Target audience: Adults
The language will be very clear, practical, and accessible to adult readers while introducing important psychological and social concepts where necessary.
=== Book summary ===
Social Behaviors provides a practical introduction to the ways people behave and interact with one another in everyday life. The book examines communication, co-operation, respect, empathy, conflict, peer influence, social norms, and behavior in digital spaces. It connects basic social and physiology concepts with practical examples that adults can apply in their personal, professional, and community relationships.
=== Introduction: Beyond the Post Button ===
The introduction explains why social behavior matters and how human interaction goes beyond online communication. It introduces the importance of understanding people's actions, emotions, communication styles, and responses in different social environments.
=== Chapter one: Understanding Social behavior ===
1.1 Social behavior
Social behavior refers to the way people behave, communicate and interact with one another in society. It includes the way people form relationships, cooperate, communicate, help others, respond to different situations and follow rules. Social behavior can be positive, such as kindness, cooperation and respect, or negative, such as aggression, discrimination and bullying. Social behavior is important because human beings live in groups and depend on one another. The way individuals behave affects their families, friends, schools, workplaces and communities. Social behavior is influenced by both nature and nurture.
1.2 Nature vs nurture
Nature refers to the biological characteristics and tendencies that a person inherits from their parents. These may influence personality, temperament and the way a person naturally responds to situations. Nurture refers to the influence of the environment and experiences in which a person grows. Family upbringing, education, culture, friends, religion and the community can all shape behavior. Nature and nurture work together. For example, a person may naturally be quiet, but living in a supportive environment may help them become more confident and sociable. Culture is the shared way of life of a particular group of people. It includes language, beliefs, values, customs, traditions, food, dress and ways of interacting. Culture influences social behavior by teaching people what is considered right, wrong, polite or unacceptable. For example, in many communities, children are expected to respect and greet elders.
1.3 Social expectations
Social expectations are the behaviors that people expect from others in particular situations. Students are expected to respect teachers, workers are expected to perform their duties, and members of a community are expected to follow accepted ways of living. However, expectations may differ between cultures. Understanding these differences helps people respect others and avoid misunderstandings.
1.4 Social norms
Social norms are the accepted rules and standards that guide how people are expected to behave in society. Some norms are written, while others are unwritten. Examples include greeting people, respecting elders, queuing when waiting for a service, keeping public places clean and following laws. Social norms help to maintain order and make it easier for people to live peacefully together. When people repeatedly break important norms, they may face criticism, rejection or punishment. Social differences refer to the ways in which individuals and groups differ from one another. People may differ in age, gender, education, occupation, income, language, culture, personality and family background. Social differences can benefit society because people bring different ideas, skills, experiences and ways of thinking. However, when differences are not respected, they can lead to prejudice, discrimination, conflict and social exclusion.
1.5 Factors That Influence Social Behavior
Several factors influence how people behave towards others. These include:
Family: Children learn manners, values and ways of interacting from family members.
Culture: Culture influences beliefs, customs and acceptable ways of behaving.
Friends: Peer groups can influence attitudes, language and behavior.
Education: Schools teach discipline, cooperation, responsibility and respect.
Religion: Religious beliefs can influence moral values and relationships.
Media and technology: Social media, television and the internet can influence people's attitudes and behaviour.
Personality: People have different personalities, which affect how they interact with others.
Environment: The community and surroundings where a person lives can shape behaviour.
Life experiences: Experiences such as success, failure, conflict and friendship can change the way people behave.
=== Chapter 2ː Communication and Human Interaction ===
Communication is an important part of human interaction. People communicate every day with family members, friends, teachers, colleagues and other members of society. Good communication helps people understand one another, build relationships, solve problems and avoid unnecessary conflicts. Communication is not only about speaking. People also communicate through facial expressions, gestures, body movements, eye contact and tone of voice.
2.1 Verbal communication and Non-verbal communication
Verbal communication is the use of spoken or written words to share information, thoughts, feelings and ideas with other people. Examples include; talking to a friend, giving instructions, having a conversation, making a speech, sending a text message, writing a letter or email. Effective verbal communication requires clear language, appropriate words and a message that the other person can understand. The way something is said is also important. A polite and calm tone can make communication more positive, while an angry or insulting tone can create conflict. Non-verbal communication is the passing of information without using spoken or written words. For example, smiling can show happiness or friendliness, while avoiding eye contact may sometimes show nervousness or discomfort. Non-verbal communication can support spoken words, but it can also sometimes send a different message from what a person is saying.
2.2 Empathy
Empathy is the ability to understand and share another person's feelings or to try to see a situation from their point of view.
An empathetic person tries to understand what another person may be experiencing instead of immediately judging them.
For example, if a friend loses a loved one, showing empathy means listening to them, acknowledging their pain and offering appropriate support.
Empathy helps people:
build stronger relationships;
understand others better;
reduce conflicts;
show compassion;
provide emotional support.
2.3 Active Listening
Active listening means giving full attention to another person in order to understand what they are saying.
An active listener:
pays attention;
maintains appropriate eye contact;
avoids unnecessary interruptions;
asks questions when something is unclear;
shows interest;
remembers important information;
responds appropriately.
For example, when someone is explaining a problem, an active listener does not use the opportunity to prepare their own response. They first try to understand the person's message.
Active listening improves communication because it reduces confusion and makes people feel heard and respected.
2.4 Misunderstandings and Their Causes
A misunderstanding occurs when a person interprets a message differently from what the sender intended.
Misunderstandings can happen in everyday conversations and may sometimes lead to arguments or broken relationships.
Causes of misunderstandings
Poor communication – A person may fail to explain their message clearly.
Language differences – People may use different languages, accents or meanings of words.
Poor listening – Someone may hear the words without paying attention to the actual message.
Assumptions – A person may make conclusions without asking for clarification.
Emotions – Anger, fear or sadness can affect how people understand messages.
Cultural differences – The same gesture or expression may have different meanings in different cultures.
Tone of voice – A message can sound rude, angry or sarcastic even when that was not intended.
Non-verbal signals – Facial expressions and body language may contradict spoken words.
Noise and distractions – Physical or technological distractions can cause people to miss important information.
Misunderstandings can be reduced by speaking clearly, listening carefully, asking questions and avoiding unnecessary assumptions.
2.5 Respectful Communication
Respectful communication is communicating with others in a polite, considerate and fair manner, even when people have different opinions.
Respectful communication involves:
using polite language;
listening when others are speaking;
avoiding insults and offensive language;
respecting different opinions;
speaking calmly;
avoiding unnecessary shouting;
giving others a chance to express themselves;
disagreeing without attacking the person.
For example, instead of saying, "You are completely wrong," a person can say, "I understand your point, but I have a different opinion."
Respectful communication creates trust and makes it easier for people to solve disagreements peacefully.
2.6 Body Language
Body language is the way people communicate through movements, posture, gestures and physical expressions.
Examples of body language include:
Eye contact: May show attention, confidence or interest.
Smiling: May communicate friendliness or happiness.
Crossed arms: May sometimes suggest defensiveness or discomfort.
Nodding: Often shows agreement or that someone is following a conversation.
Standing upright: May communicate confidence.
Looking away: May sometimes indicate discomfort, distraction or lack of interest.
Hand gestures: Can help explain or emphasize a message.
However, body language should not always be interpreted in isolation. The meaning of a gesture can depend on the person's culture, situation and personality.
2.7 Importance of Effective Communication
Effective communication helps people to:
understand one another, build healthy relationships, express feelings and ideas, solve problems, prevent misunderstandings, manage conflicts, work together, develop trust and cooperation. Good communication therefore requires more than simply speaking. It involves speaking clearly, listening actively, showing empathy, using appropriate body language and respecting other people.
=== Chapter 3ː Relationships, Cooperation and conflict ===
3.1 Relationships
Human beings are social beings who depend on one another for emotional, social and practical support. Throughout life, people form different kinds of relationships with family members, friends, classmates, workmates, neighbours and other members of society. These relationships can bring happiness, support, encouragement and a sense of belonging.
However, relationships are not always easy. People have different personalities, opinions, needs, beliefs and expectations. These differences can sometimes lead to disagreements and conflicts. The ability to build healthy relationships, cooperate with others and resolve disagreements peacefully is therefore an important part of positive social behavior.
3.2 Building Healthy Relationships
A relationship is a connection or association between two or more people. Relationships can be based on family ties, friendship, work, education, marriage, neighborhood or shared interests.
A healthy relationship is one in which people treat each other with respect, honesty, care and understanding. Healthy relationships allow people to feel valued, safe and accepted.
Building a healthy relationship takes time and effort. It requires people to communicate openly, keep promises, respect boundaries and support one another.
Ways of building healthy relationships
Trust: People should be able to depend on one another and believe that the other person will act honestly.
Respect: Each person should recognize the worth and dignity of the other.
Good communication: People should express their thoughts and feelings clearly and listen to one another.
Honesty: Being truthful helps prevent suspicion and creates stronger relationships.
Empathy: Understanding another person's feelings makes it easier to respond with care.
Support: People should encourage and help one another during both good and difficult times.
Forgiveness: People sometimes make mistakes. Being willing to forgive can help relationships recover from disagreements.
Healthy relationships do not mean that people never disagree. Instead, they mean that disagreements are handled in a respectful and constructive manner.
3.3 Trust and Cooperation
Trust is the belief that another person can be relied upon to be honest, responsible and dependable.
Trust develops gradually through people's actions. When someone keeps promises, tells the truth and respects confidential information, others are more likely to trust them.
Trust is important in families, friendships, workplaces and communities. Without trust, people may become suspicious and unwilling to cooperate.
Cooperation is the act of working together with others to achieve a common goal.
For example, students may cooperate when completing a group assignment. Community members may cooperate when cleaning their neighborhood.
Importance of cooperation
Cooperation:
helps people achieve goals;
encourages teamwork;
reduces unnecessary conflict;
allows people to share skills and ideas;
strengthens relationships;
promotes unity;
makes difficult tasks easier.
Trust and cooperation are closely connected. People are generally more willing to cooperate when they trust one another.
3.4 Friendship and Family Relationships
Friendship is a voluntary relationship between people who share affection, trust, companionship or common interests.
Good friendships can provide emotional support, advice, encouragement and companionship. Friends can influence each other's attitudes and behavior, so choosing positive friends is important.
A healthy friendship is usually characterized by:
trust;
honesty;
respect;
loyalty;
mutual support;
good communication;
understanding;
acceptance of differences.
Family relationships are also important because the family is often the first social environment in which people learn how to interact with others.
Families provide care, protection, emotional support, guidance and a sense of belonging. However, disagreements can occur within families because members have different needs and opinions. Open communication, patience and forgiveness can help maintain strong family relationships.
3.5 Workplace Relationships
Workplace relationships are the relationships that develop between people in an organisation or place of work.
People may work with supervisors, colleagues, employees, customers and other members of the organisation. Positive workplace relationships can improve teamwork and productivity.
Good workplace relationships require:
respect for colleagues;
clear communication;
cooperation;
honesty;
professionalism;
responsibility;
appreciation of other people's contributions.
Poor workplace relationships can result in stress, arguments, poor teamwork and reduced productivity.
People should therefore learn to separate personal disagreements from their professional responsibilities and deal with workplace problems appropriately.
3.6 Causes of Social Conflict
Conflict is a disagreement or struggle between individuals or groups because of differences in opinions, interests, values, needs or goals.
Conflict is a normal part of human interaction. It does not always mean that people hate one another. Sometimes people simply have different ways of seeing a situation.
Causes of social conflict include:
Differences in opinions – People may have different ideas about how something should be done.
Competition for resources – Conflict may occur when people compete for limited resources such as money, land, jobs or opportunities.
Poor communication – Unclear messages and misunderstandings can create disagreements.
Cultural differences – Different traditions and beliefs can sometimes create tension.
Discrimination – Treating people unfairly because of their differences can lead to resentment and conflict.
Jealousy – Feelings of jealousy may damage friendships and relationships.
Power and control – People may disagree over who should make decisions or control resources.
Unresolved disagreements – Small problems can become serious when they are ignored.
Prejudice and stereotypes – Negative beliefs about particular groups can create division.
Economic difficulties – Poverty and inequality can contribute to tension within communities.
3.7 Conflict Resolution
Conflict resolution refers to the process of dealing with disagreements and finding peaceful solutions that address the concerns of the people involved.
Conflict should not always be solved through force or aggression. People can use communication, negotiation, mediation and compromise.
Steps in conflict resolution
Identify the problem: The people involved should understand what caused the disagreement.
Listen to each other: Each person should be given an opportunity to explain their position.
Remain calm: Anger and insults can make the situation worse.
Find common ground: People should identify areas where they agree.
Consider possible solutions: Different solutions should be discussed.
Compromise: Sometimes each side must give up something in order to reach an acceptable agreement.
Agree on a solution: The people involved should decide how the problem will be addressed.
Follow up: The situation should be monitored to ensure that the conflict does not return.
Conflict resolution helps people maintain relationships and avoid unnecessary violence.
3.8 Forgiveness and Reconciliation
Forgiveness is the decision to let go of resentment or anger towards someone who has caused harm or offence.
Forgiveness does not necessarily mean pretending that the wrongdoing never happened. Instead, it involves choosing not to remain controlled by anger or hatred.
Reconciliation is the process of restoring a damaged relationship and rebuilding trust between people or groups.
Forgiveness can contribute to reconciliation, but reconciliation may require additional steps such as an apology, acceptance of responsibility, compensation, changed behavior and rebuilding trust.
Forgiveness and reconciliation can help individuals and communities move beyond past disagreements and establish healthier relationships.
=== Chapter 4ː Positive and negative social behaviors ===
4.1 Positive social behaviors
Social behavior can have either positive or negative effects on individuals and society. Positive social behaviors contribute to healthy relationships, cooperation, peace and community development. Negative social behaviors can cause emotional pain, conflict, discrimination and harm.
Understanding both forms of behavior helps people recognize the consequences of their actions and make better choices.
4.2 Kindness and Helping Others
Kindness is the willingness to treat others with care, consideration and compassion.
Kindness can be shown through simple actions such as helping someone carry something, comforting a person who is sad, sharing with others or offering encouragement.
Helping others is an important form of positive social behavior because people often depend on one another.
Benefits of kindness
Kindness:
strengthens relationships;
makes people feel valued;
encourages cooperation;
reduces loneliness;
promotes happiness;
creates supportive communities;
encourages others to behave positively.
Kindness does not always require money or major sacrifices. A kind word, listening to someone or offering assistance can make a significant difference.
4.3 Respect and Responsibility
Respect is showing consideration for the rights, feelings, opinions and dignity of other people.
Respect involves recognizing that other people have value even when they have different opinions or backgrounds.
Examples of respect include listening when someone speaks, respecting personal property, using polite language and accepting reasonable differences.
Responsibility means accepting the duty to perform one's obligations and being willing to take responsibility for one's actions.
A responsible person understands that their behavior has consequences for themselves and others.
Respect and responsibility are important because they create trust, discipline and cooperation in society.
4.4 Bullying and Harassment
Bullying is repeated behavior intended to intimidate, hurt, humiliate or control another person.
Bullying may be:
physical;
verbal;
emotional;
social;
online.
Examples include hitting, threatening, insulting, spreading rumors, deliberately excluding someone or repeatedly sending harmful messages online.
Harassment refers to unwanted behavior that disturbs, threatens, humiliates or causes distress to another person.
Bullying and harassment can have serious effects on a person's confidence, relationships, education, work and general well-being.
They should not be treated as normal behavior. Individuals and institutions should create environments where people can report harmful behavior and receive appropriate support.
4.5 Peer Pressure
Peer pressure occurs when individuals are influenced by their friends or people of a similar age to behave in a particular way.
Peer pressure can be positive or negative.
Positive peer pressure may encourage someone to study harder, participate in sports, avoid harmful behavior or develop useful skills.
Negative peer pressure may encourage behaviors such as substance abuse, fighting, cheating, truancy, stealing or other harmful activities.
A person can resist negative peer pressure by:
being confident;
knowing their values;
choosing supportive friends;
saying no firmly;
avoiding risky situations;
seeking advice from trusted people.
4.6 Discrimination and Exclusion
Discrimination is unfair treatment of a person or group because of characteristics such as their background, gender, age, disability, social status or other differences.
Social exclusion occurs when individuals or groups are prevented from fully participating in social, educational, economic or community activities.
Discrimination can make people feel rejected, powerless and less valued.
Examples include refusing someone an opportunity because of their background or deliberately excluding someone from a group because they are considered different.
A fair society should promote equal opportunities and respect for all people.
4.7 Aggression and Harmful Behavior
Aggression refers to behavior intended to threaten, intimidate, dominate or harm another person.
Aggression can be physical, verbal or psychological.
Examples include:
fighting;
threatening others;
insulting people;
destroying property;
intimidation;
deliberately hurting others.
Harmful behavior can damage relationships and create fear and insecurity.
People can reduce aggression by learning emotional control, communicating their concerns peacefully, seeking help and using appropriate conflict-resolution strategies.
4.8 How Social Behavior Can Be Changed
Social behavior is not necessarily fixed. People can learn new ways of thinking and behaving.
Behavior can be changed through:
Education: Teaching people about respect, empathy, communication and responsibility can encourage positive behavior.
Positive role models: People often learn by observing parents, teachers, leaders, friends and other role models.
Self-awareness: Understanding one's own behavior is an important step towards changing it.
Positive peer influence: Supportive friends can encourage healthier choices.
Counselling: Professional or trusted guidance can help people understand the causes of harmful behavior.
Rewards and encouragement: Positive behavior can be strengthened through recognition and encouragement.
Consequences: Appropriate consequences can discourage harmful actions.
Changing social behavior often takes time. It requires willingness, practice, support and a suitable environment.
=== Chapter 5ː Social behavior in the modern world ===
5.1 Introduction
Technology has significantly changed the way people interact. In the past, most social interaction took place face-to-face or through letters and traditional forms of communication. Today, people can communicate instantly with others across the world through mobile phones, social media, messaging applications and other digital technologies.
The modern world has created many opportunities for people to connect, but it has also introduced new challenges. People must therefore understand how technology influences social behavior and learn to use it responsibly.
5.2 Social Media and Human Behavior
Social media refers to online platforms that allow people to create, share and exchange information and interact with other users.
Social media has changed how people communicate, make friends, share opinions and obtain information.
It can have positive effects by:
connecting people who are far apart;
helping people maintain relationships;
providing educational information;
creating business opportunities;
allowing people to share ideas;
supporting communities and social causes.
However, excessive or irresponsible use can also have negative effects. People may become overly dependent on online approval, compare themselves with others, spend too much time online or become involved in online conflicts.
Social media can therefore influence people's attitudes, relationships and everyday behaviour.
5.3 Online Communication
Online communication is the exchange of information through digital technologies such as messaging applications, email, social networking platforms and video calls.
Online communication is convenient because people can communicate across long distances almost instantly.
However, online communication lacks some of the social cues found in face-to-face communication. A written message may not clearly communicate the sender's tone or emotion.
For example, a person may make a joke through text, but the receiver may interpret it as an insult because they cannot hear the speaker's tone.
Effective online communication therefore requires people to choose their words carefully and consider how their messages may be interpreted.
5.4 Digital Etiquette
Digital etiquette, sometimes called netiquette, refers to the rules and appropriate behaviour people should follow when communicating and interacting online.
Good digital etiquette includes:
using respectful language;
avoiding unnecessary insults;
respecting other people's privacy;
thinking before posting;
avoiding spreading false information;
giving credit to other people's work;
respecting different opinions;
avoiding excessive messaging;
responding appropriately;
remembering that online actions can affect real people.
People should remember that being behind a screen does not remove the responsibility to treat others with dignity.
5.5 Cyberbullying
Cyberbullying is bullying carried out through digital technologies such as social media, messaging platforms, websites or online gaming platforms.
It can include:
sending threatening messages;
spreading embarrassing information;
sharing someone's private information without permission;
creating harmful rumors;
posting humiliating content;
deliberately excluding someone from online groups.
Cyberbullying can be particularly harmful because online content can spread quickly and may reach a large audience.
People experiencing cyberbullying should avoid responding aggressively, keep evidence of harmful messages where appropriate, block or report offenders and seek help from trusted adults, institutions or relevant authorities.
5.6 Social Media Influence
Social media can strongly influence the way people think and behave.
People may be influenced by:
celebrities and public figures;
influencers;
friends;
online communities;
advertisements;
trends;
viral content.
Social media can encourage positive behavior, such as learning, creativity, entrepreneurship and community participation. However, it can also promote harmful behaviors, unrealistic expectations and misinformation.
People should therefore develop critical thinking. Before accepting or sharing information, they should consider whether the information is reliable and whether sharing it could harm someone.
5.7 Privacy and Responsible Online Behavior
Privacy is the ability of individuals to control information about themselves and decide how that information is shared.
Responsible online behavior involves protecting one's own privacy and respecting the privacy of others.
People should be careful about sharing:
passwords;
private photographs;
personal contact information;
financial information;
private conversations;
sensitive personal details.
A person should also avoid sharing another person's photograph, message or personal information without appropriate permission.
Responsible online behavior means understanding that information shared online may be copied, stored or redistributed beyond the original audience.
5.8 Balancing Online and Face-to-Face Relationships
Technology provides convenient ways to communicate, but face-to-face interaction remains important.
Face-to-face communication allows people to observe facial expressions, gestures, tone of voice and other social cues. It can also provide opportunities for deeper emotional connection.
Spending too much time online may reduce opportunities for direct interaction with family, friends and community members.
A healthy balance involves using technology as a tool for communication without allowing it to completely replace real-world relationships.
People can maintain balance by:
setting reasonable limits on screen time;
spending time with family and friends;
participating in community activities;
having face-to-face conversations;
avoiding unnecessary phone use during important conversations;
making time for hobbies and physical activities.
5.9 Conclusion
The modern world has transformed human interaction. Digital technology and social media have made communication faster and more convenient, but they have also created new responsibilities and challenges.
People must learn to communicate respectfully both offline and online. They should understand digital etiquette, protect privacy, avoid cyberbullying and think critically about information encountered on social media.
Technology should support human relationships rather than completely replace them. Maintaining a healthy balance between online communication and face-to-face interaction can help people develop stronger and more meaningful relationships.
== Conclusion ==
Understanding social behavior helps people understand themselves and the people around them. Social behavior influences how individuals communicate, form relationships, cooperate, handle disagreements and respond to differences.
Healthy social behavior is built on respect, empathy, trust, responsibility, kindness, cooperation and effective communication. At the same time, people need to recognize harmful behaviors such as bullying, discrimination, aggression and exclusion and understand how these behaviors can affect individuals and society.
As society continues to change through technology and social media, the ability to interact responsibly becomes even more important. Developing good social behavior is therefore not only useful for personal relationships but also essential for creating peaceful, respectful and cooperative communities.
The book summarizes the importance of understanding social behavior and encourages readers to develop self-awareness, empathy, respect, communication skills, and responsible behavior in their interactions with others.
== References ==
* Books on social psychology
* Academic research on human behavior
* Communication studies
* Psychology textbooks
* Research on social media and digital behavior
* Relevant educational and professional resources
fffdjtmq4il2r7irj2dlbebhdt556wc
User:Ruth Bulyaba M/sandbox/A Simple Guide to Introduction to Artificial Intelligence
2
485477
4672291
4671811
2026-09-25T09:56:17Z
Ruth Bulyaba M
3622518
/* AI in Everyday Life */ added in paragraphs
4672291
wikitext
text/x-wiki
= A Simple Guide to Artificial Intelligence =
== 1. Book Overview ==
'''Title:''' ''A Simple Guide to Artificial Intelligence''
'''Subject:''' Introduction to Artificial Intelligence
'''Book type:''' Beginner-level educational guide
'''Target audience:''' Secondary-school students, teachers, university beginners, and general readers interested in understanding AI.
= <small>2. Purpose of the Book</small> =
The main purpose of ''A Simple Guide to Artificial Intelligence'' is to '''make artificial intelligence easy to understand for beginners'''.
The book will introduce readers to the basic concepts, technologies, applications, benefits, limitations, and social implications of AI.
It is not designed to train readers as AI engineers. Instead, it provides the foundation needed to understand conversations about AI and to continue learning about the subject.
= <small>3. Book Summary</small> =
The book teaches beginners what AI is, how it works, where it is used, what its benefits and limitations are, and how to use it responsibly.
The book therefore focuses on '''simple explanations, practical examples, critical thinking, responsible use, and learning by doing''' rather than complicated mathematics or advanced programming.
== <small>4</small>. <small>Structural Book Shell</small> ==
<big>'''Introduction:'''</big>
Artificial intelligence is becoming part of everyday life, from smartphones and search engines to education, healthcare, agriculture, business, and entertainment. However, many people use AI without fully understanding how it works.
This book provides a simple starting point for anyone who wants to understand AI. It introduces the basic concepts using clear language, familiar examples, and practical activities. The book does not require the reader to be a programmer or computer scientist.
=== <big>Chapters:</big> ===
=== Chapter 1: What Is Artificial Intelligence? ===
Introduces AI, its meaning, common examples, and the difference between AI and ordinary computer programs.
=== Chapter 2: A Short History of AI ===
Provides a brief overview of how artificial intelligence developed from early ideas to modern AI systems.
=== Chapter 3: AI in Everyday Life ===
Explores examples of AI in smartphones, search engines, recommendations, navigation, translation, chatbots, and other everyday technologies.
=== Chapter 4: Data and Algorithms ===
Explains the basic role of data and algorithms in AI systems using simple examples.
=== Chapter 5: Machine Learning ===
Introduces how computers can learn patterns from data and make predictions or classifications.
=== Chapter 6: Neural Networks and Deep Learning ===
Provides a beginner-friendly explanation of neural networks and why deep learning is important.
=== Chapter 7: Language, Images and Generative AI ===
Introduces natural language processing, computer vision, and generative AI, including systems that create text, images, audio, or code.
'''<big>Chapter 8: Benefits and Limitations of AI</big>'''
Explains what AI can do well and where it can make mistakes or produce unreliable results.
=== Chapter 9: AI, Ethics and Society ===
Discusses bias, privacy, security, misinformation, employment, fairness, and human responsibility.
=== Chapter 10: Using AI Responsibly ===
Provides practical guidance on checking AI-generated information, protecting personal data, maintaining academic honesty, and using AI appropriately.
=== Chapter 11: Learning Through Simple AI Activities ===
Provides simple exercises and beginner projects that allow readers to apply the concepts introduced in the book.
== <big>Conclusion</big> ==
''A Simple Guide to Artificial Intelligence'' will provide readers with a basic understanding of AI and its growing role in society. By the end of the book, readers should be able to explain what AI is, describe how basic AI systems work, identify common applications, recognize important limitations and risks, and use AI more thoughtfully and responsibly.
== <big>References</big> ==
The book should use reliable and educational sources, including:
== Chapter 1: ==
== What Is Artificial Intelligence? ==
Artificial Intelligence, or '''AI''', is technology that allows computers to perform tasks that normally require human intelligence.
AI can help computers recognise pictures, understand language, answer questions, make suggestions and solve problems.
Examples of AI include voice assistants, chatbots, face recognition and smart search engines.
Ordinary computer programs usually follow instructions written by people. AI systems can also learn patterns from data and use them to make predictions or decisions.
== Chapter 2: ==
== A Short History of AI ==
The idea of intelligent machines has existed for many years. Scientists began developing computer systems that could solve problems and perform simple intelligent tasks.
Over time, computers became faster and more powerful. Researchers developed machine learning, neural networks and other methods that improved AI.
Today, AI is used in education, health, business, transport, communication and many other areas.
== Chapter 3: ==
== AI in Everyday Life ==
Artificial Intelligence (AI) is now part of our everyday life. Many people use AI without even knowing it. It helps us do different activities more quickly and easily.
For example, when we use a phone and ask a voice assistant a question, AI helps the phone understand what we are saying and give us an answer. Search engines also use AI to help us find information on the internet.
AI also helps us choose things we may like. When we watch videos or listen to music, AI can suggest other videos or songs based on what we have watched or listened to before. Maps can also use AI to suggest routes and help us find places more easily.
AI is also useful for communication. Translation tools can help people understand different languages, while chatbots can answer questions and provide information. Some phones and computers use AI to recognise a person's face or fingerprint for security.
AI is also used in email to find unwanted messages, called spam. By doing many of these tasks, AI helps people save time and makes some everyday activities easier.
AI is therefore not only something used by scientists or big companies. It is already part of many things we use every day. Learning how AI works can help us use it wisely and safely.
== Chapter 4: ==
== Data and Algorithms ==
'''Data''' is information collected for use by a computer. It may include numbers, words, pictures, sounds or videos.
An '''algorithm''' is a set of steps used to solve a problem or complete a task.
AI systems use data and algorithms to identify patterns and produce results. For example, a system may study many pictures of cats and dogs to learn how to tell them apart.
The quality of the data can affect the quality of the AI's results.
== Chapter 5: ==
== Machine Learning ==
Machine learning is a type of AI in which computers learn patterns from data instead of receiving instructions for every possible situation.
For example, a computer can study many examples of emails to learn which messages may be spam.
Machine learning can be used to:
* Recognise objects.
* Predict weather or prices.
* Recommend content.
* Identify spam.
* Classify information
== Chapter 6: ==
== Neural Networks and Deep Learning ==
A neural network is an AI system inspired by the way connected nerve cells work in the human brain.
It contains connected parts that process information and identify patterns.
'''Deep learning''' uses neural networks with many layers. It is useful for tasks such as speech recognition, image recognition, language processing and self-driving technology.
== Chapter 7: ==
== Language, Images and Generative AI ==
AI can work with different types of information.
* '''Natural Language Processing:''' Helps computers understand and produce human language.
* '''Computer Vision:''' Helps computers identify and understand images and videos.
* '''Generative AI:''' Creates new content such as text, pictures, music, audio and computer code.
Generative AI can be useful for learning and creativity, but its results should always be checked for accuracy.
== Chapter 8: ==
== Benefits and Limitations of AI ==
=== Benefits of AI ===
Artificial Intelligence (AI) can help people in many different ways. One important benefit is that it can save time by helping people complete tasks more quickly. In education, AI can support learners by explaining difficult topics, answering questions, and helping them find useful information.
AI can also help doctors analyse information and support them in their work. It can improve communication through translation tools and can assist people with disabilities by providing tools that make communication, learning, and daily activities easier.
Businesses and organisations can also use AI to work more efficiently. For example, AI can help organise information, answer common questions, and complete some simple tasks. This allows people to spend more time on work that needs human ideas and creativity.
=== Limitations of AI ===
Although AI is useful, it also has some limitations. AI can make mistakes and may sometimes give information that is not correct. For this reason, people should check important information before using it.
AI can also show bias when the information used to train it is unfair or incomplete. Sometimes it may misunderstand a question and give an answer that does not match what the user wants. The quality of an AI answer can also depend on the quality of the information it has been given.
AI does not understand information exactly like a human being. It cannot replace human judgement, experience, and responsibility. Therefore, people should use AI carefully and always check important results before making decisions.
== Chapter 9: ==
== AI, Ethics and Society ==
Artificial Intelligence (AI) affects people, families, schools, businesses, and communities. Because of this, AI should be used with fairness, safety, and responsibility.
One concern is '''bias'''. AI may treat some people unfairly if the information used to train it is biased. '''Privacy''' is also important because AI systems may collect or use people's personal information. People should make sure that their information is protected.
'''Security''' is another concern. AI systems can be attacked or used in harmful ways. AI can also create '''false or misleading information''', which can make it difficult for people to know what is true.
AI may also change the world of '''employment''' as some jobs and work activities become more automated. However, people remain responsible for important decisions. AI should support people, but humans should make responsible choices and check important information.
== Chapter 10: ==
== Using AI Responsibly ==
People should use Artificial Intelligence (AI) carefully, honestly, and responsibly. When using AI, it is important to check information from trusted sources because AI can sometimes give incorrect answers.
People should also protect their privacy by not sharing personal or private information with AI tools. Learners should avoid copying AI answers without understanding them. AI should be used to support learning and ideas, not to replace personal effort.
It is also important to follow school and workplace rules when using AI and to give credit to sources when necessary. When someone is not sure about an AI answer or how to use a tool, they should ask a teacher or another trusted adult for help.
Using AI responsibly means using it '''honestly, safely, and respectfully''' while remembering that people are responsible for how they use the information and tools AI provides.
== Chapter 11: ==
== Learning Through Simple AI Activities ==
Learners can understand Artificial Intelligence (AI) better by taking part in simple and practical activities.
'''1. Identify AI tools used at home or school.'''
Learners can look at the tools they use at home or school and identify which ones use AI, such as voice assistants, smart phones, or learning applications.
'''2. Sort examples into AI and non-AI technologies.'''
Learners can be given examples of different technologies and group them into two categories: those that use AI and those that do not.
'''3. Create a simple set of instructions for solving a problem.'''
Learners can write clear steps for completing a simple task. This helps them understand how computers follow instructions to solve problems.
'''4. Collect safe data, such as favorite fruits, and organize it in a table.'''
Learners can collect simple and safe information from their classmates, such as their favorite fruits, and arrange the information in a table.
'''5. Discuss how a recommendation system works.'''
Learners can discuss how websites and applications suggest videos, songs, or other content based on what a person has viewed or used before.
'''6. Compare an AI-generated answer with information from a trusted book.'''
Learners can compare an answer given by AI with information in a trusted book. This helps them understand why AI answers should be checked.
'''7. Design a poster about responsible AI use.'''
Learners can create a simple poster showing how AI should be used safely, honestly, and responsibly.
These activities help learners connect AI ideas to '''real-life situations''' and understand how AI can be used in a safe and useful way.
== Conclusion ==
Artificial Intelligence is a technology that helps computers perform tasks that require human-like intelligence. It is used in many areas, including education, communication, health and business.
AI can be helpful, but it can also make mistakes and create risks. People should therefore check information, protect personal data and use AI responsibly.
Understanding AI helps us become informed, careful and responsible users of technology.
== References ==
qhd0l80en2756m9nqjpdzadl3ye26s9
4672304
4672291
2026-09-25T11:42:30Z
Ruth Bulyaba M
3622518
added references
4672304
wikitext
text/x-wiki
= A Simple Guide to Artificial Intelligence =
== 1. Book Overview ==
'''Title:''' ''A Simple Guide to Artificial Intelligence''
'''Subject:''' Introduction to Artificial Intelligence
'''Book type:''' Beginner-level educational guide
'''Target audience:''' Secondary-school students, teachers, university beginners, and general readers interested in understanding AI.
= <small>2. Purpose of the Book</small> =
The main purpose of ''A Simple Guide to Artificial Intelligence'' is to '''make artificial intelligence easy to understand for beginners'''.
The book will introduce readers to the basic concepts, technologies, applications, benefits, limitations, and social implications of AI.
It is not designed to train readers as AI engineers. Instead, it provides the foundation needed to understand conversations about AI and to continue learning about the subject.
= <small>3. Book Summary</small> =
The book teaches beginners what AI is, how it works, where it is used, what its benefits and limitations are, and how to use it responsibly.
The book therefore focuses on '''simple explanations, practical examples, critical thinking, responsible use, and learning by doing''' rather than complicated mathematics or advanced programming.
== <small>4</small>. <small>Structural Book Shell</small> ==
<big>'''Introduction:'''</big>
Artificial intelligence is becoming part of everyday life, from smartphones and search engines to education, healthcare, agriculture, business, and entertainment. However, many people use AI without fully understanding how it works.
This book provides a simple starting point for anyone who wants to understand AI. It introduces the basic concepts using clear language, familiar examples, and practical activities. The book does not require the reader to be a programmer or computer scientist.
=== <big>Chapters:</big> ===
=== Chapter 1: What Is Artificial Intelligence? ===
Introduces AI, its meaning, common examples, and the difference between AI and ordinary computer programs.
=== Chapter 2: A Short History of AI ===
Provides a brief overview of how artificial intelligence developed from early ideas to modern AI systems.
=== Chapter 3: AI in Everyday Life ===
Explores examples of AI in smartphones, search engines, recommendations, navigation, translation, chatbots, and other everyday technologies.
=== Chapter 4: Data and Algorithms ===
Explains the basic role of data and algorithms in AI systems using simple examples.
=== Chapter 5: Machine Learning ===
Introduces how computers can learn patterns from data and make predictions or classifications.
=== Chapter 6: Neural Networks and Deep Learning ===
Provides a beginner-friendly explanation of neural networks and why deep learning is important.
=== Chapter 7: Language, Images and Generative AI ===
Introduces natural language processing, computer vision, and generative AI, including systems that create text, images, audio, or code.
'''<big>Chapter 8: Benefits and Limitations of AI</big>'''
Explains what AI can do well and where it can make mistakes or produce unreliable results.
=== Chapter 9: AI, Ethics and Society ===
Discusses bias, privacy, security, misinformation, employment, fairness, and human responsibility.
=== Chapter 10: Using AI Responsibly ===
Provides practical guidance on checking AI-generated information, protecting personal data, maintaining academic honesty, and using AI appropriately.
=== Chapter 11: Learning Through Simple AI Activities ===
Provides simple exercises and beginner projects that allow readers to apply the concepts introduced in the book.
== <big>Conclusion</big> ==
''A Simple Guide to Artificial Intelligence'' will provide readers with a basic understanding of AI and its growing role in society. By the end of the book, readers should be able to explain what AI is, describe how basic AI systems work, identify common applications, recognize important limitations and risks, and use AI more thoughtfully and responsibly.
== <big>References</big> ==
The book should use reliable and educational sources, including:
== Chapter 1: ==
== What Is Artificial Intelligence? ==
Artificial Intelligence, or '''AI''', is technology that allows computers to perform tasks that normally require human intelligence.
AI can help computers recognize pictures, understand language, answer questions, make suggestions and solve problems.
Examples of AI include voice assistants, chatbots, face recognition and smart search engines.
Ordinary computer programs usually follow instructions written by people. AI systems can also learn patterns from data and use them to make predictions or decisions.
== Chapter 2: ==
== A Short History of AI ==
The idea of intelligent machines has existed for many years. Scientists began developing computer systems that could solve problems and perform simple intelligent tasks.
Over time, computers became faster and more powerful. Researchers developed machine learning, neural networks and other methods that improved AI.
Today, AI is used in education, health, business, transport, communication and many other areas.
== Chapter 3: ==
== AI in Everyday Life ==
Artificial Intelligence (AI) is now part of our everyday life. Many people use AI without even knowing it. It helps us do different activities more quickly and easily.
For example, when we use a phone and ask a voice assistant a question, AI helps the phone understand what we are saying and give us an answer. Search engines also use AI to help us find information on the internet.
AI also helps us choose things we may like. When we watch videos or listen to music, AI can suggest other videos or songs based on what we have watched or listened to before. Maps can also use AI to suggest routes and help us find places more easily.
AI is also useful for communication. Translation tools can help people understand different languages, while chatbots can answer questions and provide information. Some phones and computers use AI to recognise a person's face or fingerprint for security.
AI is also used in email to find unwanted messages, called spam. By doing many of these tasks, AI helps people save time and makes some everyday activities easier.
AI is therefore not only something used by scientists or big companies. It is already part of many things we use every day. Learning how AI works can help us use it wisely and safely.
== Chapter 4: ==
== Data and Algorithms ==
'''Data''' is information collected for use by a computer. It may include numbers, words, pictures, sounds or videos.
An '''algorithm''' is a set of steps used to solve a problem or complete a task.
AI systems use data and algorithms to identify patterns and produce results. For example, a system may study many pictures of cats and dogs to learn how to tell them apart.
The quality of the data can affect the quality of the AI's results.<ref>{{Citation |last=Holmström |first=Jonny |title=How AI can generate value creation |date=2026-03-27 |url=https://doi.org/10.4324/9781003733881-7 |work=AI Innovation in Business |pages=101–116 |access-date=2026-09-25 |place=New York |publisher=Routledge |isbn=978-1-003-73388-1}}</ref>
== Chapter 5: ==
== Machine Learning ==
Machine learning is a type of AI in which computers learn patterns from data instead of receiving instructions for every possible situation.
For example, a computer can study many examples of emails to learn which messages may be spam.
Machine learning can be used to:
* Recognise objects.
* Predict weather or prices.
* Recommend content.
* Identify spam.
* Classify information
== Chapter 6: ==
== Neural Networks and Deep Learning ==
A neural network is an AI system inspired by the way connected nerve cells work in the human brain.
It contains connected parts that process information and identify patterns.
'''Deep learning''' uses neural networks with many layers. It is useful for tasks such as speech recognition, image recognition, language processing and self-driving technology.
== Chapter 7: ==
== Language, Images and Generative AI ==
AI can work with different types of information.
* '''Natural Language Processing:''' Helps computers understand and produce human language.
* '''Computer Vision:''' Helps computers identify and understand images and videos.
* '''Generative AI:''' Creates new content such as text, pictures, music, audio and computer code.
Generative AI can be useful for learning and creativity, but its results should always be checked for accuracy.
== Chapter 8: ==
== Benefits and Limitations of AI ==
=== Benefits of AI ===
Artificial Intelligence (AI) can help people in many different ways. One important benefit is that it can save time by helping people complete tasks more quickly. In education, AI can support learners by explaining difficult topics, answering questions, and helping them find useful information.
AI can also help doctors analyse information and support them in their work. It can improve communication through translation tools and can assist people with disabilities by providing tools that make communication, learning, and daily activities easier.
Businesses and organisations can also use AI to work more efficiently. For example, AI can help organise information, answer common questions, and complete some simple tasks. This allows people to spend more time on work that needs human ideas and creativity.
=== Limitations of AI ===
Although AI is useful, it also has some limitations. AI can make mistakes and may sometimes give information that is not correct. For this reason, people should check important information before using it.
AI can also show bias when the information used to train it is unfair or incomplete. Sometimes it may misunderstand a question and give an answer that does not match what the user wants. The quality of an AI answer can also depend on the quality of the information it has been given.
AI does not understand information exactly like a human being. It cannot replace human judgement, experience, and responsibility. Therefore, people should use AI carefully and always check important results before making decisions.
== Chapter 9: ==
== AI, Ethics and Society ==
Artificial Intelligence (AI) affects people, families, schools, businesses, and communities. Because of this, AI should be used with fairness, safety, and responsibility.
One concern is '''bias'''. AI may treat some people unfairly if the information used to train it is biased. '''Privacy''' is also important because AI systems may collect or use people's personal information. People should make sure that their information is protected.
'''Security''' is another concern. AI systems can be attacked or used in harmful ways. AI can also create '''false or misleading information''', which can make it difficult for people to know what is true.
AI may also change the world of '''employment''' as some jobs and work activities become more automated. However, people remain responsible for important decisions. AI should support people, but humans should make responsible choices and check important information.
== Chapter 10: ==
== Using AI Responsibly ==
People should use Artificial Intelligence (AI) carefully, honestly, and responsibly. When using AI, it is important to check information from trusted sources because AI can sometimes give incorrect answers.
People should also protect their privacy by not sharing personal or private information with AI tools. Learners should avoid copying AI answers without understanding them. AI should be used to support learning and ideas, not to replace personal effort.
It is also important to follow school and workplace rules when using AI and to give credit to sources when necessary. When someone is not sure about an AI answer or how to use a tool, they should ask a teacher or another trusted adult for help.
Using AI responsibly means using it '''honestly, safely, and respectfully''' while remembering that people are responsible for how they use the information and tools AI provides.
== Chapter 11: ==
== Learning Through Simple AI Activities ==
Learners can understand Artificial Intelligence (AI) better by taking part in simple and practical activities.
'''1. Identify AI tools used at home or school.'''
Learners can look at the tools they use at home or school and identify which ones use AI, such as voice assistants, smart phones, or learning applications.
'''2. Sort examples into AI and non-AI technologies.'''
Learners can be given examples of different technologies and group them into two categories: those that use AI and those that do not.
'''3. Create a simple set of instructions for solving a problem.'''
Learners can write clear steps for completing a simple task. This helps them understand how computers follow instructions to solve problems.
'''4. Collect safe data, such as favorite fruits, and organize it in a table.'''
Learners can collect simple and safe information from their classmates, such as their favorite fruits, and arrange the information in a table.
'''5. Discuss how a recommendation system works.'''
Learners can discuss how websites and applications suggest videos, songs, or other content based on what a person has viewed or used before.
'''6. Compare an AI-generated answer with information from a trusted book.'''
Learners can compare an answer given by AI with information in a trusted book. This helps them understand why AI answers should be checked.
'''7. Design a poster about responsible AI use.'''
Learners can create a simple poster showing how AI should be used safely, honestly, and responsibly.
These activities help learners connect AI ideas to '''real-life situations''' and understand how AI can be used in a safe and useful way.
<ref>{{Cite web |date=2026-09-23 |title=Artificial intelligence - Machine Learning, Robotics, Algorithms {{!}} Britannica |url=https://www.britannica.com/technology/artificial-intelligence/Methods-and-goals-in-AI |access-date=2026-09-25 |website=www.britannica.com |language=en}}</ref>
== Conclusion ==
Artificial Intelligence is a technology that helps computers perform tasks that require human-like intelligence. It is used in many areas, including education, communication, health and business.
AI can be helpful, but it can also make mistakes and create risks. People should therefore check information, protect personal data and use AI responsibly.
Understanding AI helps us become informed, careful and responsible users of technology.
== References ==
<references />
mdl7a8eo3o91h57lwkrsu1btrshne3u
4672306
4672304
2026-09-25T11:52:22Z
Ruth Bulyaba M
3622518
corrected the structure of the book
4672306
wikitext
text/x-wiki
= A Simple Guide to Artificial Intelligence =
== 1. Book Overview ==
'''Title:''' ''A Simple Guide to Artificial Intelligence''
'''Subject:''' Introduction to Artificial Intelligence
'''Book type:''' Beginner-level educational guide
'''Target audience:''' Secondary-school students, teachers, university beginners, and general readers interested in understanding AI.
= <small>2. Purpose of the Book</small> =
The main purpose of ''A Simple Guide to Artificial Intelligence'' is to '''make artificial intelligence easy to understand for beginners'''.
The book will introduce readers to the basic concepts, technologies, applications, benefits, limitations, and social implications of AI.
It is not designed to train readers as AI engineers. Instead, it provides the foundation needed to understand conversations about AI and to continue learning about the subject.
= <small>3. Book Summary</small> =
The book teaches beginners what AI is, how it works, where it is used, what its benefits and limitations are, and how to use it responsibly.
The book therefore focuses on '''simple explanations, practical examples, critical thinking, responsible use, and learning by doing''' rather than complicated mathematics or advanced programming.
== <small>4</small>. <small>Structural Book Shell</small> ==
<big>'''Introduction:'''</big>
Artificial intelligence is becoming part of everyday life, from smartphones and search engines to education, healthcare, agriculture, business, and entertainment. However, many people use AI without fully understanding how it works.
This book provides a simple starting point for anyone who wants to understand AI. It introduces the basic concepts using clear language, familiar examples, and practical activities. The book does not require the reader to be a programmer or computer scientist.
=== <big>Chapters:</big> ===
=== Chapter 1: What Is Artificial Intelligence? ===
Introduces AI, its meaning, common examples, and the difference between AI and ordinary computer programs.
=== Chapter 2: A Short History of AI ===
Provides a brief overview of how artificial intelligence developed from early ideas to modern AI systems.
=== Chapter 3: AI in Everyday Life ===
Explores examples of AI in smartphones, search engines, recommendations, navigation, translation, chatbots, and other everyday technologies.
=== Chapter 4: Data and Algorithms ===
Explains the basic role of data and algorithms in AI systems using simple examples.
=== Chapter 5: Machine Learning ===
Introduces how computers can learn patterns from data and make predictions or classifications.
=== Chapter 6: Neural Networks and Deep Learning ===
Provides a beginner-friendly explanation of neural networks and why deep learning is important.
=== Chapter 7: Language, Images and Generative AI ===
Introduces natural language processing, computer vision, and generative AI, including systems that create text, images, audio, or code.
'''<big>Chapter 8: Benefits and Limitations of AI</big>'''
Explains what AI can do well and where it can make mistakes or produce unreliable results.
=== Chapter 9: AI, Ethics and Society ===
Discusses bias, privacy, security, misinformation, employment, fairness, and human responsibility.
=== Chapter 10: Using AI Responsibly ===
Provides practical guidance on checking AI-generated information, protecting personal data, maintaining academic honesty, and using AI appropriately.
=== Chapter 11: Learning Through Simple AI Activities ===
Provides simple exercises and beginner projects that allow readers to apply the concepts introduced in the book.
== Chapter 1: ==
== What Is Artificial Intelligence? ==
Artificial Intelligence, or '''AI''', is technology that allows computers to perform tasks that normally require human intelligence.
AI can help computers recognize pictures, understand language, answer questions, make suggestions and solve problems.
Examples of AI include voice assistants, chatbots, face recognition and smart search engines.
Ordinary computer programs usually follow instructions written by people. AI systems can also learn patterns from data and use them to make predictions or decisions.
== Chapter 2: ==
== A Short History of AI ==
The idea of intelligent machines has existed for many years. Scientists began developing computer systems that could solve problems and perform simple intelligent tasks.
Over time, computers became faster and more powerful. Researchers developed machine learning, neural networks and other methods that improved AI.
Today, AI is used in education, health, business, transport, communication and many other areas.
== Chapter 3: ==
== AI in Everyday Life ==
Artificial Intelligence (AI) is now part of our everyday life. Many people use AI without even knowing it. It helps us do different activities more quickly and easily.
For example, when we use a phone and ask a voice assistant a question, AI helps the phone understand what we are saying and give us an answer. Search engines also use AI to help us find information on the internet.
AI also helps us choose things we may like. When we watch videos or listen to music, AI can suggest other videos or songs based on what we have watched or listened to before. Maps can also use AI to suggest routes and help us find places more easily.
AI is also useful for communication. Translation tools can help people understand different languages, while chatbots can answer questions and provide information. Some phones and computers use AI to recognise a person's face or fingerprint for security.
AI is also used in email to find unwanted messages, called spam. By doing many of these tasks, AI helps people save time and makes some everyday activities easier.
AI is therefore not only something used by scientists or big companies. It is already part of many things we use every day. Learning how AI works can help us use it wisely and safely.
== Chapter 4: ==
== Data and Algorithms ==
'''Data''' is information collected for use by a computer. It may include numbers, words, pictures, sounds or videos.
An '''algorithm''' is a set of steps used to solve a problem or complete a task.
AI systems use data and algorithms to identify patterns and produce results. For example, a system may study many pictures of cats and dogs to learn how to tell them apart.
The quality of the data can affect the quality of the AI's results.<ref>{{Citation |last=Holmström |first=Jonny |title=How AI can generate value creation |date=2026-03-27 |url=https://doi.org/10.4324/9781003733881-7 |work=AI Innovation in Business |pages=101–116 |access-date=2026-09-25 |place=New York |publisher=Routledge |isbn=978-1-003-73388-1}}</ref>
== Chapter 5: ==
== Machine Learning ==
Machine learning is a type of AI in which computers learn patterns from data instead of receiving instructions for every possible situation.
For example, a computer can study many examples of emails to learn which messages may be spam.
Machine learning can be used to:
* Recognise objects.
* Predict weather or prices.
* Recommend content.
* Identify spam.
* Classify information
== Chapter 6: ==
== Neural Networks and Deep Learning ==
A neural network is an AI system inspired by the way connected nerve cells work in the human brain.
It contains connected parts that process information and identify patterns.
'''Deep learning''' uses neural networks with many layers. It is useful for tasks such as speech recognition, image recognition, language processing and self-driving technology.
== Chapter 7: ==
== Language, Images and Generative AI ==
AI can work with different types of information.
* '''Natural Language Processing:''' Helps computers understand and produce human language.
* '''Computer Vision:''' Helps computers identify and understand images and videos.
* '''Generative AI:''' Creates new content such as text, pictures, music, audio and computer code.
Generative AI can be useful for learning and creativity, but its results should always be checked for accuracy.
== Chapter 8: ==
== Benefits and Limitations of AI ==
=== Benefits of AI ===
Artificial Intelligence (AI) can help people in many different ways. One important benefit is that it can save time by helping people complete tasks more quickly. In education, AI can support learners by explaining difficult topics, answering questions, and helping them find useful information.
AI can also help doctors analyse information and support them in their work. It can improve communication through translation tools and can assist people with disabilities by providing tools that make communication, learning, and daily activities easier.
Businesses and organisations can also use AI to work more efficiently. For example, AI can help organise information, answer common questions, and complete some simple tasks. This allows people to spend more time on work that needs human ideas and creativity.
=== Limitations of AI ===
Although AI is useful, it also has some limitations. AI can make mistakes and may sometimes give information that is not correct. For this reason, people should check important information before using it.
AI can also show bias when the information used to train it is unfair or incomplete. Sometimes it may misunderstand a question and give an answer that does not match what the user wants. The quality of an AI answer can also depend on the quality of the information it has been given.
AI does not understand information exactly like a human being. It cannot replace human judgement, experience, and responsibility. Therefore, people should use AI carefully and always check important results before making decisions.
== Chapter 9: ==
== AI, Ethics and Society ==
Artificial Intelligence (AI) affects people, families, schools, businesses, and communities. Because of this, AI should be used with fairness, safety, and responsibility.
One concern is '''bias'''. AI may treat some people unfairly if the information used to train it is biased. '''Privacy''' is also important because AI systems may collect or use people's personal information. People should make sure that their information is protected.
'''Security''' is another concern. AI systems can be attacked or used in harmful ways. AI can also create '''false or misleading information''', which can make it difficult for people to know what is true.
AI may also change the world of '''employment''' as some jobs and work activities become more automated. However, people remain responsible for important decisions. AI should support people, but humans should make responsible choices and check important information.
== Chapter 10: ==
== Using AI Responsibly ==
People should use Artificial Intelligence (AI) carefully, honestly, and responsibly. When using AI, it is important to check information from trusted sources because AI can sometimes give incorrect answers.
People should also protect their privacy by not sharing personal or private information with AI tools. Learners should avoid copying AI answers without understanding them. AI should be used to support learning and ideas, not to replace personal effort.
It is also important to follow school and workplace rules when using AI and to give credit to sources when necessary. When someone is not sure about an AI answer or how to use a tool, they should ask a teacher or another trusted adult for help.
Using AI responsibly means using it '''honestly, safely, and respectfully''' while remembering that people are responsible for how they use the information and tools AI provides.
== Chapter 11: ==
== Learning Through Simple AI Activities ==
Learners can understand Artificial Intelligence (AI) better by taking part in simple and practical activities.
'''1. Identify AI tools used at home or school.'''
Learners can look at the tools they use at home or school and identify which ones use AI, such as voice assistants, smart phones, or learning applications.
'''2. Sort examples into AI and non-AI technologies.'''
Learners can be given examples of different technologies and group them into two categories: those that use AI and those that do not.
'''3. Create a simple set of instructions for solving a problem.'''
Learners can write clear steps for completing a simple task. This helps them understand how computers follow instructions to solve problems.
'''4. Collect safe data, such as favorite fruits, and organize it in a table.'''
Learners can collect simple and safe information from their classmates, such as their favorite fruits, and arrange the information in a table.
'''5. Discuss how a recommendation system works.'''
Learners can discuss how websites and applications suggest videos, songs, or other content based on what a person has viewed or used before.
'''6. Compare an AI-generated answer with information from a trusted book.'''
Learners can compare an answer given by AI with information in a trusted book. This helps them understand why AI answers should be checked.
'''7. Design a poster about responsible AI use.'''
Learners can create a simple poster showing how AI should be used safely, honestly, and responsibly.
These activities help learners connect AI ideas to '''real-life situations''' and understand how AI can be used in a safe and useful way.
<ref>{{Cite web |date=2026-09-23 |title=Artificial intelligence - Machine Learning, Robotics, Algorithms {{!}} Britannica |url=https://www.britannica.com/technology/artificial-intelligence/Methods-and-goals-in-AI |access-date=2026-09-25 |website=www.britannica.com |language=en}}</ref>
== Conclusion ==
Artificial Intelligence is a technology that helps computers perform tasks that require human-like intelligence. It is used in many areas, including education, communication, health and business.
AI can be helpful, but it can also make mistakes and create risks. People should therefore check information, protect personal data and use AI responsibly.
Understanding AI helps us become informed, careful and responsible users of technology.
== References ==
<references />
0x7xvqfhb61ktfxqdko66pxh4yd5c3t
Wikibooks:Reading room/Administrative Assistance/Archives/2026/September
4
485674
4672274
4672050
2026-09-25T08:10:17Z
ArchiverBot
1227662
Bot: Archiving 3 threads from [[Wikibooks:Reading room/Administrative Assistance]]
4672274
wikitext
text/x-wiki
{{talk archive}}
== Jeevandan26 reported by MathXplore ==
* {{userlinks|Jeevandan26}}
Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC)
== Gloriagulshan reported by MathXplore ==
* {{userlinks|Gloriagulshan}}
[[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC)
:I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC)
: Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC)
::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC)
== Mohansai00116 reported by MathXplore ==
* {{userlinks|Mohansai00116}}
Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC)
== Fatemai6 reported by MathXplore ==
* {{userlinks|Fatemai6}}
Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Kamrulhasan147 reported by MathXplore ==
* {{userlinks|Kamrulhasan147}}
Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Kamrulhasan142 reported by MathXplore ==
* {{userlinks|Kamrulhasan142}}
Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Twenty7incgs reported by MathXplore ==
* {{userlinks|Twenty7incgs}}
Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Tailleash reported by MathXplore ==
* {{userlinks|Tailleash}}
Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Md Akash Mia12 reported by MathXplore ==
* {{userlinks|Md Akash Mia12}}
Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC)
: {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC)
== Vapesitefiftybar reported by MathXplore ==
* {{userlinks|Vapesitefiftybar}}
Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Myteethtime1 reported by MathXplore ==
* {{userlinks|Myteethtime1}}
Spam <!-- USERREPORTED:/Myteethtime1/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:54, 4 September 2026 (UTC)
: {{Done}} by MarcGarver. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:28, 4 September 2026 (UTC)
== Rajstartupservices reported by MathXplore ==
* {{userlinks|Rajstartupservices}}
Link spam, [[Special:AbuseLog/315363]] <!-- USERREPORTED:/Rajstartupservices/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 14:33, 4 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:28, 4 September 2026 (UTC)
== Reazulkarim545456 reported by MathXplore ==
* {{userlinks|Reazulkarim545456}}
Link spam, [[Special:AbuseLog/315377]] <!-- USERREPORTED:/Reazulkarim545456/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 06:39, 6 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:19, 6 September 2026 (UTC)
== Fahmidafy reported by MathXplore ==
* {{userlinks|Fahmidafy}}
Link spam, [[Special:AbuseLog/315378]] <!-- USERREPORTED:/Fahmidafy/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 06:40, 6 September 2026 (UTC)
: The filter stopped them three times, no action taken. Please re-report if they continue spamming. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 6 September 2026 (UTC)
== Grow spark digital reported by MathXplore ==
* {{userlinks|Grow spark digital}}
Link spam, [[Special:AbuseLog/315381]] <!-- USERREPORTED:/Grow spark digital/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 06:42, 6 September 2026 (UTC)
: Only one filter hit, seems stale. Please re-report if they continue to spam. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:49, 6 September 2026 (UTC)
== Korigosnacks reported by MathXplore ==
* {{userlinks|Korigosnacks}}
Link spam, [[Special:AbuseLog/315383]] <!-- USERREPORTED:/Korigosnacks/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:32, 6 September 2026 (UTC)
: Stale after only two filter hits and no edits. Please re-report if they spam later. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:56, 6 September 2026 (UTC)
== Athoyislam reported by MathXplore ==
* {{userlinks|Athoyislam}}
Spam <!-- USERREPORTED:/Athoyislam/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:47, 7 September 2026 (UTC)
:{{done}} ―[[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:31, 7 September 2026 (UTC)
== Jamal123lll reported by MathXplore ==
* {{userlinks|Jamal123lll}}
Link spam, [[Special:AbuseLog/315402]] <!-- USERREPORTED:/Jamal123lll/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:48, 7 September 2026 (UTC)
:{{done}} ―[[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:32, 7 September 2026 (UTC)
== Idontknowidkh reported by MathXplore ==
* {{userlinks|Idontknowidkh}}
online shopping spam, [[Special:AbuseLog/315400]] <!-- USERREPORTED:/Idontknowidkh/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:49, 7 September 2026 (UTC)
:{{done}} ―[[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:33, 7 September 2026 (UTC)
== Ridhisharma1999 reported by MathXplore ==
* {{userlinks|Ridhisharma1999}}
Link spam, [[Special:AbuseLog/315435]] <!-- USERREPORTED:/Ridhisharma1999/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:01, 9 September 2026 (UTC)
:{{Done}} ―[[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> 12:02, 9 September 2026 (UTC)
== Thenaoriudaipur reported by MathXplore ==
* {{userlinks|Thenaoriudaipur}}
Link spam, [[Special:AbuseLog/315473]] <!-- USERREPORTED:/Thenaoriudaipur/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:47, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== Networkkingss reported by MathXplore ==
* {{userlinks|Networkkingss}}
Link spam, [[Special:AbuseLog/315458]] <!-- USERREPORTED:/Networkkingss/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:50, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== ~2026-49226-92 reported by MathXplore ==
* {{anonlinks|~2026-49226-92}}
Vandalism <!-- USERREPORTED:/~2026-49226-92/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:57, 10 September 2026 (UTC)
: {{done}}. I also nuked all pages created by this user and their connected temporary accounts based on their associated IP(s). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:48, 10 September 2026 (UTC)
2jop4q4qo3vdx6a9v7ibkicpllz1yab
Moving objects in retarded gravitational potentials of an expanding spherical shell/Cosmology of retarded interaction
0
485676
4672212
4671984
2026-09-24T21:01:10Z
Bautsch
630029
/* Summary */ wording
4672212
wikitext
text/x-wiki
<noinclude>
{{Chapter navigation|Gravitational redshift|Conclusion}}
</noinclude>
== Cosmology of retarded interaction ==
Modern astrophysics is based on the general theory of relativity (GR) because it has been confirmed by experiments such as the perihelion precession of Mercury or the detection of gravitational waves. A new model must prove that it also correctly describes all the effects that the general theory of relativity explains geometrically.
To devise a disruptive cosmology that relies solely on classical, relativistic, and retarded gravitational potentials and dispenses with all ad hoc and a priori hypotheses – such as the equivalence principle of general relativity, cosmological constants, dark matter, dark energy, homogeneity, or isotropy – we must return to a dynamic field approach. To this end, the differential geometry required for general relativity can be replaced by a model that relies on pseudo-Euclidean geometry in Minkowski space.
The central challenge is that classical Newtonian gravity acts instantaneously. To construct a consistent cosmology, retarded gravitational potentials can be introduced. This leads to an inherent time dependence and dynamics of the universe without the need to postulate an expansion of spacetime.
In what follows, a draft of the '''cosmology of retarded interaction (CRI)''' is outlined.
=== The axioms of retarded interaction ===
Established physics is based on three pillars, which are used to build the cosmology of retarded interaction:
# '''Classical mechanics:''' The force <math display="inline">F = m \cdot a</math> as the basis of the acceleration <math display="inline">a</math> of a mass <math display="inline">m</math> .
# '''Relativistic kinematics:''' time dilation and length contraction according to the special theory of relativity, but without the curvature of spacetime.
# '''Retarded gravitation:''' The gravitational effect propagates at the speed of light <math display="inline">c</math>. The potential <math display="inline">\Phi</math> at a point <math display="inline">\mathbf {r}</math> at time <math display="inline">t</math> depends on the state of the source at time <math display="inline">t - \Delta t</math>, where <math display="inline">\Delta t = \frac {r} {c}</math>.
=== The mathematical core ===
For the mathematical formulation, the gravitational potential can be substituted into the wave equation:
:<math>\square \Phi = \left( \frac {1} {c^2} \frac {\partial^2} {\partial t^2} - \nabla^2 \right) \Phi = 4\pi G \rho (\vec {r}, t)</math>
To calculate the gravitational potential at a given location <math>\vec {r}</math> at a specific time <math>t</math>, one must not use the current mass distribution <math>\rho (\vec {r}, t)</math>; rather, the mass distribution must be considered at a retarded time <math>t_{ret}</math>:
:<math>t_{ret} = t - \frac {|\vec {r} - \vec {r}'|} {c}</math>
The solution to this wave equation is the retarded potential:
:<math>\Phi (\vec {r}, t) = -G \iiint \frac {\rho (\vec {r}', t_{ret})} {|\vec {r} - \vec {r}'|} d^3r'</math>
In a universe with massive objects, gravity never acts instantaneously but always depends on the mass’s past position. This creates a phase shift between mass and force, as well as an attenuation of the retarded gravitational potentials. Since the particle horizon of a spherical kinematic universe expands at the speed of light in a vacuum, the density depends heavily on the distance from the observer. Observers at the centre see the edges as they were in the past, when the universe was still smaller and denser.
For observers in the centre (<math>\vec {r} = 0</math>) of a mass distribution within a sphere with the radius <math>R</math> the integral above can be simplified with the linear shell mass densities <math>\lambda (r', t)</math> (in kilogram per metre) at their surfaces <math>A'</math>:
:<math>\rho (r', t) = A' \cdot \lambda (r', t) = 4 \pi \cdot r'^2 \cdot \lambda (r', t)</math>
:<math>\Phi (0, t) = -G \iiint \frac {\rho (\vec {r}', t_{ret})} {\vec {r}'} d^3r' = -4\pi G \int\limits_{0}^{R} \frac {\lambda (\vec {r}', t_{ret})} {\vec {r}'} r'^2 dr' = -4\pi G \int\limits_{0}^{R} \lambda (r', t_{ret}) \, r' dr'</math>
The retarded radius <math>R_{ret}</math> of the surface of a sphere at the retarded time <math>t_{ret}</math> that moves away with the speed <math>v</math> is given by:
:<math>R_{ret} (v) = c \cdot t_{ret} = v \left( t - \frac {R_{ret} (v)} {c} \right) = \frac {v \cdot t} {1 + \frac {v} {c}}</math>
The maximum radius <math>R_{obs}</math> that can be experienced by an observer in the centre of the universe is the observable horizon at the retarded time <math>t_{ret}</math> that moved away with speed of light. It is given by the following limit:
:<math>R_{obs} = \lim_{v \to c} R_{ret} (v) = \frac {c \cdot t} {2}</math>
At a certain point in time <math>t_0</math> with a homogeneous mass distribution <math>\rho_0</math>, the retarded mass density <math>\rho_{ret}</math> is given by:
:<math>\rho_{ret} = \rho (r', t_{ret}) = \rho \left( t - \frac {r'} {c} \right) = \rho_0 \cdot \left( \frac {t_0} {t - \frac {r'} {c}}\right)^3</math>
Due to the effect of the retarded potentials the mass distribution becomes increasingly inhomogeneous over time. The gravitational potential in the centre at <math>r \approx 0</math> bocomes more and more flat, and the mass density in the out regions at <math>r \lessapprox R_{obs}</math> becomes higher and higher over time. Furthermore, the the radial velocity component <math>v (r, t)</math> of all mass points is increasing over time as well:
:<math>0 \le v(r, t) \le v(r, t + \Delta t) < c</math> with <math>\Delta t \ge 0</math>
This leads to an accelerated expansion with the acceleration <math>a(r, t)</math>:
:<math>0 \le a(r, t) \le a(r, t + \Delta t)</math>
An time-dependent inhomogenous mass distribution can be expressed by the dimensionless function <math>f (\xi, t_{ret})</math> with the dimensionless parameter <math>\xi</math>:
:<math>\xi = \frac {r'} {c \cdot t_{ret}}</math> with <math>0 \le r' \le R_{ret}</math> and <math>0 \le \xi \le 1</math>
With:
:<math>t_{ret} = \frac {r'} {c \cdot \xi}</math>
The Lorentz factor <math>\gamma</math> can also be taken into account. In special relativity it describes the increased relativistic mass <math>m_{rel} (v)</math> of a particle with the velocity <math>v</math> and the rest mass <math>m_0</math> as well as the increased mass density <math>\rho_{rel} (v)</math> of an appropriate space element with the rest mass density <math>\rho_0</math>:
:<math>\gamma = \frac 1 {\sqrt{1 - \left( \frac{v}{c} \right) ^2}}</math>
:<math>m_{rel} = \gamma \cdot m_0</math>
:<math>\rho_{rel} = \gamma^2 \cdot \rho_0</math>
Then the relativistic and retarded mass density distribution <math>\rho_{ret,rel}</math> is given by the initial shell mass density <math>\lambda_0</math> at the radius <math>r'_0</math> at the time <math>t_0</math>:
:<math>\rho_{ret,rel} = \rho (r', t_{ret}, v) = \gamma^2 \cdot \rho_0 \cdot \left( \frac {t_0} {t - \frac {r'} {c}}\right)^3 \cdot f (\xi, t_{ret}) = \gamma^2 \cdot 4 \pi \cdot {r'_0}^2 \cdot \lambda_0 \cdot \left( \frac {t_0} {t_{ret}}\right)^3 \cdot f (\xi, t_{ret})</math> with <math>t_{ret,0} = \frac {r'_0} {c \cdot \xi}</math>
=== Cosmological mechanisms ===
==== The apparent expansion ====
In general relativity, redshift is a stretching of spacetime. In the cosmology of retarded interaction, it is the result of a dynamic retardation in both time and space.
Since the gravitational effect arrives retarded, the force of mass lags behind. In a system consisting of many particles, this leads to a continuous kinematic shift in their trajectories. When we receive light from distant sources, we do not observe an expansion of spacetime, but rather the cumulative effect of the net gravitational potentials on the propagation of light (gravitational redshift) and the relativistic potentials due to the motion of the source (Doppler redshift).
==== A replacement for dark matter ====
In the standard model of cosmology respectively the Lambda cold dark matter model (Lambda-CDM model or ΛCDM model), the flat rotation curves of galaxies are explained by dark matter which is even changing over time. In the cosmology of retarded interaction, they result from the retarded effect of the baryonic matter accreted by the galaxies.
The stars in the outer regions of a galaxy respond to the gravitational potential of the center as it was millions of years ago. The force does not decrease as <math display="inline">1 / r^2</math> because the time delay generates an additional force component, similar to the Liénard–Wiechert potentials in electrodynamics.
==== A replacement for dark energy ====
In the cosmology of retarded interaction, accelerated expansion is interpreted as a cosmic phenomenon. The retarded gravitational potentials of homogeneously distributed masses – located in a spherical shell outside the sphere’s surface on which a moving test mass rests – lead to an net outward acceleration of the test mass, since masses in front of the test mass cause stronger retarded forces than opposing masses that reach the test mass with attenuated retarded forces.
Consequently, all mass points moving in the universe drift apart at an accelerating rate because the net acting forces, due to the retardation, cause a radially outward acceleration force. As a result, matter in the outer regions of the universe becomes increasingly dense, creating an inhomogeneous mass distribution (black shell) that continuously amplifies the effect of the retarded potentials.
The cosmology of retarded interaction therefore does not align with metric expansion, it only presupposes a static pseudo-Euclidean space. If spacetime itself were expanding, this would call into question or modify the speed of light <math display="inline">c</math> as a constant parameter for the retardation <math display="inline">\Delta t = r/c</math>. The cosmology of retarded interaction would thus actively dispute the thesis of metric expansion and interpret it as an optical illusion.
In the cosmology of retarded interaction, expansion is not necessarily linked to an event such as the Big Bang, but is rather a dynamic process. The retardation of gravity gives rise to inhomogeneity. When moving masses are far enough apart that the time delay <math display="inline">\Delta t</math> effectively weakens and phase-shifts the effect of gravity, the objects begin to drift due to their kinetic motion.
The farther they drift, the larger <math display="inline">\Delta t</math> becomes, and the weaker the retarded forces from the opposite side from the universe become the expansion accelerates without the need for dark energy.
==== The universe as a black hole ====
In general relativity, a black hole is a region of extreme spatial curvature. However, since cosmology of retarded interaction rejects spatial curvature and replaces it with retarded potentials, the concept of a black hole would have to be radically redefined. In cosmology of retarded interaction, a black hole would not be a geometric point, but rather a region of high mass density in which the gravitational potentials are so strong that the escape velocity <math display="inline">v_e \geq c</math> is reached.
If our universe were the interior of such an object, we would find ourselves in a region where the retarded potentials are dominated by a massive external source which is located in the out regions of the universe. This region can be interpreted as a black shell.
Since cosmology of retarded interaction is based on classical potentials, there is no mathematical necessity for a singularity. The retarded effect smooths out extreme gradients over time. A universe-black-hole in cosmology of retarded interaction would thus be more like a gigantic cluster of baryonic matter, within which we find ourselves. The observed physics would then be the superposition of the local forces and the global, retarded pull of the surrounding mass in the black shell.
=== Comparison with the standard model of cosmology ===
[[File:Gravitational.field.in.cosmology.of.retarded.interaction.png|thumb|upright=2|Gravitational field in the '''cosmology of retarded interaction''' within a '''spherical black shell''' of an expanding universe with retarded gravitational potentials:<br/>'''Vector field''' showing the direction of gravitational forces by {{blue|'''blue arrows'''}}.<br/>Corresponding '''scalar potential field''' indicating equipotential lines by {{red|'''red circles'''}}.]]
The cosmology of retarded interaction does not rely on a priori hypotheses or ad hoc assumptions, which are taken for granted in the standard model of cosmology.
{| class="wikitable"
|+ Comparision standard model of cosmology (ΛCDM) and cosmology of retarded interaction (CRI)
|-
! Concept !! Standard model of cosmology (GR / ΛCDM) !! Cosmology of retarded interaction (CRI)
|-
| Principle of equivalence || Hypothesis (general theory of relativity) confirmed on earth within the margins of measurement accuracy || No, gravitation has a scalar potential and its gradient is a force
|-
| Homogeneity || Ad hoc assumption (cosmological principle) || No homogeneity, higher mass and energy densities in outer regions of a kinematic universe
|-
| Isotropy || Ad hoc assumption (cosmological principle) || Only from the centre of a kinematic universe
|-
| Copernican principle || Ad hoc assumption || Milky Way in Local Group near the centre of a kinematic universe
|-
| Dark matter || Ad hoc assumption (non-baryonic particles without electromagnetic interaction) || Effect of retarded gravitational potentials
|-
| Dark energy || Ad hoc assumption (cosmological constant Λ) || Effect of retarded gravitational potentials
|-
| Rotation curves of spiral galaxies || Ad hoc assumption (dark matter) || Retarded gravitational potentials of accreted baryonic matter
|-
| High-redshift objects || Ad hoc assumption (cosmological redshift by expanding spacetime) || Gravitational redshift due to baryonic matter in black shell
|-
| Geometry || Dynamic differential geometry|| Static pseudo-Euclidean geometry
|-
| Spacetime || Curved spacetime || Minkowski spacetime
|-
| Spatial evolution of particle horizon || Accelerated expansion with superluminal speed || Expansion with speed of light
|-
| Spatial evolution of event horizon || Accelerated expansion with superluminal speed || Expansion of inner surface of massive mass shell with sub-light speed
|-
| Gravitational potential within universe || Constant || Increasing decrease as the distance from the center increases
|-
| Singularities || Points with infinite mass and energy density, event horizonts with infinite gravitational redshift || None
|}
=== Summary ===
The spacetime is not expanding, and it is not curved. It is a system of masses distributed in flat space, whose mutual attraction is so retarded that the resulting trajectories and light signals create the illusion of an expanding geometry that is explained by dark matter and dark energy in the standard model of cosmology.
The cosmology of retarded interaction consistently adheres to physical axioms (classical, relativistic, and retarded potentials). It dispenses with the geometric interpretation (no spatial curvature, no event horizon in the sense of general relativity) and regards everything as the result of forces, masses, and retardation. The dark components and spatial curvature are merely mathematical artifacts that arise when one attempts to describe the retarded force action using differential geometry.
The universe is not viewed as a geometric black hole in the sense of general relativity, but rather as a huge massive and inhomogeneous system whose internal dynamics are governed by retarded potentials.
Cosmology of retarded interaction is based solely on the view that the universe is a mechanical relativistic system with retardation. By introducing differential-geometric paradigms such as the curvature or stretching of spacetime, one departs from the disruptive paradigm of cosmology of retarded interaction and returns to general relativity.
pwe557fd4pwstoioncm5008lvh34jrz
4672218
4672212
2026-09-24T21:16:22Z
Bautsch
630029
<div style="clear:both"></div>
4672218
wikitext
text/x-wiki
<noinclude>
{{Chapter navigation|Gravitational redshift|Conclusion}}
</noinclude>
== Cosmology of retarded interaction ==
Modern astrophysics is based on the general theory of relativity (GR) because it has been confirmed by experiments such as the perihelion precession of Mercury or the detection of gravitational waves. A new model must prove that it also correctly describes all the effects that the general theory of relativity explains geometrically.
To devise a disruptive cosmology that relies solely on classical, relativistic, and retarded gravitational potentials and dispenses with all ad hoc and a priori hypotheses – such as the equivalence principle of general relativity, cosmological constants, dark matter, dark energy, homogeneity, or isotropy – we must return to a dynamic field approach. To this end, the differential geometry required for general relativity can be replaced by a model that relies on pseudo-Euclidean geometry in Minkowski space.
The central challenge is that classical Newtonian gravity acts instantaneously. To construct a consistent cosmology, retarded gravitational potentials can be introduced. This leads to an inherent time dependence and dynamics of the universe without the need to postulate an expansion of spacetime.
In what follows, a draft of the '''cosmology of retarded interaction (CRI)''' is outlined.
=== The axioms of retarded interaction ===
Established physics is based on three pillars, which are used to build the cosmology of retarded interaction:
# '''Classical mechanics:''' The force <math display="inline">F = m \cdot a</math> as the basis of the acceleration <math display="inline">a</math> of a mass <math display="inline">m</math> .
# '''Relativistic kinematics:''' time dilation and length contraction according to the special theory of relativity, but without the curvature of spacetime.
# '''Retarded gravitation:''' The gravitational effect propagates at the speed of light <math display="inline">c</math>. The potential <math display="inline">\Phi</math> at a point <math display="inline">\mathbf {r}</math> at time <math display="inline">t</math> depends on the state of the source at time <math display="inline">t - \Delta t</math>, where <math display="inline">\Delta t = \frac {r} {c}</math>.
=== The mathematical core ===
For the mathematical formulation, the gravitational potential can be substituted into the wave equation:
:<math>\square \Phi = \left( \frac {1} {c^2} \frac {\partial^2} {\partial t^2} - \nabla^2 \right) \Phi = 4\pi G \rho (\vec {r}, t)</math>
To calculate the gravitational potential at a given location <math>\vec {r}</math> at a specific time <math>t</math>, one must not use the current mass distribution <math>\rho (\vec {r}, t)</math>; rather, the mass distribution must be considered at a retarded time <math>t_{ret}</math>:
:<math>t_{ret} = t - \frac {|\vec {r} - \vec {r}'|} {c}</math>
The solution to this wave equation is the retarded potential:
:<math>\Phi (\vec {r}, t) = -G \iiint \frac {\rho (\vec {r}', t_{ret})} {|\vec {r} - \vec {r}'|} d^3r'</math>
In a universe with massive objects, gravity never acts instantaneously but always depends on the mass’s past position. This creates a phase shift between mass and force, as well as an attenuation of the retarded gravitational potentials. Since the particle horizon of a spherical kinematic universe expands at the speed of light in a vacuum, the density depends heavily on the distance from the observer. Observers at the centre see the edges as they were in the past, when the universe was still smaller and denser.
For observers in the centre (<math>\vec {r} = 0</math>) of a mass distribution within a sphere with the radius <math>R</math> the integral above can be simplified with the linear shell mass densities <math>\lambda (r', t)</math> (in kilogram per metre) at their surfaces <math>A'</math>:
:<math>\rho (r', t) = A' \cdot \lambda (r', t) = 4 \pi \cdot r'^2 \cdot \lambda (r', t)</math>
:<math>\Phi (0, t) = -G \iiint \frac {\rho (\vec {r}', t_{ret})} {\vec {r}'} d^3r' = -4\pi G \int\limits_{0}^{R} \frac {\lambda (\vec {r}', t_{ret})} {\vec {r}'} r'^2 dr' = -4\pi G \int\limits_{0}^{R} \lambda (r', t_{ret}) \, r' dr'</math>
The retarded radius <math>R_{ret}</math> of the surface of a sphere at the retarded time <math>t_{ret}</math> that moves away with the speed <math>v</math> is given by:
:<math>R_{ret} (v) = c \cdot t_{ret} = v \left( t - \frac {R_{ret} (v)} {c} \right) = \frac {v \cdot t} {1 + \frac {v} {c}}</math>
The maximum radius <math>R_{obs}</math> that can be experienced by an observer in the centre of the universe is the observable horizon at the retarded time <math>t_{ret}</math> that moved away with speed of light. It is given by the following limit:
:<math>R_{obs} = \lim_{v \to c} R_{ret} (v) = \frac {c \cdot t} {2}</math>
At a certain point in time <math>t_0</math> with a homogeneous mass distribution <math>\rho_0</math>, the retarded mass density <math>\rho_{ret}</math> is given by:
:<math>\rho_{ret} = \rho (r', t_{ret}) = \rho \left( t - \frac {r'} {c} \right) = \rho_0 \cdot \left( \frac {t_0} {t - \frac {r'} {c}}\right)^3</math>
Due to the effect of the retarded potentials the mass distribution becomes increasingly inhomogeneous over time. The gravitational potential in the centre at <math>r \approx 0</math> bocomes more and more flat, and the mass density in the out regions at <math>r \lessapprox R_{obs}</math> becomes higher and higher over time. Furthermore, the the radial velocity component <math>v (r, t)</math> of all mass points is increasing over time as well:
:<math>0 \le v(r, t) \le v(r, t + \Delta t) < c</math> with <math>\Delta t \ge 0</math>
This leads to an accelerated expansion with the acceleration <math>a(r, t)</math>:
:<math>0 \le a(r, t) \le a(r, t + \Delta t)</math>
An time-dependent inhomogenous mass distribution can be expressed by the dimensionless function <math>f (\xi, t_{ret})</math> with the dimensionless parameter <math>\xi</math>:
:<math>\xi = \frac {r'} {c \cdot t_{ret}}</math> with <math>0 \le r' \le R_{ret}</math> and <math>0 \le \xi \le 1</math>
With:
:<math>t_{ret} = \frac {r'} {c \cdot \xi}</math>
The Lorentz factor <math>\gamma</math> can also be taken into account. In special relativity it describes the increased relativistic mass <math>m_{rel} (v)</math> of a particle with the velocity <math>v</math> and the rest mass <math>m_0</math> as well as the increased mass density <math>\rho_{rel} (v)</math> of an appropriate space element with the rest mass density <math>\rho_0</math>:
:<math>\gamma = \frac 1 {\sqrt{1 - \left( \frac{v}{c} \right) ^2}}</math>
:<math>m_{rel} = \gamma \cdot m_0</math>
:<math>\rho_{rel} = \gamma^2 \cdot \rho_0</math>
Then the relativistic and retarded mass density distribution <math>\rho_{ret,rel}</math> is given by the initial shell mass density <math>\lambda_0</math> at the radius <math>r'_0</math> at the time <math>t_0</math>:
:<math>\rho_{ret,rel} = \rho (r', t_{ret}, v) = \gamma^2 \cdot \rho_0 \cdot \left( \frac {t_0} {t - \frac {r'} {c}}\right)^3 \cdot f (\xi, t_{ret}) = \gamma^2 \cdot 4 \pi \cdot {r'_0}^2 \cdot \lambda_0 \cdot \left( \frac {t_0} {t_{ret}}\right)^3 \cdot f (\xi, t_{ret})</math> with <math>t_{ret,0} = \frac {r'_0} {c \cdot \xi}</math>
=== Cosmological mechanisms ===
==== The apparent expansion ====
In general relativity, redshift is a stretching of spacetime. In the cosmology of retarded interaction, it is the result of a dynamic retardation in both time and space.
Since the gravitational effect arrives retarded, the force of mass lags behind. In a system consisting of many particles, this leads to a continuous kinematic shift in their trajectories. When we receive light from distant sources, we do not observe an expansion of spacetime, but rather the cumulative effect of the net gravitational potentials on the propagation of light (gravitational redshift) and the relativistic potentials due to the motion of the source (Doppler redshift).
==== A replacement for dark matter ====
In the standard model of cosmology respectively the Lambda cold dark matter model (Lambda-CDM model or ΛCDM model), the flat rotation curves of galaxies are explained by dark matter which is even changing over time. In the cosmology of retarded interaction, they result from the retarded effect of the baryonic matter accreted by the galaxies.
The stars in the outer regions of a galaxy respond to the gravitational potential of the center as it was millions of years ago. The force does not decrease as <math display="inline">1 / r^2</math> because the time delay generates an additional force component, similar to the Liénard–Wiechert potentials in electrodynamics.
==== A replacement for dark energy ====
In the cosmology of retarded interaction, accelerated expansion is interpreted as a cosmic phenomenon. The retarded gravitational potentials of homogeneously distributed masses – located in a spherical shell outside the sphere’s surface on which a moving test mass rests – lead to an net outward acceleration of the test mass, since masses in front of the test mass cause stronger retarded forces than opposing masses that reach the test mass with attenuated retarded forces.
Consequently, all mass points moving in the universe drift apart at an accelerating rate because the net acting forces, due to the retardation, cause a radially outward acceleration force. As a result, matter in the outer regions of the universe becomes increasingly dense, creating an inhomogeneous mass distribution (black shell) that continuously amplifies the effect of the retarded potentials.
The cosmology of retarded interaction therefore does not align with metric expansion, it only presupposes a static pseudo-Euclidean space. If spacetime itself were expanding, this would call into question or modify the speed of light <math display="inline">c</math> as a constant parameter for the retardation <math display="inline">\Delta t = r/c</math>. The cosmology of retarded interaction would thus actively dispute the thesis of metric expansion and interpret it as an optical illusion.
In the cosmology of retarded interaction, expansion is not necessarily linked to an event such as the Big Bang, but is rather a dynamic process. The retardation of gravity gives rise to inhomogeneity. When moving masses are far enough apart that the time delay <math display="inline">\Delta t</math> effectively weakens and phase-shifts the effect of gravity, the objects begin to drift due to their kinetic motion.
The farther they drift, the larger <math display="inline">\Delta t</math> becomes, and the weaker the retarded forces from the opposite side from the universe become the expansion accelerates without the need for dark energy.
==== The universe as a black hole ====
In general relativity, a black hole is a region of extreme spatial curvature. However, since cosmology of retarded interaction rejects spatial curvature and replaces it with retarded potentials, the concept of a black hole would have to be radically redefined. In cosmology of retarded interaction, a black hole would not be a geometric point, but rather a region of high mass density in which the gravitational potentials are so strong that the escape velocity <math display="inline">v_e \geq c</math> is reached.
If our universe were the interior of such an object, we would find ourselves in a region where the retarded potentials are dominated by a massive external source which is located in the out regions of the universe. This region can be interpreted as a black shell.
Since cosmology of retarded interaction is based on classical potentials, there is no mathematical necessity for a singularity. The retarded effect smooths out extreme gradients over time. A universe-black-hole in cosmology of retarded interaction would thus be more like a gigantic cluster of baryonic matter, within which we find ourselves. The observed physics would then be the superposition of the local forces and the global, retarded pull of the surrounding mass in the black shell.
=== Comparison with the standard model of cosmology ===
[[File:Gravitational.field.in.cosmology.of.retarded.interaction.png|thumb|upright=2|Gravitational field in the '''cosmology of retarded interaction''' within a '''spherical black shell''' of an expanding universe with retarded gravitational potentials:<br/>'''Vector field''' showing the direction of gravitational forces by {{blue|'''blue arrows'''}}.<br/>Corresponding '''scalar potential field''' indicating equipotential lines by {{red|'''red circles'''}}.]]
The cosmology of retarded interaction does not rely on a priori hypotheses or ad hoc assumptions, which are taken for granted in the standard model of cosmology.
{| class="wikitable"
|+ Comparision standard model of cosmology (ΛCDM) and cosmology of retarded interaction (CRI)
|-
! Concept !! Standard model of cosmology (GR / ΛCDM) !! Cosmology of retarded interaction (CRI)
|-
| Principle of equivalence || Hypothesis (general theory of relativity) confirmed on earth within the margins of measurement accuracy || No, gravitation has a scalar potential and its gradient is a force
|-
| Homogeneity || Ad hoc assumption (cosmological principle) || No homogeneity, higher mass and energy densities in outer regions of a kinematic universe
|-
| Isotropy || Ad hoc assumption (cosmological principle) || Only from the centre of a kinematic universe
|-
| Copernican principle || Ad hoc assumption || Milky Way in Local Group near the centre of a kinematic universe
|-
| Dark matter || Ad hoc assumption (non-baryonic particles without electromagnetic interaction) || Effect of retarded gravitational potentials
|-
| Dark energy || Ad hoc assumption (cosmological constant Λ) || Effect of retarded gravitational potentials
|-
| Rotation curves of spiral galaxies || Ad hoc assumption (dark matter) || Retarded gravitational potentials of accreted baryonic matter
|-
| High-redshift objects || Ad hoc assumption (cosmological redshift by expanding spacetime) || Gravitational redshift due to baryonic matter in black shell
|-
| Geometry || Dynamic differential geometry|| Static pseudo-Euclidean geometry
|-
| Spacetime || Curved spacetime || Minkowski spacetime
|-
| Spatial evolution of particle horizon || Accelerated expansion with superluminal speed || Expansion with speed of light
|-
| Spatial evolution of event horizon || Accelerated expansion with superluminal speed || Expansion of inner surface of massive mass shell with sub-light speed
|-
| Gravitational potential within universe || Constant || Increasing decrease as the distance from the center increases
|-
| Singularities || Points with infinite mass and energy density, event horizonts with infinite gravitational redshift || None
|}
=== Summary ===
The spacetime is not expanding, and it is not curved. It is a system of masses distributed in flat space, whose mutual attraction is so retarded that the resulting trajectories and light signals create the illusion of an expanding geometry that is explained by dark matter and dark energy in the standard model of cosmology.
The cosmology of retarded interaction consistently adheres to physical axioms (classical, relativistic, and retarded potentials). It dispenses with the geometric interpretation (no spatial curvature, no event horizon in the sense of general relativity) and regards everything as the result of forces, masses, and retardation. The dark components and spatial curvature are merely mathematical artifacts that arise when one attempts to describe the retarded force action using differential geometry.
The universe is not viewed as a geometric black hole in the sense of general relativity, but rather as a huge massive and inhomogeneous system whose internal dynamics are governed by retarded potentials.
Cosmology of retarded interaction is based solely on the view that the universe is a mechanical relativistic system with retardation. By introducing differential-geometric paradigms such as the curvature or stretching of spacetime, one departs from the disruptive paradigm of cosmology of retarded interaction and returns to general relativity.
<div style="clear:both"></div>
i0vrct7oe8zmwo4vfp4151gfl7ms6y9
Vehicle Identification Numbers (VIN codes)/Jaguar/VIN Codes
0
485791
4672180
4672049
2026-09-24T16:39:00Z
JustTheFacts33
3434282
/* Plant Codes (Position 11) */
4672180
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)
===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)===
* 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)
===Plant Codes (Position 11)===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace)
* 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, I-Pace EV)
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line===
{| 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]]. 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
7x20o85alb0sgbzh3n25h2o5rs6l7du
4672182
4672180
2026-09-24T17:27:05Z
JustTheFacts33
3434282
/* Plant Code/Model Line/Engine (Position 11) */
4672182
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)
===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)===
* 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)
* 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)===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace)
* 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, I-Pace EV)
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line===
{| 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]]. 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
bpq2fb9x0ab9f63hqo7hpp7bpf7ffiy
4672207
4672182
2026-09-24T19:34:35Z
JustTheFacts33
3434282
/* Plant Code/Model Line/Engine (Position 11) */
4672207
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)
===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)===
* 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)
* 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)
* 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)===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace)
* 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, I-Pace EV)
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line===
{| 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]]. 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
gvfvhzgfy8v86fpk60u4aspinrp5p4f
4672209
4672207
2026-09-24T19:43:28Z
JustTheFacts33
3434282
/* Plant Code/Model Line/Engine (Position 11) */
4672209
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)
===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)===
* 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)
* 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)===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace)
* 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, I-Pace EV)
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line===
{| 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]]. 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
jb7m1tb7gzhw50v56mwh0ror001bnfl
4672251
4672209
2026-09-25T01:24:48Z
JustTheFacts33
3434282
/* Plant Code/Model Line/Engine (Position 11) */
4672251
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)
===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)===
* 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) ('11-'12), XJL (5.0) ('11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('11-'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)===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace)
* 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, I-Pace EV)
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line===
{| 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]]. 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
e57o6unzkq3f1hiwk1js90nmhpyfmli
4672279
4672251
2026-09-25T08:43:14Z
JustTheFacts33
3434282
/* Plant Code/Model Line/Engine (Position 11) */
4672279
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)
===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) ('11-'12), XJL (5.0) ('11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('11-'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)===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace)
* 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, I-Pace EV)
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line===
{| 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]]. 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
faiuuwvwh2mfd61crw1lekachifgtby
4672280
4672279
2026-09-25T08:47:48Z
JustTheFacts33
3434282
/* Plant Codes (Position 11) */
4672280
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)
===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) ('11-'12), XJL (5.0) ('11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('11-'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)
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line===
{| 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]]. 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
9c228njk1yol6yo20em52l58q7gplp9
4672287
4672280
2026-09-25T09:32:11Z
JustTheFacts33
3434282
/* Plant Codes (Position 11) */
4672287
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)
===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) ('11-'12), XJL (5.0) ('11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('11-'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)
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line===
{| 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]]. 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 - XJS
** 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
fi08t7778f0dsg3i58qr0tssgsx6ppl
4672288
4672287
2026-09-25T09:33:15Z
JustTheFacts33
3434282
/* Plant Codes (Position 11) 2016-2026 */
4672288
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)
===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) ('11-'12), XJL (5.0) ('11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('11-'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)
'''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===
{| 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]]. 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 - XJS
** 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
q2qmy0kk8bm822ttd57e1m1iuyy2zhn
4672289
4672288
2026-09-25T09:33:39Z
JustTheFacts33
3434282
/* Plant Codes (Position 11) */
4672289
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)
===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) ('11-'12), XJL (5.0) ('11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('11-'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)
'''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===
{| 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]]. 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 - XJS
** 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
ffs9018pjdvmxkoxr5nljt0cv4h4xi7
4672296
4672289
2026-09-25T10:06:37Z
JustTheFacts33
3434282
/* Plant Codes (Position 11) 2016-2026 */
4672296
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)
===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) ('11-'12), XJL (5.0) ('11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('11-'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)===
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('11-'16)
* W - XJ ('16-'19)
'''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===
{| 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]]. 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 - XJS
** 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
shuviuwv0m2n6u906zxbkbzom093xvv
Scratch/Toolbar
0
485800
4672136
4671927
2026-09-24T12:21:22Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672136
wikitext
text/x-wiki
{{Underconstruction}}
The '''top bar''' of Scratch is where it is possible to adjust the interface of Scratch, change the language, as well as being able to change various other aspects of the Scratch interface. The top bar varies between versions.
==Scratch 1.4==
In Scratch 1.4, on the top bar, the following functions are available:
Language - To change the language of Scratch, it is possible by clicking the globe icon and selecting a language.
==Scratch 2.0==
==Scratch 3.0==
{{BookCat}}
g7wwsp1or6flgg27my9g3s6wjs27phw
Cookbook:Family Pizza
102
485811
4672252
4672045
2026-09-25T02:01:39Z
Kittycataclysm
3371989
style, format, language, links
4672252
wikitext
text/x-wiki
{{recipe summary
| servings = 4
| time =
| difficulty = 3
| image = [[File:Préparation d'une pizza maison, mars 2020 (025).jpg|300px]]
| energy = <!-- Should if provided contain the number of calories and cal (can include kJ)-->
| note =
}}{{recipe}}
'''Pizza''' is a traditional Italian dish, and this one combines ham with two varieties of cheese.
== Ingredients ==
===Dough===
* 180 [[Cookbook:Milliliter|ml]] warm water
* 1 tsp [[Cookbook:Sugar|granulated sugar]]
* ⅔ sachet of [[Cookbook:Yeast|baker's yeast]]
* 1 [[Cookbook:Teaspoon|tsp]] [[Cookbook:Salt|salt]]
* 330 [[Cookbook:Gram|g]] [[Cookbook:Flour|flour]]
* 1 [[Cookbook:Tablespoon|tbsp]] [[Cookbook:Olive Oil|olive oil]]
===Topping===
* 5 generous tbsp tomato sauce
* 6 slices prosciutto cotto (cooked Italian [[Cookbook:Ham|ham]], or equivalent)
* 1 ball buffalo [[Cookbook:Mozzarella Cheese|mozzarella]], [[Cookbook:Dice|diced]]
* 40 g [[Cookbook:Emmental Cheese|Emmental]], grated
== Procedure ==
# Combine the warm water, sugar, yeast, and salt in a jug, mixing well to ensure the yeast is distributed. Allow the mixture to rest for 3–4 minutes to activate the yeast.
# Pour the flour in a bowl or a salad bowl, then stir in the yeast mixture. Mix, then [[Cookbook:Knead|knead]] well until you get a smooth dough that doesn't stick to your hands. If the dough is too sticky after a few minutes of kneading, try kneading in a little more flour.
# Add the olive oil, and knead again until smooth.
# Cover the dough with a damp cloth, and let the dough rest for around 20 min.
# Briefly knead again, then [[Cookbook:Dough#Rolling|roll]] the dough out with a [[Cookbook:Rolling Pin|rolling pin]] until thin. Transfer to a [[Cookbook:Baking Sheet|baking sheet]].
# Spread the tomato sauce over the dough, then top with the ham slices, arranging them closely together.
# Scatter the mozzarella then the Emmental cheese over the ham.
# [[Cookbook:Baking|Bake]] at 180°C (356°F) for 15 minutes.
==Gallery==
<gallery mode="packed" heights="180">
File:Préparation d'une pizza maison, mars 2020 (004).jpg|Yeast mixture
File:Préparation d'une pizza maison, mars 2020 (005).jpg| Combining the yeast mixture with the flour.
File:Préparation d'une pizza maison, mars 2020 (006).jpg| Smooth dough after kneading
File:Préparation d'une pizza maison, mars 2020 (009).jpg| Dough resting under a cloth
File:Préparation d'une pizza maison, mars 2020 (015).jpg|Dough base on a baking sheet
File:Préparation d'une pizza maison, mars 2020 (018).jpg| Adding the tomato sauce
File:Préparation d'une pizza maison, mars 2020 (019).jpg| Topping with ham
File:Préparation d'une pizza maison, mars 2020 (024).jpg| Topping with cheeses
</gallery>
[[Category:Recipes for pizza]]
[[Category:Recipes using emmental]]
[[Category:Recipes using mozzarella]]
[[Category:Recipes using yeast]]
[[Category:Recipes using flour]]
[[fr:Livre de cuisine/Pizza familiale]]
[[Category:Recipes using salt]]
[[Category:Recipes using sugar]]
[[Category:Recipes using olive oil]]
[[Category:Recipes using ham]]
ibpg4n1aie0jizw9hpegyytp9afzfx8
4672253
4672252
2026-09-25T02:02:07Z
Kittycataclysm
3371989
notoc
4672253
wikitext
text/x-wiki
__NOTOC__
{{recipe summary
| servings = 4
| time =
| difficulty = 3
| image = [[File:Préparation d'une pizza maison, mars 2020 (025).jpg|300px]]
| energy = <!-- Should if provided contain the number of calories and cal (can include kJ)-->
| note =
}}{{recipe}}
'''Pizza''' is a traditional Italian dish, and this one combines ham with two varieties of cheese.
== Ingredients ==
===Dough===
* 180 [[Cookbook:Milliliter|ml]] warm water
* 1 tsp [[Cookbook:Sugar|granulated sugar]]
* ⅔ sachet of [[Cookbook:Yeast|baker's yeast]]
* 1 [[Cookbook:Teaspoon|tsp]] [[Cookbook:Salt|salt]]
* 330 [[Cookbook:Gram|g]] [[Cookbook:Flour|flour]]
* 1 [[Cookbook:Tablespoon|tbsp]] [[Cookbook:Olive Oil|olive oil]]
===Topping===
* 5 generous tbsp tomato sauce
* 6 slices prosciutto cotto (cooked Italian [[Cookbook:Ham|ham]], or equivalent)
* 1 ball buffalo [[Cookbook:Mozzarella Cheese|mozzarella]], [[Cookbook:Dice|diced]]
* 40 g [[Cookbook:Emmental Cheese|Emmental]], grated
== Procedure ==
# Combine the warm water, sugar, yeast, and salt in a jug, mixing well to ensure the yeast is distributed. Allow the mixture to rest for 3–4 minutes to activate the yeast.
# Pour the flour in a bowl or a salad bowl, then stir in the yeast mixture. Mix, then [[Cookbook:Knead|knead]] well until you get a smooth dough that doesn't stick to your hands. If the dough is too sticky after a few minutes of kneading, try kneading in a little more flour.
# Add the olive oil, and knead again until smooth.
# Cover the dough with a damp cloth, and let the dough rest for around 20 min.
# Briefly knead again, then [[Cookbook:Dough#Rolling|roll]] the dough out with a [[Cookbook:Rolling Pin|rolling pin]] until thin. Transfer to a [[Cookbook:Baking Sheet|baking sheet]].
# Spread the tomato sauce over the dough, then top with the ham slices, arranging them closely together.
# Scatter the mozzarella then the Emmental cheese over the ham.
# [[Cookbook:Baking|Bake]] at 180°C (356°F) for 15 minutes.
==Gallery==
<gallery mode="packed" heights="180">
File:Préparation d'une pizza maison, mars 2020 (004).jpg|Yeast mixture
File:Préparation d'une pizza maison, mars 2020 (005).jpg| Combining the yeast mixture with the flour.
File:Préparation d'une pizza maison, mars 2020 (006).jpg| Smooth dough after kneading
File:Préparation d'une pizza maison, mars 2020 (009).jpg| Dough resting under a cloth
File:Préparation d'une pizza maison, mars 2020 (015).jpg|Dough base on a baking sheet
File:Préparation d'une pizza maison, mars 2020 (018).jpg| Adding the tomato sauce
File:Préparation d'une pizza maison, mars 2020 (019).jpg| Topping with ham
File:Préparation d'une pizza maison, mars 2020 (024).jpg| Topping with cheeses
</gallery>
[[Category:Recipes for pizza]]
[[Category:Recipes using emmental]]
[[Category:Recipes using mozzarella]]
[[Category:Recipes using yeast]]
[[Category:Recipes using flour]]
[[fr:Livre de cuisine/Pizza familiale]]
[[Category:Recipes using salt]]
[[Category:Recipes using sugar]]
[[Category:Recipes using olive oil]]
[[Category:Recipes using ham]]
ho9ixkn3jyeekc2wsbyd5p0f0lkaz58
4672261
4672253
2026-09-25T04:29:53Z
TechVindicator
3626296
/* Procedure */
4672261
wikitext
text/x-wiki
__NOTOC__
{{recipe summary
| servings = 4
| time =
| difficulty = 3
| image = [[File:Préparation d'une pizza maison, mars 2020 (025).jpg|300px]]
| energy = <!-- Should if provided contain the number of calories and cal (can include kJ)-->
| note =
}}{{recipe}}
'''Pizza''' is a traditional Italian dish, and this one combines ham with two varieties of cheese.
== Ingredients ==
===Dough===
* 180 [[Cookbook:Milliliter|ml]] warm water
* 1 tsp [[Cookbook:Sugar|granulated sugar]]
* ⅔ sachet of [[Cookbook:Yeast|baker's yeast]]
* 1 [[Cookbook:Teaspoon|tsp]] [[Cookbook:Salt|salt]]
* 330 [[Cookbook:Gram|g]] [[Cookbook:Flour|flour]]
* 1 [[Cookbook:Tablespoon|tbsp]] [[Cookbook:Olive Oil|olive oil]]
===Topping===
* 5 generous tbsp tomato sauce
* 6 slices prosciutto cotto (cooked Italian [[Cookbook:Ham|ham]], or equivalent)
* 1 ball buffalo [[Cookbook:Mozzarella Cheese|mozzarella]], [[Cookbook:Dice|diced]]
* 40 g [[Cookbook:Emmental Cheese|Emmental]], grated
== Method ==
# Combine the warm water, sugar, yeast, and salt in a jug, mixing well to ensure the yeast is distributed. Allow the mixture to rest for 3–4 minutes to activate the yeast.
# Pour the flour in a bowl or a salad bowl, then stir in the yeast mixture. Mix, then [[Cookbook:Knead|knead]] well until you get a smooth dough that doesn't stick to your hands. If the dough is too sticky after a few minutes of kneading, try kneading in a little more flour.
# Add the olive oil, and knead again until smooth.
# Cover the dough with a damp cloth, and let the dough rest for around 20 min.
# Briefly knead again, then [[Cookbook:Dough#Rolling|roll]] the dough out with a [[Cookbook:Rolling Pin|rolling pin]] until thin. Transfer to a [[Cookbook:Baking Sheet|baking sheet]].
# Spread the tomato sauce over the dough, then top with the ham slices, arranging them closely together.
# Scatter the mozzarella then the Emmental cheese over the ham.
# [[Cookbook:Baking|Bake]] at 180°C (356°F) for 15 minutes.
==Gallery==
<gallery mode="packed" heights="180">
File:Préparation d'une pizza maison, mars 2020 (004).jpg|Yeast mixture
File:Préparation d'une pizza maison, mars 2020 (005).jpg| Combining the yeast mixture with the flour.
File:Préparation d'une pizza maison, mars 2020 (006).jpg| Smooth dough after kneading
File:Préparation d'une pizza maison, mars 2020 (009).jpg| Dough resting under a cloth
File:Préparation d'une pizza maison, mars 2020 (015).jpg|Dough base on a baking sheet
File:Préparation d'une pizza maison, mars 2020 (018).jpg| Adding the tomato sauce
File:Préparation d'une pizza maison, mars 2020 (019).jpg| Topping with ham
File:Préparation d'une pizza maison, mars 2020 (024).jpg| Topping with cheeses
</gallery>
[[Category:Recipes for pizza]]
[[Category:Recipes using emmental]]
[[Category:Recipes using mozzarella]]
[[Category:Recipes using yeast]]
[[Category:Recipes using flour]]
[[fr:Livre de cuisine/Pizza familiale]]
[[Category:Recipes using salt]]
[[Category:Recipes using sugar]]
[[Category:Recipes using olive oil]]
[[Category:Recipes using ham]]
aq6il9awfhc87mggcx8c93aexxy3we8
Active Directory Security and Penetration Testing
0
485819
4672126
4672039
2026-09-24T12:18:34Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672126
wikitext
text/x-wiki
{{Wikibook|title=Active Directory Security and Penetration Testing|image=|status=C (Substantial content)|subject=IT Security|level=Intermediate to Advanced|required=Basic networking knowledge, Linux/Windows command line}}
== Welcome ==
This wikibook provides a comprehensive guide to '''Active Directory (AD) penetration testing''', with a focus on the '''ADPenTest''' framework—a powerful Python-based tool for automated AD security assessments.
Whether you're a security professional preparing for real-world engagements, a penetration tester looking to streamline your workflow, or a student learning AD attack vectors, this book will guide you through:
* {{color box|lightblue|'''Foundational concepts'''}} of Active Directory architecture and security
* {{color box|lightblue|'''ADPenTest framework'''}} installation, configuration, and usage
* {{color box|lightblue|'''Attack vectors'''}} including Kerberoasting, ADCS exploitation, and privilege escalation
* {{color box|lightblue|'''Defensive measures'''}} to detect and mitigate AD-based attacks
* {{color box|lightblue|'''Real-world case studies'''}} and practical hands-on exercises
== Table of Contents ==
[[Active Directory Security and Penetration Testing/Part 1 - Foundations|Part 1: Foundations]]
* [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
* [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
* [[Active Directory Security and Penetration Testing/Chapter 3 - Lab Setup and Prerequisites|Chapter 3: Lab Setup and Prerequisites]]
[[Active Directory Security and Penetration Testing/Chapter 4 - Introduction to ADPenTest|Part 2: ADPenTest Framework]]
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
[[Active Directory Security and Penetration Testing/Part 3 - Attack Vectors|Part 3: Attack Vectors & Exploitation]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [[Active Directory Security and Penetration Testing/Chapter 10 - ADCS Exploitation|Chapter 10: ADCS Exploitation]]
* [[Active Directory Security and Penetration Testing/Chapter 11 - Privilege Escalation|Chapter 11: Privilege Escalation]]
* [[Active Directory Security and Penetration Testing/Chapter 12 - Persistence Mechanisms|Chapter 12: Persistence Mechanisms]]
[[Active Directory Security and Penetration Testing/Part 4 - CVE Scanning|Part 4: CVE Scanning & Vulnerability Detection]]
* [[Active Directory Security and Penetration Testing/Chapter 13 - Built-in CVE Scanners|Chapter 13: Built-in CVE Scanners]]
* [[Active Directory Security and Penetration Testing/Chapter 14 - Scan Results and Reporting|Chapter 14: Scan Results and Reporting]]
[[Active Directory Security and Penetration Testing/Part 5 - Advanced Topics|Part 5: Advanced Topics]]
* [[Active Directory Security and Penetration Testing/Chapter 15 - Custom Tool Integration|Chapter 15: Custom Tool Integration]]
* [[Active Directory Security and Penetration Testing/Chapter 16 - Performance Optimization|Chapter 16: Performance Optimization]]
* [[Active Directory Security and Penetration Testing/Chapter 17 - Defensive Measures|Chapter 17: Defensive Measures & Hardening]]
* [[Active Directory Security and Penetration Testing/Chapter 18 - Case Studies|Chapter 18: Case Studies & Real-World Scenarios]]
== Quick Start ==
{{Note|Before using ADPenTest, ensure you have proper authorization from the system owner. Unauthorized access is illegal.}}
To get started quickly:<syntaxhighlight lang="bash">
# Install ADPenTest
pip install adpentest
# Run your first scan (dry-run mode by default)
adpentest --target corp.local
# Execute scan with authorization
adpentest --target corp.local --scope-confirmed
# View scan history
adpentest --history
# Generate CVE report
adpentest --cve-report
</syntaxhighlight>See [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6]] for detailed usage instructions.
== Key Features of ADPenTest ==
{| class="wikitable"
!Feature
!Description
|-
|'''Multi-threaded Execution'''
|35+ integrated tools running in parallel for 10-15x speedup
|-
|'''Automated DC Discovery'''
|DNS SRV records, LDAP probes, port fingerprinting
|-
|'''CVE Scanning'''
|7 built-in scanners for critical AD vulnerabilities (CVSS 7.5-9.4)
|-
|'''WAF Bypass Engine'''
|Techniques for testing behind firewalls (LDAP/Kerberos over raw protocols)
|-
|'''Persistent History'''
|SQLite database of all scan results for trend analysis
|-
|'''Safety-First Design'''
|Dry-run by default, requires explicit authorization flags
|}
== Prerequisites ==
* {{colorbox|lightyellow|Python 3.8 or higher}}
* {{colorbox|lightyellow|Linux or Windows system}}
* {{colorbox|lightyellow|Network access to target Active Directory}}
* {{colorbox|lightyellow|Proper authorization/scope agreement}}
* {{colorbox|lightyellow|Understanding of AD fundamentals}}
== How to Use This Book ==
This wikibook is designed to be read in order, but you can jump to specific chapters:
* '''Beginners:''' Start with [[Active Directory Security and Penetration Testing/Part 1 - Foundations|Part 1: Foundations]]
* '''Intermediate:''' Jump to [[Active Directory Security and Penetration Testing/Part 2 - ADPenTest Framework|Part 2: ADPenTest Framework]]
* '''Advanced:''' Explore [[Active Directory Security and Penetration Testing/Part 5 - Advanced Topics|Part 5: Advanced Topics]]
* '''Reference:''' Use the {{colorbox|lightgray|Appendices}} for quick lookups
Each chapter includes:
* Clear learning objectives
* Hands-on exercises
* Real-world examples
* Knowledge checks
* Further reading links
== Legal & Ethical Notice ==
{{Important|This wikibook covers penetration testing techniques that should ''only'' be used on systems you own or have explicit written permission to test. Unauthorized access to computer systems is illegal in most jurisdictions.}}Always:
* Obtain proper authorization in writing
* Define scope clearly with the system owner
* Follow responsible disclosure practices
* Report vulnerabilities ethically
See [[Active Directory Security and Penetration Testing/Legal and Ethical Considerations|Legal & Ethical Considerations]] for more details.
== Related Resources ==
* [[En.wikipedia:Active Directory|Wikipedia: Active Directory]]
* [[En.wikipedia:Penetration testing|Wikipedia: Penetration Testing]]
* [[github:netanelcyber/AdPentestAI-Python|ADPenTest GitHub Repository]]
* [https://pypi.org/project/adpentest/ ADPenTest on PyPI]
* [[En.wikibooks:Category:IT Security|IT Security Category]]
== License ==
This wikibook is licensed under the {{color box|lightgreen|Creative Commons Attribution-ShareAlike License (CC-BY-SA 4.0)}}
---
{{BookCat}}
khz6m2pugncwg9xvmn5ywbcof8u37vw
4672164
4672126
2026-09-24T15:32:21Z
Kittycataclysm
3371989
Making [[WB:Requests for deletion|deletion request]]
4672164
wikitext
text/x-wiki
<noinclude>{{Rfd|example=false}}</noinclude>
{{Wikibook|title=Active Directory Security and Penetration Testing|image=|status=C (Substantial content)|subject=IT Security|level=Intermediate to Advanced|required=Basic networking knowledge, Linux/Windows command line}}
== Welcome ==
This wikibook provides a comprehensive guide to '''Active Directory (AD) penetration testing''', with a focus on the '''ADPenTest''' framework—a powerful Python-based tool for automated AD security assessments.
Whether you're a security professional preparing for real-world engagements, a penetration tester looking to streamline your workflow, or a student learning AD attack vectors, this book will guide you through:
* {{color box|lightblue|'''Foundational concepts'''}} of Active Directory architecture and security
* {{color box|lightblue|'''ADPenTest framework'''}} installation, configuration, and usage
* {{color box|lightblue|'''Attack vectors'''}} including Kerberoasting, ADCS exploitation, and privilege escalation
* {{color box|lightblue|'''Defensive measures'''}} to detect and mitigate AD-based attacks
* {{color box|lightblue|'''Real-world case studies'''}} and practical hands-on exercises
== Table of Contents ==
[[Active Directory Security and Penetration Testing/Part 1 - Foundations|Part 1: Foundations]]
* [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
* [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
* [[Active Directory Security and Penetration Testing/Chapter 3 - Lab Setup and Prerequisites|Chapter 3: Lab Setup and Prerequisites]]
[[Active Directory Security and Penetration Testing/Chapter 4 - Introduction to ADPenTest|Part 2: ADPenTest Framework]]
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
[[Active Directory Security and Penetration Testing/Part 3 - Attack Vectors|Part 3: Attack Vectors & Exploitation]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [[Active Directory Security and Penetration Testing/Chapter 10 - ADCS Exploitation|Chapter 10: ADCS Exploitation]]
* [[Active Directory Security and Penetration Testing/Chapter 11 - Privilege Escalation|Chapter 11: Privilege Escalation]]
* [[Active Directory Security and Penetration Testing/Chapter 12 - Persistence Mechanisms|Chapter 12: Persistence Mechanisms]]
[[Active Directory Security and Penetration Testing/Part 4 - CVE Scanning|Part 4: CVE Scanning & Vulnerability Detection]]
* [[Active Directory Security and Penetration Testing/Chapter 13 - Built-in CVE Scanners|Chapter 13: Built-in CVE Scanners]]
* [[Active Directory Security and Penetration Testing/Chapter 14 - Scan Results and Reporting|Chapter 14: Scan Results and Reporting]]
[[Active Directory Security and Penetration Testing/Part 5 - Advanced Topics|Part 5: Advanced Topics]]
* [[Active Directory Security and Penetration Testing/Chapter 15 - Custom Tool Integration|Chapter 15: Custom Tool Integration]]
* [[Active Directory Security and Penetration Testing/Chapter 16 - Performance Optimization|Chapter 16: Performance Optimization]]
* [[Active Directory Security and Penetration Testing/Chapter 17 - Defensive Measures|Chapter 17: Defensive Measures & Hardening]]
* [[Active Directory Security and Penetration Testing/Chapter 18 - Case Studies|Chapter 18: Case Studies & Real-World Scenarios]]
== Quick Start ==
{{Note|Before using ADPenTest, ensure you have proper authorization from the system owner. Unauthorized access is illegal.}}
To get started quickly:<syntaxhighlight lang="bash">
# Install ADPenTest
pip install adpentest
# Run your first scan (dry-run mode by default)
adpentest --target corp.local
# Execute scan with authorization
adpentest --target corp.local --scope-confirmed
# View scan history
adpentest --history
# Generate CVE report
adpentest --cve-report
</syntaxhighlight>See [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6]] for detailed usage instructions.
== Key Features of ADPenTest ==
{| class="wikitable"
!Feature
!Description
|-
|'''Multi-threaded Execution'''
|35+ integrated tools running in parallel for 10-15x speedup
|-
|'''Automated DC Discovery'''
|DNS SRV records, LDAP probes, port fingerprinting
|-
|'''CVE Scanning'''
|7 built-in scanners for critical AD vulnerabilities (CVSS 7.5-9.4)
|-
|'''WAF Bypass Engine'''
|Techniques for testing behind firewalls (LDAP/Kerberos over raw protocols)
|-
|'''Persistent History'''
|SQLite database of all scan results for trend analysis
|-
|'''Safety-First Design'''
|Dry-run by default, requires explicit authorization flags
|}
== Prerequisites ==
* {{colorbox|lightyellow|Python 3.8 or higher}}
* {{colorbox|lightyellow|Linux or Windows system}}
* {{colorbox|lightyellow|Network access to target Active Directory}}
* {{colorbox|lightyellow|Proper authorization/scope agreement}}
* {{colorbox|lightyellow|Understanding of AD fundamentals}}
== How to Use This Book ==
This wikibook is designed to be read in order, but you can jump to specific chapters:
* '''Beginners:''' Start with [[Active Directory Security and Penetration Testing/Part 1 - Foundations|Part 1: Foundations]]
* '''Intermediate:''' Jump to [[Active Directory Security and Penetration Testing/Part 2 - ADPenTest Framework|Part 2: ADPenTest Framework]]
* '''Advanced:''' Explore [[Active Directory Security and Penetration Testing/Part 5 - Advanced Topics|Part 5: Advanced Topics]]
* '''Reference:''' Use the {{colorbox|lightgray|Appendices}} for quick lookups
Each chapter includes:
* Clear learning objectives
* Hands-on exercises
* Real-world examples
* Knowledge checks
* Further reading links
== Legal & Ethical Notice ==
{{Important|This wikibook covers penetration testing techniques that should ''only'' be used on systems you own or have explicit written permission to test. Unauthorized access to computer systems is illegal in most jurisdictions.}}Always:
* Obtain proper authorization in writing
* Define scope clearly with the system owner
* Follow responsible disclosure practices
* Report vulnerabilities ethically
See [[Active Directory Security and Penetration Testing/Legal and Ethical Considerations|Legal & Ethical Considerations]] for more details.
== Related Resources ==
* [[En.wikipedia:Active Directory|Wikipedia: Active Directory]]
* [[En.wikipedia:Penetration testing|Wikipedia: Penetration Testing]]
* [[github:netanelcyber/AdPentestAI-Python|ADPenTest GitHub Repository]]
* [https://pypi.org/project/adpentest/ ADPenTest on PyPI]
* [[En.wikibooks:Category:IT Security|IT Security Category]]
== License ==
This wikibook is licensed under the {{color box|lightgreen|Creative Commons Attribution-ShareAlike License (CC-BY-SA 4.0)}}
---
{{BookCat}}
1oq0xuzsywt0vhos1epsz9ewxz1dd65
Active Directory Security and Penetration Testing/Part 1 - Foundations
0
485820
4672125
4672022
2026-09-24T12:18:29Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672125
wikitext
text/x-wiki
== Part 1: Foundations ==
This part covers the foundational knowledge needed for Active Directory penetration testing. You'll learn about AD architecture, basic security concepts, and how to set up your testing environment.
=== What You'll Learn ===
* How Active Directory is structured and organized
* Basic penetration testing methodology and phases
* How to set up a lab environment for safe testing
* Key security concepts specific to AD
* Tools and prerequisites needed for testing
=== Chapters in This Part ===
* [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
Learn how Active Directory works, including domains, trusts, organizational units, and group policy fundamentals.
* [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
Understand the penetration testing methodology, attack phases, and how they apply to AD environments.
* [[Active Directory Security and Penetration Testing/Chapter 3 - Lab Setup and Prerequisites|Chapter 3: Lab Setup and Prerequisites]]
Set up your testing environment safely, including lab network configuration and tool installation.
=== Prerequisites ===
* Basic understanding of networking (TCP/IP, DNS)
* Familiarity with Windows and Linux command-line interfaces
* Understanding of basic authentication concepts
=== Estimated Time ===
Plan for 6-10 hours to complete this part.
=== Next Steps ===
After completing Part 1, proceed to [[Active Directory Security and Penetration Testing/Part 2 - ADPenTest Framework|Part 2: ADPenTest Framework]].
---
[[Category:Active Directory Security and Penetration Testing]]
{{BookCat}}
afzd68j0w9mjd0cvf9kl3ktjnpfloya
4672128
4672125
2026-09-24T12:19:38Z
MathXplore
3097823
removed [[Category:Active Directory Security and Penetration Testing]] using [[Help:Gadget-HotCat|HotCat]]
4672128
wikitext
text/x-wiki
== Part 1: Foundations ==
This part covers the foundational knowledge needed for Active Directory penetration testing. You'll learn about AD architecture, basic security concepts, and how to set up your testing environment.
=== What You'll Learn ===
* How Active Directory is structured and organized
* Basic penetration testing methodology and phases
* How to set up a lab environment for safe testing
* Key security concepts specific to AD
* Tools and prerequisites needed for testing
=== Chapters in This Part ===
* [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
Learn how Active Directory works, including domains, trusts, organizational units, and group policy fundamentals.
* [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
Understand the penetration testing methodology, attack phases, and how they apply to AD environments.
* [[Active Directory Security and Penetration Testing/Chapter 3 - Lab Setup and Prerequisites|Chapter 3: Lab Setup and Prerequisites]]
Set up your testing environment safely, including lab network configuration and tool installation.
=== Prerequisites ===
* Basic understanding of networking (TCP/IP, DNS)
* Familiarity with Windows and Linux command-line interfaces
* Understanding of basic authentication concepts
=== Estimated Time ===
Plan for 6-10 hours to complete this part.
=== Next Steps ===
After completing Part 1, proceed to [[Active Directory Security and Penetration Testing/Part 2 - ADPenTest Framework|Part 2: ADPenTest Framework]].
---
{{BookCat}}
7gi1jzyz2dgm6w0ylsz7yhj68fkwdb5
Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics
0
485821
4672124
4672025
2026-09-24T12:18:27Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672124
wikitext
text/x-wiki
== Chapter 1: Active Directory Basics ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What Active Directory is and its role in enterprise IT
* The hierarchical structure of AD domains and forests
* Key AD components and their functions
* Trust relationships and how they work
* Organizational Units (OUs) and Group Policy
* Security principals and access control in AD
* Why AD is a common penetration testing target
=== Prerequisites ===
* Basic understanding of networking (TCP/IP, DNS)
* Familiarity with Windows server concepts
* Understanding of user authentication basics
* No prior AD experience required
---
=== Introduction to Active Directory ===
'''Active Directory (AD)''' is Microsoft's centralized directory service for managing users, computers, and resources in an enterprise network. It serves as the backbone of most corporate IT environments, making it both a critical asset and a high-value target for penetration testing.
==== Why Active Directory Matters ====
Active Directory is used by approximately 90% of Fortune 500 companies and controls:
* {{color box|lightblue|User authentication}} - Credentials and access control
* {{color box|lightblue|Device management}} - Computer configurations and security policies
* {{color box|lightblue|Resource access}} - File shares, printers, and applications
* {{color box|lightblue|Security policies}} - Group Policy enforcement
* {{color box|lightblue|Enterprise infrastructure}} - DNS, DHCP, and certificate services
{{Important|Understanding AD architecture is critical for penetration testers because compromise of AD often means compromise of the entire enterprise.}}
---
=== Active Directory Architecture ===
==== Core Components ===
AD consists of several interconnected components:
===== 1. Domain =====
A '''domain''' is the basic administrative unit in Active Directory.
* Contains users, computers, and other resources
* Has a unique name (e.g., corp.local, example.com)
* Managed by Domain Controllers (DCs)
* Contains a directory database with all security information
* Enforces security policies across member computers
Example domain structure:
<syntaxhighlight lang="text">
corp.local (Domain)
├─ Users (1,000+ user accounts)
├─ Computers (500+ computer accounts)
├─ Groups (security and distribution groups)
├─ Printers, File Shares, Applications
└─ Group Policy Objects (GPOs)
</syntaxhighlight>
===== 2. Forest =====
A '''forest''' is a collection of domains that share a common schema and trust relationship.
* Multiple domains can be in a single forest
* Domains share a common Global Catalog
* Transitive trusts between domains
* Single schema for the entire forest
* Single Enterprise forest root domain
Example:
<syntaxhighlight lang="text">
Example.com Forest
├─ example.com (root domain)
│ ├─ DC1.example.com
│ └─ DC2.example.com
├─ sales.example.com (child domain)
│ ├─ DC1.sales.example.com
│ └─ DC2.sales.example.com
└─ engineering.example.com (child domain)
├─ DC1.engineering.example.com
└─ DC2.engineering.example.com
</syntaxhighlight>
===== 3. Domain Controllers (DCs) =====
'''Domain Controllers''' are servers running Active Directory Domain Services (AD DS).
Key responsibilities:
* Authenticate user logons
* Store the directory database
* Replicate AD data to other DCs
* Enforce security policies
* Serve Kerberos tickets
* Manage DNS and LDAP services
{{Note|Every domain has at least one Domain Controller, but most enterprises have 2+ for redundancy and load balancing.}}
===== 4. Organizational Units (OUs) =====
'''Organizational Units''' are containers used to organize AD objects hierarchically.
* Group users, computers, and other objects
* Apply Group Policy to specific OUs
* Delegate administrative permissions
* Reflect organizational structure
Example OU hierarchy:
<syntaxhighlight lang="text">
corp.local
├─ Departments
│ ├─ Engineering
│ │ ├─ Servers
│ │ ├─ Workstations
│ │ └─ Users
│ ├─ Finance
│ │ ├─ Servers
│ │ └─ Users
│ └─ Marketing
├─ Locations
│ ├─ New York
│ ├─ London
│ └─ Tokyo
└─ Service Accounts
├─ Application Accounts
└─ Service Accounts
</syntaxhighlight>
===== 5. Schema =====
The '''schema''' defines the structure and attributes of all objects in Active Directory.
* Defines object types (users, computers, groups)
* Specifies allowed attributes for each object
* Enforced across the entire forest
* Rarely modified in production environments
{{Warning|Schema modifications can affect the entire forest and should only be done by experienced administrators.}}
---
=== Security Principals ===
A '''security principal''' is any object in Active Directory that can be assigned permissions. The main types are:
==== Users ====
User accounts represent people who log into the network.
* Individual identity and credentials
* Associated with a SID (Security Identifier)
* Can own resources and have group memberships
* Subject to password policies
* Can be enabled/disabled
<syntaxhighlight lang="text">
User Account Properties:
├─ Username (samAccountName)
├─ Full Name (displayName)
├─ Password (hashed)
├─ Home Folder
├─ Email Address
├─ Department
├─ Manager
├─ Phone Number
└─ Group Memberships
</syntaxhighlight>
==== Computers ====
Computer accounts represent physical or virtual machines on the network.
* One account per computer
* Authenticates to the domain
* Has its own password (managed by Windows)
* Subject to Group Policy
* Can be members of groups
{{Note|Computer accounts are often overlooked in security assessments but can be valuable penetration testing targets.}}
==== Groups ====
Groups are containers for organizing security principals.
'''Security Groups:'''
* Used for assigning permissions to resources
* Can have users, computers, and other groups as members
* Types: Global, Domain Local, Universal
'''Distribution Groups:'''
* Used for email distribution lists
* Not used for access control
* Cannot be used in ACLs (Access Control Lists)
Examples:
<syntaxhighlight lang="text">
Security Groups:
├─ Domain Admins (highest privilege)
├─ Enterprise Admins (forest-wide privilege)
├─ Server Operators (server management)
├─ Backup Operators (backup permissions)
└─ Custom Groups (application-specific)
Distribution Groups:
├─ All Company
├─ Engineering Team
└─ Finance Department
</syntaxhighlight>
==== Service Accounts ====
Service accounts are special accounts used by applications and services.
* Run Windows services
* Often have high privileges
* Passwords stored in plaintext in service configuration
* Commonly overlooked in security audits
{{Important|Service accounts are frequently weak points in AD security. Many service accounts have overly broad permissions or weak passwords.}}
---
=== Active Directory Trusts ===
'''Trusts''' establish relationships between domains, allowing users in one domain to access resources in another domain.
==== Types of Trusts ====
===== Parent-Child Trust =====
Automatically created when a domain is added to a forest.
* Two-way transitive
* Child trusts parent and parent trusts child
* Automatic across the forest
<syntaxhighlight lang="text">
example.com (Parent)
↕ Two-way Transitive Trust
sales.example.com (Child)
</syntaxhighlight>
===== External Trust =====
Manually created between domains in different forests.
* One-way or two-way
* Non-transitive (doesn't extend to other domains)
* Requires explicit configuration
* Common between company and partner networks
===== Forest Trust =====
Trust relationship between entire forests.
* Can be one-way or two-way
* Allows transitive access across forests
* Used for mergers/acquisitions
* Most powerful trust type
===== Shortcut Trust =====
Manually created to optimize authentication performance.
* Non-transitive
* Between domains in same forest
* Reduces authentication latency
{{Warning|Trust relationships are often exploited in penetration testing to move between domains. Understanding trust configurations is critical for attack planning.}}
==== Trust Direction ====
Trusts can be configured in different directions:
* '''Inbound Trust:''' Trusting domain trusts the trusted domain
* '''Outbound Trust:''' Trusting domain is trusted by the trusted domain
* '''Two-way Trust:''' Bidirectional authentication
---
=== Group Policy ===
'''Group Policy''' is the mechanism for centrally managing configurations and security settings across an enterprise.
==== Group Policy Objects (GPOs) ====
A '''Group Policy Object (GPO)''' contains policy settings that apply to users and computers.
Typical GPO settings:
* Password requirements
* Account lockout policies
* Software installation
* Script execution
* Firewall rules
* Drive encryption (BitLocker)
* Windows updates
==== GPO Application ====
GPOs are applied hierarchically:
<syntaxhighlight lang="text">
Application Hierarchy:
1. Local Group Policy (computer-specific)
2. Site policies (if computer in AD site)
3. Domain policies
4. Organizational Unit (OU) policies
5. Child OU policies (if nested)
Note: Later policies override earlier ones (LSDO - Last Sue Wins in Domain Order)
</syntaxhighlight>
==== Group Policy and Security ====
Group Policy is used to enforce:
* Strong password policies
* Account lockout after failed attempts
* Disable unnecessary services
* Configure firewalls
* Install security software
* Enforce encryption
{{Important|Misconfigured Group Policy is a common source of security vulnerabilities. GPO auditing and review should be part of any AD security assessment.}}
---
=== Authentication in Active Directory ===
==== Kerberos Protocol ====
Kerberos is the primary authentication protocol in Active Directory.
===== How Kerberos Works =====
<syntaxhighlight lang="text">
Simplified Kerberos Flow:
1. User enters credentials → Local machine
2. Local machine contacts Key Distribution Center (KDC)
3. KDC issues Ticket Granting Ticket (TGT)
4. User uses TGT to request service tickets
5. User presents service ticket to access resource
6. Resource grants access (or denies)
</syntaxhighlight>
===== Key Components =====
* '''Key Distribution Center (KDC):''' Runs on every Domain Controller
* '''Ticket Granting Ticket (TGT):''' Proves user identity
* '''Service Ticket:''' Grants access to specific service
{{Note|Kerberos is secure ''by design'', but implementation vulnerabilities exist (Kerberoasting, AS-REP roasting, etc.). See [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9]] for details.}}
==== NTLM ====
NTLM is the legacy authentication protocol in Active Directory.
* Still used for backwards compatibility
* Less secure than Kerberos
* Vulnerable to relay and replay attacks
* Being phased out in modern Windows
{{Warning|NTLM should be disabled where possible, but many legacy systems still require it. This creates security gaps that penetration testers often exploit.}}
---
=== Access Control in Active Directory ===
==== Access Control Lists (ACLs) ====
'''Access Control Lists''' define who can access AD objects and what permissions they have.
* Applied to every AD object
* Specify allowed and denied permissions
* Inherited from parent objects (by default)
* Can be delegated to other administrators
Common permissions:
* Read
* Write
* Create Child Objects
* Delete Child Objects
* Modify Object Permissions
* Full Control
==== Delegation ===
Administrative tasks can be delegated to other users or groups.
Common delegations:
* Password reset authority
* Add computers to domain
* Create users in specific OUs
* Manage group memberships
* Manage mailboxes (if Exchange integrated)
{{Important|Over-delegation is a common security issue. Users often have more permissions than needed for their job. This increases the risk of both accidental misuse and intentional abuse.}}
---
=== Common AD Objects ===
{| class="wikitable"
|-
! Object Type !! Purpose !! Example
|-
| User || Represent people || john.smith@corp.local
|-
| Computer || Represent machines || WORKSTATION-01, SERVER-01
|-
| Group || Organize security principals || Domain Admins, Engineering Team
|-
| Organizational Unit || Organize objects hierarchically || OU=Engineering,DC=corp,DC=local
|-
| Group Policy Object || Apply settings to users/computers || Domain Password Policy
|-
| Contact || External person/resource || partner@external.com
|-
| Service Principal Name || Service on computer || HTTP/webserver.corp.local
|-
| Certificate || Digital identity || AD-integrated certificates
|}
---
=== AD Security Best Practices ===
Organizations should implement:
✓ '''Strong password policies''' - Length, complexity, history
✓ '''Account lockout protection''' - Lock after N failed attempts
✓ '''Privileged Access Management (PAM)''' - Protect admin accounts
✓ '''Multi-factor authentication (MFA)''' - Additional factor beyond password
✓ '''Regular AD audits''' - Review permissions and GPOs
✓ '''Principle of least privilege''' - Users have minimum required permissions
✓ '''Disable unnecessary services''' - Reduce attack surface
✓ '''Monitor for suspicious activity''' - Detect attacks
✓ '''Keep AD patched''' - Apply security updates
✓ '''Separate admin and user accounts''' - Privileged accounts not used for daily work
{{Note|The best AD security comes from a combination of technical controls and administrative discipline. Penetration testing helps identify where these controls are lacking.}}
---
=== Real-World AD Scenarios ===
{{Example|
'''Scenario 1: Multi-Domain Forest'''
A large corporation has:
* Root domain: example.com (central IT)
* Child domain: sales.example.com (sales division)
* Child domain: engineering.example.com (engineering division)
* Each domain has 2-3 Domain Controllers
* Users can log in with any domain account (transitive trusts)
* Group Policy applied at multiple levels
'''Penetration Testing Implications:'''
* Must test all domains and trusts
* Privilege escalation in one domain may grant access to others
* Cross-domain attack paths common
}}
{{Example|
'''Scenario 2: External Trust for Merger'''
Company A (example.com) acquires Company B (acmecorp.local)
* External trust created between forests
* Limited to specific groups (integration team)
* Allows some cross-company access while maintaining separation
* Regular audits needed to ensure trust is still appropriate
'''Penetration Testing Implications:'''
* Test the external trust configuration
* Identify who can access across trust
* Look for over-privileged accounts
* Test for trust exploitation techniques
}}
---
=== Key Takeaways ===
Before moving to the next chapter, remember:
✓ AD controls '''authentication and access''' for most enterprises
✓ '''Domain Controllers''' store and manage all AD data
✓ '''Organizational Units''' organize objects and apply Group Policy
✓ '''Security principals''' (users, computers, groups) can be assigned permissions
✓ '''Trusts''' enable access across domains
✓ '''Kerberos''' is the primary authentication protocol
✓ '''Group Policy''' enforces security settings
✓ '''ACLs''' control who can access what
✓ AD security depends on '''proper configuration and monitoring'''
---
=== Knowledge Check ===
Test your understanding of AD basics:
# What are the three main types of security principals in Active Directory?
# Explain the difference between a domain and a forest.
# What is the purpose of an Organizational Unit (OU)?
# Name three components that make up Active Directory architecture.
# What is a Group Policy Object (GPO) used for?
# Describe how Kerberos authentication works in simplified steps.
# What is an external trust and when would it be used?
# Why are service accounts often security risks?
# True or False: All trusts in a forest are transitive.
# What does the principle of least privilege mean?
{{Note|Answers: 1) Users, Computers, Groups 2) Domain=admin unit, Forest=collection of domains with trust 3) Organize objects hierarchically and apply policies 4) Domains, DCs, OUs, Schema 5) Apply security settings/configs to users/computers 6) User→KDC for TGT→TGT for service ticket→access service 7) Between different forests, manual config, for mergers/partners 8) Often have high privilege, weak password, overly broad permissions 9) False - only some are transitive 10) Users have minimum permissions needed for job}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Explore an Active Directory Domain'''
If you have access to an AD lab or test environment:
1. '''Connect to a Domain Controller''' via Remote Desktop
2. '''Open Active Directory Users and Computers''' (dsa.msc)
3. '''Explore the structure:'''
- Expand the domain tree
- Examine OUs and their organization
- Review built-in groups
- Check user properties
4. '''Find Domain Controllers:'''
- Locate Domain Controller objects
- Note their names and locations
5. '''Review Group Policy:'''
- Open Group Policy Management (gpmc.msc)
- Examine applied GPOs
- Review policy inheritance
6. '''Check Trust Relationships:'''
- Open Active Directory Domains and Trusts
- View configured trusts
- Note trust direction
This exercise helps you understand AD structure in a real environment.
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started-with-active-directory-domain-services Microsoft Learn: Active Directory Domain Services]
* [https://en.wikipedia.org/wiki/Active_Directory Wikipedia: Active Directory]
* [https://attack.mitre.org/tactics/TA0007/ MITRE ATT&CK: Discovery]
---
[[Category:Active Directory Security and Penetration Testing]]
[[Category:Active Directory]]
[[Category:Foundational Knowledge]]
{{BookCat}}
1h18vwqucfzm8knrhae11hybgzb5wik
4672129
4672124
2026-09-24T12:19:47Z
MathXplore
3097823
removed [[Category:Active Directory Security and Penetration Testing]] using [[Help:Gadget-HotCat|HotCat]]
4672129
wikitext
text/x-wiki
== Chapter 1: Active Directory Basics ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What Active Directory is and its role in enterprise IT
* The hierarchical structure of AD domains and forests
* Key AD components and their functions
* Trust relationships and how they work
* Organizational Units (OUs) and Group Policy
* Security principals and access control in AD
* Why AD is a common penetration testing target
=== Prerequisites ===
* Basic understanding of networking (TCP/IP, DNS)
* Familiarity with Windows server concepts
* Understanding of user authentication basics
* No prior AD experience required
---
=== Introduction to Active Directory ===
'''Active Directory (AD)''' is Microsoft's centralized directory service for managing users, computers, and resources in an enterprise network. It serves as the backbone of most corporate IT environments, making it both a critical asset and a high-value target for penetration testing.
==== Why Active Directory Matters ====
Active Directory is used by approximately 90% of Fortune 500 companies and controls:
* {{color box|lightblue|User authentication}} - Credentials and access control
* {{color box|lightblue|Device management}} - Computer configurations and security policies
* {{color box|lightblue|Resource access}} - File shares, printers, and applications
* {{color box|lightblue|Security policies}} - Group Policy enforcement
* {{color box|lightblue|Enterprise infrastructure}} - DNS, DHCP, and certificate services
{{Important|Understanding AD architecture is critical for penetration testers because compromise of AD often means compromise of the entire enterprise.}}
---
=== Active Directory Architecture ===
==== Core Components ===
AD consists of several interconnected components:
===== 1. Domain =====
A '''domain''' is the basic administrative unit in Active Directory.
* Contains users, computers, and other resources
* Has a unique name (e.g., corp.local, example.com)
* Managed by Domain Controllers (DCs)
* Contains a directory database with all security information
* Enforces security policies across member computers
Example domain structure:
<syntaxhighlight lang="text">
corp.local (Domain)
├─ Users (1,000+ user accounts)
├─ Computers (500+ computer accounts)
├─ Groups (security and distribution groups)
├─ Printers, File Shares, Applications
└─ Group Policy Objects (GPOs)
</syntaxhighlight>
===== 2. Forest =====
A '''forest''' is a collection of domains that share a common schema and trust relationship.
* Multiple domains can be in a single forest
* Domains share a common Global Catalog
* Transitive trusts between domains
* Single schema for the entire forest
* Single Enterprise forest root domain
Example:
<syntaxhighlight lang="text">
Example.com Forest
├─ example.com (root domain)
│ ├─ DC1.example.com
│ └─ DC2.example.com
├─ sales.example.com (child domain)
│ ├─ DC1.sales.example.com
│ └─ DC2.sales.example.com
└─ engineering.example.com (child domain)
├─ DC1.engineering.example.com
└─ DC2.engineering.example.com
</syntaxhighlight>
===== 3. Domain Controllers (DCs) =====
'''Domain Controllers''' are servers running Active Directory Domain Services (AD DS).
Key responsibilities:
* Authenticate user logons
* Store the directory database
* Replicate AD data to other DCs
* Enforce security policies
* Serve Kerberos tickets
* Manage DNS and LDAP services
{{Note|Every domain has at least one Domain Controller, but most enterprises have 2+ for redundancy and load balancing.}}
===== 4. Organizational Units (OUs) =====
'''Organizational Units''' are containers used to organize AD objects hierarchically.
* Group users, computers, and other objects
* Apply Group Policy to specific OUs
* Delegate administrative permissions
* Reflect organizational structure
Example OU hierarchy:
<syntaxhighlight lang="text">
corp.local
├─ Departments
│ ├─ Engineering
│ │ ├─ Servers
│ │ ├─ Workstations
│ │ └─ Users
│ ├─ Finance
│ │ ├─ Servers
│ │ └─ Users
│ └─ Marketing
├─ Locations
│ ├─ New York
│ ├─ London
│ └─ Tokyo
└─ Service Accounts
├─ Application Accounts
└─ Service Accounts
</syntaxhighlight>
===== 5. Schema =====
The '''schema''' defines the structure and attributes of all objects in Active Directory.
* Defines object types (users, computers, groups)
* Specifies allowed attributes for each object
* Enforced across the entire forest
* Rarely modified in production environments
{{Warning|Schema modifications can affect the entire forest and should only be done by experienced administrators.}}
---
=== Security Principals ===
A '''security principal''' is any object in Active Directory that can be assigned permissions. The main types are:
==== Users ====
User accounts represent people who log into the network.
* Individual identity and credentials
* Associated with a SID (Security Identifier)
* Can own resources and have group memberships
* Subject to password policies
* Can be enabled/disabled
<syntaxhighlight lang="text">
User Account Properties:
├─ Username (samAccountName)
├─ Full Name (displayName)
├─ Password (hashed)
├─ Home Folder
├─ Email Address
├─ Department
├─ Manager
├─ Phone Number
└─ Group Memberships
</syntaxhighlight>
==== Computers ====
Computer accounts represent physical or virtual machines on the network.
* One account per computer
* Authenticates to the domain
* Has its own password (managed by Windows)
* Subject to Group Policy
* Can be members of groups
{{Note|Computer accounts are often overlooked in security assessments but can be valuable penetration testing targets.}}
==== Groups ====
Groups are containers for organizing security principals.
'''Security Groups:'''
* Used for assigning permissions to resources
* Can have users, computers, and other groups as members
* Types: Global, Domain Local, Universal
'''Distribution Groups:'''
* Used for email distribution lists
* Not used for access control
* Cannot be used in ACLs (Access Control Lists)
Examples:
<syntaxhighlight lang="text">
Security Groups:
├─ Domain Admins (highest privilege)
├─ Enterprise Admins (forest-wide privilege)
├─ Server Operators (server management)
├─ Backup Operators (backup permissions)
└─ Custom Groups (application-specific)
Distribution Groups:
├─ All Company
├─ Engineering Team
└─ Finance Department
</syntaxhighlight>
==== Service Accounts ====
Service accounts are special accounts used by applications and services.
* Run Windows services
* Often have high privileges
* Passwords stored in plaintext in service configuration
* Commonly overlooked in security audits
{{Important|Service accounts are frequently weak points in AD security. Many service accounts have overly broad permissions or weak passwords.}}
---
=== Active Directory Trusts ===
'''Trusts''' establish relationships between domains, allowing users in one domain to access resources in another domain.
==== Types of Trusts ====
===== Parent-Child Trust =====
Automatically created when a domain is added to a forest.
* Two-way transitive
* Child trusts parent and parent trusts child
* Automatic across the forest
<syntaxhighlight lang="text">
example.com (Parent)
↕ Two-way Transitive Trust
sales.example.com (Child)
</syntaxhighlight>
===== External Trust =====
Manually created between domains in different forests.
* One-way or two-way
* Non-transitive (doesn't extend to other domains)
* Requires explicit configuration
* Common between company and partner networks
===== Forest Trust =====
Trust relationship between entire forests.
* Can be one-way or two-way
* Allows transitive access across forests
* Used for mergers/acquisitions
* Most powerful trust type
===== Shortcut Trust =====
Manually created to optimize authentication performance.
* Non-transitive
* Between domains in same forest
* Reduces authentication latency
{{Warning|Trust relationships are often exploited in penetration testing to move between domains. Understanding trust configurations is critical for attack planning.}}
==== Trust Direction ====
Trusts can be configured in different directions:
* '''Inbound Trust:''' Trusting domain trusts the trusted domain
* '''Outbound Trust:''' Trusting domain is trusted by the trusted domain
* '''Two-way Trust:''' Bidirectional authentication
---
=== Group Policy ===
'''Group Policy''' is the mechanism for centrally managing configurations and security settings across an enterprise.
==== Group Policy Objects (GPOs) ====
A '''Group Policy Object (GPO)''' contains policy settings that apply to users and computers.
Typical GPO settings:
* Password requirements
* Account lockout policies
* Software installation
* Script execution
* Firewall rules
* Drive encryption (BitLocker)
* Windows updates
==== GPO Application ====
GPOs are applied hierarchically:
<syntaxhighlight lang="text">
Application Hierarchy:
1. Local Group Policy (computer-specific)
2. Site policies (if computer in AD site)
3. Domain policies
4. Organizational Unit (OU) policies
5. Child OU policies (if nested)
Note: Later policies override earlier ones (LSDO - Last Sue Wins in Domain Order)
</syntaxhighlight>
==== Group Policy and Security ====
Group Policy is used to enforce:
* Strong password policies
* Account lockout after failed attempts
* Disable unnecessary services
* Configure firewalls
* Install security software
* Enforce encryption
{{Important|Misconfigured Group Policy is a common source of security vulnerabilities. GPO auditing and review should be part of any AD security assessment.}}
---
=== Authentication in Active Directory ===
==== Kerberos Protocol ====
Kerberos is the primary authentication protocol in Active Directory.
===== How Kerberos Works =====
<syntaxhighlight lang="text">
Simplified Kerberos Flow:
1. User enters credentials → Local machine
2. Local machine contacts Key Distribution Center (KDC)
3. KDC issues Ticket Granting Ticket (TGT)
4. User uses TGT to request service tickets
5. User presents service ticket to access resource
6. Resource grants access (or denies)
</syntaxhighlight>
===== Key Components =====
* '''Key Distribution Center (KDC):''' Runs on every Domain Controller
* '''Ticket Granting Ticket (TGT):''' Proves user identity
* '''Service Ticket:''' Grants access to specific service
{{Note|Kerberos is secure ''by design'', but implementation vulnerabilities exist (Kerberoasting, AS-REP roasting, etc.). See [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9]] for details.}}
==== NTLM ====
NTLM is the legacy authentication protocol in Active Directory.
* Still used for backwards compatibility
* Less secure than Kerberos
* Vulnerable to relay and replay attacks
* Being phased out in modern Windows
{{Warning|NTLM should be disabled where possible, but many legacy systems still require it. This creates security gaps that penetration testers often exploit.}}
---
=== Access Control in Active Directory ===
==== Access Control Lists (ACLs) ====
'''Access Control Lists''' define who can access AD objects and what permissions they have.
* Applied to every AD object
* Specify allowed and denied permissions
* Inherited from parent objects (by default)
* Can be delegated to other administrators
Common permissions:
* Read
* Write
* Create Child Objects
* Delete Child Objects
* Modify Object Permissions
* Full Control
==== Delegation ===
Administrative tasks can be delegated to other users or groups.
Common delegations:
* Password reset authority
* Add computers to domain
* Create users in specific OUs
* Manage group memberships
* Manage mailboxes (if Exchange integrated)
{{Important|Over-delegation is a common security issue. Users often have more permissions than needed for their job. This increases the risk of both accidental misuse and intentional abuse.}}
---
=== Common AD Objects ===
{| class="wikitable"
|-
! Object Type !! Purpose !! Example
|-
| User || Represent people || john.smith@corp.local
|-
| Computer || Represent machines || WORKSTATION-01, SERVER-01
|-
| Group || Organize security principals || Domain Admins, Engineering Team
|-
| Organizational Unit || Organize objects hierarchically || OU=Engineering,DC=corp,DC=local
|-
| Group Policy Object || Apply settings to users/computers || Domain Password Policy
|-
| Contact || External person/resource || partner@external.com
|-
| Service Principal Name || Service on computer || HTTP/webserver.corp.local
|-
| Certificate || Digital identity || AD-integrated certificates
|}
---
=== AD Security Best Practices ===
Organizations should implement:
✓ '''Strong password policies''' - Length, complexity, history
✓ '''Account lockout protection''' - Lock after N failed attempts
✓ '''Privileged Access Management (PAM)''' - Protect admin accounts
✓ '''Multi-factor authentication (MFA)''' - Additional factor beyond password
✓ '''Regular AD audits''' - Review permissions and GPOs
✓ '''Principle of least privilege''' - Users have minimum required permissions
✓ '''Disable unnecessary services''' - Reduce attack surface
✓ '''Monitor for suspicious activity''' - Detect attacks
✓ '''Keep AD patched''' - Apply security updates
✓ '''Separate admin and user accounts''' - Privileged accounts not used for daily work
{{Note|The best AD security comes from a combination of technical controls and administrative discipline. Penetration testing helps identify where these controls are lacking.}}
---
=== Real-World AD Scenarios ===
{{Example|
'''Scenario 1: Multi-Domain Forest'''
A large corporation has:
* Root domain: example.com (central IT)
* Child domain: sales.example.com (sales division)
* Child domain: engineering.example.com (engineering division)
* Each domain has 2-3 Domain Controllers
* Users can log in with any domain account (transitive trusts)
* Group Policy applied at multiple levels
'''Penetration Testing Implications:'''
* Must test all domains and trusts
* Privilege escalation in one domain may grant access to others
* Cross-domain attack paths common
}}
{{Example|
'''Scenario 2: External Trust for Merger'''
Company A (example.com) acquires Company B (acmecorp.local)
* External trust created between forests
* Limited to specific groups (integration team)
* Allows some cross-company access while maintaining separation
* Regular audits needed to ensure trust is still appropriate
'''Penetration Testing Implications:'''
* Test the external trust configuration
* Identify who can access across trust
* Look for over-privileged accounts
* Test for trust exploitation techniques
}}
---
=== Key Takeaways ===
Before moving to the next chapter, remember:
✓ AD controls '''authentication and access''' for most enterprises
✓ '''Domain Controllers''' store and manage all AD data
✓ '''Organizational Units''' organize objects and apply Group Policy
✓ '''Security principals''' (users, computers, groups) can be assigned permissions
✓ '''Trusts''' enable access across domains
✓ '''Kerberos''' is the primary authentication protocol
✓ '''Group Policy''' enforces security settings
✓ '''ACLs''' control who can access what
✓ AD security depends on '''proper configuration and monitoring'''
---
=== Knowledge Check ===
Test your understanding of AD basics:
# What are the three main types of security principals in Active Directory?
# Explain the difference between a domain and a forest.
# What is the purpose of an Organizational Unit (OU)?
# Name three components that make up Active Directory architecture.
# What is a Group Policy Object (GPO) used for?
# Describe how Kerberos authentication works in simplified steps.
# What is an external trust and when would it be used?
# Why are service accounts often security risks?
# True or False: All trusts in a forest are transitive.
# What does the principle of least privilege mean?
{{Note|Answers: 1) Users, Computers, Groups 2) Domain=admin unit, Forest=collection of domains with trust 3) Organize objects hierarchically and apply policies 4) Domains, DCs, OUs, Schema 5) Apply security settings/configs to users/computers 6) User→KDC for TGT→TGT for service ticket→access service 7) Between different forests, manual config, for mergers/partners 8) Often have high privilege, weak password, overly broad permissions 9) False - only some are transitive 10) Users have minimum permissions needed for job}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Explore an Active Directory Domain'''
If you have access to an AD lab or test environment:
1. '''Connect to a Domain Controller''' via Remote Desktop
2. '''Open Active Directory Users and Computers''' (dsa.msc)
3. '''Explore the structure:'''
- Expand the domain tree
- Examine OUs and their organization
- Review built-in groups
- Check user properties
4. '''Find Domain Controllers:'''
- Locate Domain Controller objects
- Note their names and locations
5. '''Review Group Policy:'''
- Open Group Policy Management (gpmc.msc)
- Examine applied GPOs
- Review policy inheritance
6. '''Check Trust Relationships:'''
- Open Active Directory Domains and Trusts
- View configured trusts
- Note trust direction
This exercise helps you understand AD structure in a real environment.
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started-with-active-directory-domain-services Microsoft Learn: Active Directory Domain Services]
* [https://en.wikipedia.org/wiki/Active_Directory Wikipedia: Active Directory]
* [https://attack.mitre.org/tactics/TA0007/ MITRE ATT&CK: Discovery]
---
[[Category:Active Directory]]
[[Category:Foundational Knowledge]]
{{BookCat}}
99s3qnal4s6354gg539j6vogneikjzr
4672159
4672129
2026-09-24T15:29:55Z
Kittycataclysm
3371989
flag
4672159
wikitext
text/x-wiki
{{AI-suspected|reason=mass content addition, typographical quirks, unformatted lists, inconsistent formatting, broken refs, non-WB categories, reliance on lists, formatting errors}}
== Chapter 1: Active Directory Basics ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What Active Directory is and its role in enterprise IT
* The hierarchical structure of AD domains and forests
* Key AD components and their functions
* Trust relationships and how they work
* Organizational Units (OUs) and Group Policy
* Security principals and access control in AD
* Why AD is a common penetration testing target
=== Prerequisites ===
* Basic understanding of networking (TCP/IP, DNS)
* Familiarity with Windows server concepts
* Understanding of user authentication basics
* No prior AD experience required
---
=== Introduction to Active Directory ===
'''Active Directory (AD)''' is Microsoft's centralized directory service for managing users, computers, and resources in an enterprise network. It serves as the backbone of most corporate IT environments, making it both a critical asset and a high-value target for penetration testing.
==== Why Active Directory Matters ====
Active Directory is used by approximately 90% of Fortune 500 companies and controls:
* {{color box|lightblue|User authentication}} - Credentials and access control
* {{color box|lightblue|Device management}} - Computer configurations and security policies
* {{color box|lightblue|Resource access}} - File shares, printers, and applications
* {{color box|lightblue|Security policies}} - Group Policy enforcement
* {{color box|lightblue|Enterprise infrastructure}} - DNS, DHCP, and certificate services
{{Important|Understanding AD architecture is critical for penetration testers because compromise of AD often means compromise of the entire enterprise.}}
---
=== Active Directory Architecture ===
==== Core Components ===
AD consists of several interconnected components:
===== 1. Domain =====
A '''domain''' is the basic administrative unit in Active Directory.
* Contains users, computers, and other resources
* Has a unique name (e.g., corp.local, example.com)
* Managed by Domain Controllers (DCs)
* Contains a directory database with all security information
* Enforces security policies across member computers
Example domain structure:
<syntaxhighlight lang="text">
corp.local (Domain)
├─ Users (1,000+ user accounts)
├─ Computers (500+ computer accounts)
├─ Groups (security and distribution groups)
├─ Printers, File Shares, Applications
└─ Group Policy Objects (GPOs)
</syntaxhighlight>
===== 2. Forest =====
A '''forest''' is a collection of domains that share a common schema and trust relationship.
* Multiple domains can be in a single forest
* Domains share a common Global Catalog
* Transitive trusts between domains
* Single schema for the entire forest
* Single Enterprise forest root domain
Example:
<syntaxhighlight lang="text">
Example.com Forest
├─ example.com (root domain)
│ ├─ DC1.example.com
│ └─ DC2.example.com
├─ sales.example.com (child domain)
│ ├─ DC1.sales.example.com
│ └─ DC2.sales.example.com
└─ engineering.example.com (child domain)
├─ DC1.engineering.example.com
└─ DC2.engineering.example.com
</syntaxhighlight>
===== 3. Domain Controllers (DCs) =====
'''Domain Controllers''' are servers running Active Directory Domain Services (AD DS).
Key responsibilities:
* Authenticate user logons
* Store the directory database
* Replicate AD data to other DCs
* Enforce security policies
* Serve Kerberos tickets
* Manage DNS and LDAP services
{{Note|Every domain has at least one Domain Controller, but most enterprises have 2+ for redundancy and load balancing.}}
===== 4. Organizational Units (OUs) =====
'''Organizational Units''' are containers used to organize AD objects hierarchically.
* Group users, computers, and other objects
* Apply Group Policy to specific OUs
* Delegate administrative permissions
* Reflect organizational structure
Example OU hierarchy:
<syntaxhighlight lang="text">
corp.local
├─ Departments
│ ├─ Engineering
│ │ ├─ Servers
│ │ ├─ Workstations
│ │ └─ Users
│ ├─ Finance
│ │ ├─ Servers
│ │ └─ Users
│ └─ Marketing
├─ Locations
│ ├─ New York
│ ├─ London
│ └─ Tokyo
└─ Service Accounts
├─ Application Accounts
└─ Service Accounts
</syntaxhighlight>
===== 5. Schema =====
The '''schema''' defines the structure and attributes of all objects in Active Directory.
* Defines object types (users, computers, groups)
* Specifies allowed attributes for each object
* Enforced across the entire forest
* Rarely modified in production environments
{{Warning|Schema modifications can affect the entire forest and should only be done by experienced administrators.}}
---
=== Security Principals ===
A '''security principal''' is any object in Active Directory that can be assigned permissions. The main types are:
==== Users ====
User accounts represent people who log into the network.
* Individual identity and credentials
* Associated with a SID (Security Identifier)
* Can own resources and have group memberships
* Subject to password policies
* Can be enabled/disabled
<syntaxhighlight lang="text">
User Account Properties:
├─ Username (samAccountName)
├─ Full Name (displayName)
├─ Password (hashed)
├─ Home Folder
├─ Email Address
├─ Department
├─ Manager
├─ Phone Number
└─ Group Memberships
</syntaxhighlight>
==== Computers ====
Computer accounts represent physical or virtual machines on the network.
* One account per computer
* Authenticates to the domain
* Has its own password (managed by Windows)
* Subject to Group Policy
* Can be members of groups
{{Note|Computer accounts are often overlooked in security assessments but can be valuable penetration testing targets.}}
==== Groups ====
Groups are containers for organizing security principals.
'''Security Groups:'''
* Used for assigning permissions to resources
* Can have users, computers, and other groups as members
* Types: Global, Domain Local, Universal
'''Distribution Groups:'''
* Used for email distribution lists
* Not used for access control
* Cannot be used in ACLs (Access Control Lists)
Examples:
<syntaxhighlight lang="text">
Security Groups:
├─ Domain Admins (highest privilege)
├─ Enterprise Admins (forest-wide privilege)
├─ Server Operators (server management)
├─ Backup Operators (backup permissions)
└─ Custom Groups (application-specific)
Distribution Groups:
├─ All Company
├─ Engineering Team
└─ Finance Department
</syntaxhighlight>
==== Service Accounts ====
Service accounts are special accounts used by applications and services.
* Run Windows services
* Often have high privileges
* Passwords stored in plaintext in service configuration
* Commonly overlooked in security audits
{{Important|Service accounts are frequently weak points in AD security. Many service accounts have overly broad permissions or weak passwords.}}
---
=== Active Directory Trusts ===
'''Trusts''' establish relationships between domains, allowing users in one domain to access resources in another domain.
==== Types of Trusts ====
===== Parent-Child Trust =====
Automatically created when a domain is added to a forest.
* Two-way transitive
* Child trusts parent and parent trusts child
* Automatic across the forest
<syntaxhighlight lang="text">
example.com (Parent)
↕ Two-way Transitive Trust
sales.example.com (Child)
</syntaxhighlight>
===== External Trust =====
Manually created between domains in different forests.
* One-way or two-way
* Non-transitive (doesn't extend to other domains)
* Requires explicit configuration
* Common between company and partner networks
===== Forest Trust =====
Trust relationship between entire forests.
* Can be one-way or two-way
* Allows transitive access across forests
* Used for mergers/acquisitions
* Most powerful trust type
===== Shortcut Trust =====
Manually created to optimize authentication performance.
* Non-transitive
* Between domains in same forest
* Reduces authentication latency
{{Warning|Trust relationships are often exploited in penetration testing to move between domains. Understanding trust configurations is critical for attack planning.}}
==== Trust Direction ====
Trusts can be configured in different directions:
* '''Inbound Trust:''' Trusting domain trusts the trusted domain
* '''Outbound Trust:''' Trusting domain is trusted by the trusted domain
* '''Two-way Trust:''' Bidirectional authentication
---
=== Group Policy ===
'''Group Policy''' is the mechanism for centrally managing configurations and security settings across an enterprise.
==== Group Policy Objects (GPOs) ====
A '''Group Policy Object (GPO)''' contains policy settings that apply to users and computers.
Typical GPO settings:
* Password requirements
* Account lockout policies
* Software installation
* Script execution
* Firewall rules
* Drive encryption (BitLocker)
* Windows updates
==== GPO Application ====
GPOs are applied hierarchically:
<syntaxhighlight lang="text">
Application Hierarchy:
1. Local Group Policy (computer-specific)
2. Site policies (if computer in AD site)
3. Domain policies
4. Organizational Unit (OU) policies
5. Child OU policies (if nested)
Note: Later policies override earlier ones (LSDO - Last Sue Wins in Domain Order)
</syntaxhighlight>
==== Group Policy and Security ====
Group Policy is used to enforce:
* Strong password policies
* Account lockout after failed attempts
* Disable unnecessary services
* Configure firewalls
* Install security software
* Enforce encryption
{{Important|Misconfigured Group Policy is a common source of security vulnerabilities. GPO auditing and review should be part of any AD security assessment.}}
---
=== Authentication in Active Directory ===
==== Kerberos Protocol ====
Kerberos is the primary authentication protocol in Active Directory.
===== How Kerberos Works =====
<syntaxhighlight lang="text">
Simplified Kerberos Flow:
1. User enters credentials → Local machine
2. Local machine contacts Key Distribution Center (KDC)
3. KDC issues Ticket Granting Ticket (TGT)
4. User uses TGT to request service tickets
5. User presents service ticket to access resource
6. Resource grants access (or denies)
</syntaxhighlight>
===== Key Components =====
* '''Key Distribution Center (KDC):''' Runs on every Domain Controller
* '''Ticket Granting Ticket (TGT):''' Proves user identity
* '''Service Ticket:''' Grants access to specific service
{{Note|Kerberos is secure ''by design'', but implementation vulnerabilities exist (Kerberoasting, AS-REP roasting, etc.). See [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9]] for details.}}
==== NTLM ====
NTLM is the legacy authentication protocol in Active Directory.
* Still used for backwards compatibility
* Less secure than Kerberos
* Vulnerable to relay and replay attacks
* Being phased out in modern Windows
{{Warning|NTLM should be disabled where possible, but many legacy systems still require it. This creates security gaps that penetration testers often exploit.}}
---
=== Access Control in Active Directory ===
==== Access Control Lists (ACLs) ====
'''Access Control Lists''' define who can access AD objects and what permissions they have.
* Applied to every AD object
* Specify allowed and denied permissions
* Inherited from parent objects (by default)
* Can be delegated to other administrators
Common permissions:
* Read
* Write
* Create Child Objects
* Delete Child Objects
* Modify Object Permissions
* Full Control
==== Delegation ===
Administrative tasks can be delegated to other users or groups.
Common delegations:
* Password reset authority
* Add computers to domain
* Create users in specific OUs
* Manage group memberships
* Manage mailboxes (if Exchange integrated)
{{Important|Over-delegation is a common security issue. Users often have more permissions than needed for their job. This increases the risk of both accidental misuse and intentional abuse.}}
---
=== Common AD Objects ===
{| class="wikitable"
|-
! Object Type !! Purpose !! Example
|-
| User || Represent people || john.smith@corp.local
|-
| Computer || Represent machines || WORKSTATION-01, SERVER-01
|-
| Group || Organize security principals || Domain Admins, Engineering Team
|-
| Organizational Unit || Organize objects hierarchically || OU=Engineering,DC=corp,DC=local
|-
| Group Policy Object || Apply settings to users/computers || Domain Password Policy
|-
| Contact || External person/resource || partner@external.com
|-
| Service Principal Name || Service on computer || HTTP/webserver.corp.local
|-
| Certificate || Digital identity || AD-integrated certificates
|}
---
=== AD Security Best Practices ===
Organizations should implement:
✓ '''Strong password policies''' - Length, complexity, history
✓ '''Account lockout protection''' - Lock after N failed attempts
✓ '''Privileged Access Management (PAM)''' - Protect admin accounts
✓ '''Multi-factor authentication (MFA)''' - Additional factor beyond password
✓ '''Regular AD audits''' - Review permissions and GPOs
✓ '''Principle of least privilege''' - Users have minimum required permissions
✓ '''Disable unnecessary services''' - Reduce attack surface
✓ '''Monitor for suspicious activity''' - Detect attacks
✓ '''Keep AD patched''' - Apply security updates
✓ '''Separate admin and user accounts''' - Privileged accounts not used for daily work
{{Note|The best AD security comes from a combination of technical controls and administrative discipline. Penetration testing helps identify where these controls are lacking.}}
---
=== Real-World AD Scenarios ===
{{Example|
'''Scenario 1: Multi-Domain Forest'''
A large corporation has:
* Root domain: example.com (central IT)
* Child domain: sales.example.com (sales division)
* Child domain: engineering.example.com (engineering division)
* Each domain has 2-3 Domain Controllers
* Users can log in with any domain account (transitive trusts)
* Group Policy applied at multiple levels
'''Penetration Testing Implications:'''
* Must test all domains and trusts
* Privilege escalation in one domain may grant access to others
* Cross-domain attack paths common
}}
{{Example|
'''Scenario 2: External Trust for Merger'''
Company A (example.com) acquires Company B (acmecorp.local)
* External trust created between forests
* Limited to specific groups (integration team)
* Allows some cross-company access while maintaining separation
* Regular audits needed to ensure trust is still appropriate
'''Penetration Testing Implications:'''
* Test the external trust configuration
* Identify who can access across trust
* Look for over-privileged accounts
* Test for trust exploitation techniques
}}
---
=== Key Takeaways ===
Before moving to the next chapter, remember:
✓ AD controls '''authentication and access''' for most enterprises
✓ '''Domain Controllers''' store and manage all AD data
✓ '''Organizational Units''' organize objects and apply Group Policy
✓ '''Security principals''' (users, computers, groups) can be assigned permissions
✓ '''Trusts''' enable access across domains
✓ '''Kerberos''' is the primary authentication protocol
✓ '''Group Policy''' enforces security settings
✓ '''ACLs''' control who can access what
✓ AD security depends on '''proper configuration and monitoring'''
---
=== Knowledge Check ===
Test your understanding of AD basics:
# What are the three main types of security principals in Active Directory?
# Explain the difference between a domain and a forest.
# What is the purpose of an Organizational Unit (OU)?
# Name three components that make up Active Directory architecture.
# What is a Group Policy Object (GPO) used for?
# Describe how Kerberos authentication works in simplified steps.
# What is an external trust and when would it be used?
# Why are service accounts often security risks?
# True or False: All trusts in a forest are transitive.
# What does the principle of least privilege mean?
{{Note|Answers: 1) Users, Computers, Groups 2) Domain=admin unit, Forest=collection of domains with trust 3) Organize objects hierarchically and apply policies 4) Domains, DCs, OUs, Schema 5) Apply security settings/configs to users/computers 6) User→KDC for TGT→TGT for service ticket→access service 7) Between different forests, manual config, for mergers/partners 8) Often have high privilege, weak password, overly broad permissions 9) False - only some are transitive 10) Users have minimum permissions needed for job}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Explore an Active Directory Domain'''
If you have access to an AD lab or test environment:
1. '''Connect to a Domain Controller''' via Remote Desktop
2. '''Open Active Directory Users and Computers''' (dsa.msc)
3. '''Explore the structure:'''
- Expand the domain tree
- Examine OUs and their organization
- Review built-in groups
- Check user properties
4. '''Find Domain Controllers:'''
- Locate Domain Controller objects
- Note their names and locations
5. '''Review Group Policy:'''
- Open Group Policy Management (gpmc.msc)
- Examine applied GPOs
- Review policy inheritance
6. '''Check Trust Relationships:'''
- Open Active Directory Domains and Trusts
- View configured trusts
- Note trust direction
This exercise helps you understand AD structure in a real environment.
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started-with-active-directory-domain-services Microsoft Learn: Active Directory Domain Services]
* [https://en.wikipedia.org/wiki/Active_Directory Wikipedia: Active Directory]
* [https://attack.mitre.org/tactics/TA0007/ MITRE ATT&CK: Discovery]
---
[[Category:Active Directory]]
[[Category:Foundational Knowledge]]
{{BookCat}}
1cl2jj1n91hsz3wl2xsr9pymaax0qgb
Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals
0
485822
4672123
4672026
2026-09-24T12:18:25Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672123
wikitext
text/x-wiki
== Chapter 2: Penetration Testing Fundamentals ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What penetration testing is and its purpose
* Standard penetration testing methodologies and phases
* How penetration testing applies to Active Directory
* The complete AD attack lifecycle
* Common attack vectors specific to AD
* How to approach an AD penetration test systematically
* The relationship between reconnaissance, enumeration, and exploitation
* Ethical and legal considerations in penetration testing
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
* Understanding of basic networking concepts
* Familiarity with Windows and Linux command-line interfaces
* No prior penetration testing experience required
---
=== What is Penetration Testing? ===
'''Penetration Testing''' is a controlled, authorized security assessment where qualified professionals attempt to identify and exploit security vulnerabilities in systems, networks, or applications.
==== Key Characteristics ====
✓ '''Authorized:''' Explicit written permission from system owner
✓ '''Controlled:''' Defined scope and rules of engagement
✓ '''Professional:''' Conducted by trained security professionals
✓ '''Systematic:''' Follows established methodologies
✓ '''Documented:''' Detailed findings and recommendations provided
✓ '''Actionable:''' Results lead to security improvements
==== Goals of Penetration Testing ====
1. '''Identify vulnerabilities''' - Find security weaknesses before attackers do
2. '''Assess risk''' - Evaluate the real-world impact of vulnerabilities
3. '''Validate controls''' - Test if security measures actually work
4. '''Simulate attacks''' - Understand how attackers would compromise systems
5. '''Provide recommendations''' - Give actionable remediation advice
6. '''Improve security posture''' - Help organizations become more secure
{{Important|Penetration testing is NOT hacking. It is an authorized, ethical, and legal assessment conducted with proper scope definition and rules of engagement.}}
---
=== Penetration Testing Methodologies ===
Several standardized methodologies guide penetration testing work.
==== NIST SP 800-115 ====
The NIST Cybersecurity Framework defines four phases:
# '''Planning and Scoping'''
# '''Discovery and Enumeration'''
# '''Vulnerability Detection and Analysis'''
# '''Reporting and Recommendations'''
==== PTES (Penetration Testing Execution Standard) ====
PTES defines seven phases:
# '''Pre-engagement Interactions''' - Define scope, rules of engagement, timeline
# '''Intelligence Gathering''' - Passive reconnaissance
# '''Threat Modeling''' - Identify likely attack vectors
# '''Vulnerability Analysis''' - Active scanning and testing
# '''Exploitation''' - Attempt to compromise systems
# '''Post-Exploitation''' - Maintain access, assess impact
# '''Reporting''' - Document findings and recommendations
==== OWASP Testing Guide ====
OWASP (though primarily for web applications) provides a systematic approach to security testing.
==== OSSTMM ====
Open Source Security Testing Methodology Manual provides comprehensive security testing framework.
{{Note|While different methodologies exist, they all follow the same general flow: plan → reconnaissance → enumerate → exploit → document. Most practitioners adapt these frameworks to their needs and organizational requirements.}}
---
=== Active Directory Penetration Testing Phases ===
AD penetration testing typically follows this flow:
<syntaxhighlight lang="text">
AD Penetration Test Phases:
┌─────────────────────────────────────────────────────────────┐
│ Phase 1: Planning & Scoping │
│ - Define targets and scope │
│ - Obtain written authorization │
│ - Set rules of engagement │
│ - Identify key stakeholders │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 2: Reconnaissance │
│ - Passive information gathering │
│ - No direct system interaction │
│ - OSINT (Open Source Intelligence) │
│ - Identify domain structure from public sources │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 3: Enumeration │
│ - Active probing of AD infrastructure │
│ - Identify Domain Controllers │
│ - Enumerate users, groups, computers │
│ - Discover services and open ports │
│ - Assess initial access options │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 4: Vulnerability Assessment │
│ - Identify security misconfigurations │
│ - Test for known vulnerabilities │
│ - Weak credentials │
│ - Over-privileged accounts │
│ - Poor Group Policy settings │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 5: Exploitation │
│ - Attempt to compromise systems │
│ - Gain initial access │
│ - Escalate privileges │
│ - Move laterally across domain │
│ - Reach primary objectives │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 6: Post-Exploitation │
│ - Maintain access │
│ - Document the attack chain │
│ - Assess business impact │
│ - Identify lateral movement paths │
│ - Gather evidence of compromise │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 7: Reporting & Remediation │
│ - Document all findings │
│ - Provide risk ratings │
│ - Recommend remediations │
│ - Prioritize by impact and effort │
│ - Support remediation validation │
└─────────────────────────────────────────────────────────────┘
</syntaxhighlight>
---
=== Phase 1: Planning & Scoping ===
==== Defining Scope ====
The scope defines what systems can and cannot be tested.
'''In-scope items:'''
* Which domains to test (corp.local, sales.local, etc.)
* Which OUs to target (Engineering, Finance, etc.)
* Which servers/systems can be tested
* Testing timeframe and duration
* Who should be contacted in case of issues
'''Out-of-scope items:'''
* Systems that should NOT be tested
* Production systems that cannot be disrupted
* Restricted areas or data
* Third-party systems without permission
{{Important|Clear scope definition protects both the tester and the organization. Ambiguous scope leads to misunderstandings and potential legal issues.}}
==== Authorization ====
Written authorization is '''legally required'''.
Authorization should include:
* Explicit permission to conduct testing
* Start and end dates
* Scope of testing
* Names of authorized testers
* Contact person for questions
* Description of testing techniques
* Acceptable impact level (non-disruptive, can disrupt services, etc.)
==== Rules of Engagement ====
Rules of engagement define how testing will be conducted.
Typical ROE covers:
* '''Timing:''' When testing can occur (business hours? weekends? 24/7?)
* '''Techniques:''' Which attack techniques are allowed
* '''Data handling:''' How sensitive data discovered will be handled
* '''Communication:''' How to report issues/escalations
* '''Escalation procedures:''' What to do if problems occur
* '''Exit procedures:''' How to cleanly leave systems post-test
{{Warning|Always follow the rules of engagement. Going beyond approved scope or techniques can result in legal consequences, even if testing is authorized.}}
---
=== Phase 2: Reconnaissance ===
'''Reconnaissance''' is passive information gathering about the target domain.
==== Passive Information Gathering ====
Conducted without directly interacting with target systems.
'''Public DNS Records:'''
<syntaxhighlight lang="bash">
# Query DNS for domain information
nslookup corp.local
dig corp.local MX
dig corp.local NS
dig corp.local TXT
</syntaxhighlight>
'''WHOIS Lookups:'''
<syntaxhighlight lang="bash">
# Get domain registration information
whois corp.local
</syntaxhighlight>
'''Search Engine Results:'''
* Google: "corp.local" filetype:pdf
* LinkedIn: Employees listing
* Company websites: Technology stack, infrastructure hints
'''Public Records:'''
* SEC filings (if public company)
* Job postings (reveal technologies in use)
* Press releases
* Email addresses found in public repositories
'''Social Engineering Reconnaissance:'''
* Dumpster diving for discarded documents
* Pretexting via phone calls
* Observation of employee behavior
* Studying organizational charts
{{Note|Reconnaissance is completely passive and legal. It gathers information that's already public or easily discoverable.}}
---
=== Phase 3: Enumeration ===
'''Enumeration''' is active probing to discover AD infrastructure and resources.
==== Domain Controller Discovery ====
Finding all Domain Controllers in the target domain.
<syntaxhighlight lang="bash">
# Method 1: DNS SRV records
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local
# Method 2: LDAP query
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=computer)"
# Method 3: Port scanning
nmap -p 53,88,389,636,3268,3269 corp.local
</syntaxhighlight>
Results should identify:
* DC names (DC1.corp.local, DC2.corp.local)
* IP addresses
* Operating system versions
* LDAP versions
{{Important|Domain Controller discovery is critical because DCs are the keys to the kingdom in AD. Compromising a DC usually means full domain compromise.}}
==== User and Group Enumeration ====
Discovering users, groups, and their memberships.
<syntaxhighlight lang="bash">
# Enumerate users
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=user)" | grep uid
# Enumerate groups
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=group)"
# Find privileged users
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(memberOf=CN=Domain Admins*)"
</syntaxhighlight>
Information gathered:
* Usernames (for brute force or social engineering)
* Email addresses
* Phone numbers
* Job titles
* Department
* Manager relationships
* Group memberships
==== Service Discovery ====
Identifying services running on domain.
<syntaxhighlight lang="bash">
# Find service principals
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(servicePrincipalName=*)"
# Port scanning for services
masscan 192.168.1.0/24 -p 80,443,445,3389,5985,5986
# SMB enumeration
crackmapexec smb 192.168.1.0/24 --shares
</syntaxhighlight>
Services commonly found:
* HTTP/HTTPS (web servers)
* SMB (file shares)
* RDP (remote access)
* MSSQL (databases)
* Exchange (email)
* Sharepoint
* Custom applications
---
=== Phase 4: Vulnerability Assessment ===
'''Vulnerability Assessment''' identifies security weaknesses without attempting to exploit them.
==== Common AD Vulnerabilities ====
===== 1. Weak Passwords =====
Users with weak, default, or reused passwords.
<syntaxhighlight lang="bash">
# Check for weak passwords
hydra -L users.txt -P wordlist.txt smb://dc1.corp.local
# Common default passwords
admin:admin
administrator:password
guest:guest
</syntaxhighlight>
Impact: User account compromise, credential theft
===== 2. Privilege Escalation Paths =====
Misconfigurations allowing users to gain higher privileges.
* Over-privileged service accounts
* Misconfigured Group Policy
* Weak delegation settings
* Kerberoasting vulnerable accounts
* AS-REP roasting
Impact: Privilege escalation to admin or domain admin
===== 3. Misconfigured Group Policy =====
Group Policy settings that weaken security.
* Weak password policies (8 chars, no complexity)
* Disabled account lockout
* Anonymous LDAP queries allowed
* Null session access enabled
* Unnecessary services enabled
Impact: Credential attacks, unauthorized access
===== 4. Outdated Systems =====
Unpatched systems with known vulnerabilities.
<syntaxhighlight lang="bash">
# Check Windows patch level
wmic qfe list
# Check system version
systeminfo | grep "OS"
</syntaxhighlight>
Impact: Exploitation via known CVEs
===== 5. Certificate Services Vulnerabilities =====
Misconfigured AD Certificate Services (ADCS).
* Overly permissive certificate templates
* ESC1/ESC3/ESC9 vulnerabilities
* Weak enrollment rights
Impact: Certificate abuse for privilege escalation
{{Important|Vulnerability assessment informs the exploitation phase. Findings here guide which attack paths to attempt in Phase 5.}}
---
=== Phase 5: Exploitation ===
'''Exploitation''' is the actual attempt to compromise systems using identified vulnerabilities.
==== Initial Access ====
Getting a foothold in the AD environment.
'''Common Initial Access Methods:'''
1. '''Weak Credentials'''
- Credential brute-forcing
- Default credentials
- Credentials found in public repositories
2. '''Social Engineering'''
- Phishing for credentials
- Pretexting to gain information
- Physical security exploits
3. '''External Attack Surface'''
- Compromised web application
- VPN vulnerability
- Email server vulnerability
- Remote access service (RDP, SSH)
4. '''Supply Chain'''
- Compromised third-party software
- Compromised vendor access
- Trusted partner compromise
{{Note|Initial access is often the hardest part. Once inside AD, lateral movement and privilege escalation are often straightforward.}}
==== Privilege Escalation ====
Escalating from initial access to higher privileges.
'''Privilege Escalation Techniques:'''
1. '''Kerberoasting'''
- Extract service tickets
- Crack offline to recover passwords
- Use recovered credentials for access
2. '''AS-REP Roasting'''
- Exploit accounts with Kerberos preauthentication disabled
- Recover password hashes
- Crack offline
3. '''Group Policy Abuse'''
- Schedule tasks with admin privileges
- Deploy malware via GPO
- Modify startup scripts
4. '''Delegation Abuse'''
- Constrained delegation misconfiguration
- Unconstrained delegation abuse
- Resource-based constrained delegation
5. '''SeImpersonate/SeAssignPrimaryToken'''
- Token impersonation attacks
- Potato exploits
- Service account privilege escalation
==== Lateral Movement ====
Moving from compromised system to other systems.
'''Lateral Movement Techniques:'''
1. '''Pass-the-Hash (PTH)'''
- Use captured NTLM hashes directly
- Bypass password hashing
2. '''Pass-the-Ticket (PTT)'''
- Steal Kerberos tickets
- Use tickets to access services
3. '''DCSync Attack'''
- Replicate AD database
- Extract credential hashes
- Compromise all users
4. '''Living off the Land'''
- Use legitimate tools (PowerShell, certutil, etc.)
- Avoid detection by using known-good tools
<syntaxhighlight lang="bash">
# Example lateral movement chain
1. Compromise user account
2. Enumerate group memberships
3. Identify admin accounts
4. Check where admins are logged in
5. Move to that system
6. Extract credentials
7. Repeat until domain admin reached
</syntaxhighlight>
---
=== Phase 6: Post-Exploitation ===
'''Post-Exploitation''' involves maintaining access and assessing impact after successful compromise.
==== Maintaining Access ====
Establishing persistent backdoors to maintain access.
'''Persistence Techniques:'''
1. '''Golden Tickets'''
- Create valid TGT valid for 10 years
- Can impersonate any user
- Survives password changes
- Most powerful persistence mechanism
2. '''Silver Tickets'''
- Create valid service tickets
- Targeted to specific service
- Lasts until password change (30 days typical)
3. '''DCSync Attacks'''
- Grant replication permissions
- Continuously extract hashes
- Persistent access to credentials
4. '''Scheduled Tasks'''
- Create hidden scheduled tasks
- Run malware on schedule
- Survive reboot
5. '''Backdoor Accounts'''
- Create hidden user accounts
- Set to never expire
- Hide from normal listing
==== Impact Assessment ====
Understanding the damage potential of the compromise.
'''Questions to Answer:'''
* What systems can be accessed?
* What data can be exfiltrated?
* What damage could be caused?
* How many users are affected?
* What critical services would be disrupted?
* What compliance requirements are violated?
{{Important|Impact assessment helps prioritize remediation. High-impact vulnerabilities should be fixed first.}}
---
=== Phase 7: Reporting & Remediation ===
'''Reporting''' communicates findings to stakeholders in a clear, actionable manner.
==== Report Contents ====
A comprehensive penetration test report includes:
1. '''Executive Summary'''
- High-level overview for leadership
- Key findings and business risk
- Overall risk rating
2. '''Methodology'''
- Testing approach used
- Standards and frameworks followed
- Scope and timeline
3. '''Technical Findings'''
- Detailed vulnerability descriptions
- Attack chains demonstrating impact
- Proof-of-concept evidence
4. '''Risk Assessment'''
- CVSS scores for each finding
- Business impact analysis
- Likelihood and severity ratings
5. '''Recommendations'''
- Prioritized remediation roadmap
- Specific, actionable advice
- Estimated effort and timeline
6. '''Appendices'''
- Tool output
- Screenshots
- Detailed technical data
- Glossary of terms
==== Remediation Support ====
Post-report activities:
* '''Debrief meeting:''' Present findings to stakeholders
* '''Q&A:''' Answer questions about findings
* '''Remediation advice:''' Help prioritize fixes
* '''Validation:''' Test that fixes actually work
* '''Follow-up testing:''' Verify vulnerabilities are resolved
{{Note|The best penetration test is one that leads to actual security improvements. Good reporting and remediation support increase the likelihood that findings will be fixed.}}
---
=== Common AD Attack Chains ===
Real-world penetration tests often follow recognizable attack patterns.
==== Attack Chain 1: Weak Credential → Admin ====
<syntaxhighlight lang="text">
1. Discover weak password policy (8 chars, no complexity)
2. Brute-force user credentials
3. Gain access as regular user
4. Enumerate domain structure
5. Find user in admin group
6. Kerberoast admin service accounts
7. Crack offline to recover admin password
8. Access as domain admin
</syntaxhighlight>
==== Attack Chain 2: ADCS Exploitation ====
<syntaxhighlight lang="text">
1. Enumerate AD Certificate Services
2. Find overly permissive certificate template
3. Request certificate with admin identity
4. Use certificate to authenticate as admin
5. Access as domain admin
</syntaxhighlight>
==== Attack Chain 3: Unconstrained Delegation ====
<syntaxhighlight lang="text">
1. Find server with unconstrained delegation
2. Compromise that server
3. Trigger interaction from admin
4. Capture admin's Kerberos ticket
5. Use ticket to access as admin
</syntaxhighlight>
{{Note|Understanding these attack chains helps penetration testers identify likely compromise paths. See [[Active Directory Security and Penetration Testing/Part 3 - Attack Vectors and Exploitation|Part 3]] for detailed exploitation techniques.}}
---
=== Tools Used in AD Penetration Testing ===
{| class="wikitable"
|-
! Tool !! Purpose !! Example
|-
| nmap || Port scanning || nmap -p 53,88,389 dc1.corp.local
|-
| Kerberoast || Extract service tickets || python3 GetUserSPNs.py corp.local/user
|-
| ADPenTest || Orchestrate multiple tools || adpentest --target corp.local --scope-confirmed
|-
| crackmapexec || SMB enumeration || crackmapexec smb 192.168.1.0/24 --shares
|-
| Impacket Suite || AD exploitation || secretsdump.py corp.local/admin:pass@dc1
|-
| BloodHound || Attack path visualization || python3 bloodhound.py -u admin -d corp.local
|-
| Mimikatz || Credential dumping || mimikatz.exe "token::elevate" "lsadump::sam"
|-
| certutil || Certificate operations || certutil -ca.b
|}
---
=== Ethical & Legal Considerations ===
Penetration testing must be conducted ethically and legally.
{{Important|Unauthorized access to computer systems is illegal. Penetration testing is only legal with explicit written authorization.}}
==== Legal Framework ====
In the United States:
* '''CFAA (Computer Fraud and Abuse Act)''' - Criminalizes unauthorized computer access
* '''State laws''' - Many states have additional computer crime statutes
* '''Contracts''' - Written authorization provides legal protection
Internationally:
* EU countries have similar data protection and computer crime laws
* Authorization requirements vary by jurisdiction
* Always consult legal counsel before testing
==== Responsible Disclosure ====
When vulnerabilities are discovered:
1. '''Notify the organization''' - Alert appropriate internal parties
2. '''Provide timeline''' - Give time to fix before public disclosure
3. '''Avoid public disclosure''' - Don't publicize vulnerabilities immediately
4. '''Support remediation''' - Help fix the issues
5. '''Document resolution''' - Verify fixes are effective
{{Warning|Public disclosure of vulnerability details before organization has time to fix puts end users at risk. Responsible disclosure protects everyone.}}
==== Professional Ethics ====
Penetration testers should:
✓ Only test systems with explicit authorization
✓ Follow rules of engagement precisely
✓ Handle confidential data appropriately
✓ Maintain professional conduct
✓ Avoid causing unnecessary disruption
✓ Report findings honestly and completely
✓ Protect client confidentiality
✓ Continuously improve skills and knowledge
---
=== Penetration Test Engagement Model ===
'''Typical penetration test engagement:'''
<syntaxhighlight lang="text">
Week 1-2: Planning & Scoping
├─ Define scope
├─ Obtain authorization
└─ Establish communication plan
Week 2-4: Reconnaissance & Enumeration
├─ Passive information gathering
├─ Active probing
└─ Vulnerability assessment
Week 4-6: Exploitation & Post-Exploitation
├─ Attempt to compromise systems
├─ Maintain access
└─ Document attack paths
Week 6-8: Reporting & Remediation
├─ Write detailed report
├─ Present findings
├─ Support remediation
└─ Validate fixes
</syntaxhighlight>
{{Note|Timelines vary based on scope, environment size, and findings complexity. A small company might take 2-3 weeks, while large enterprises might require months.}}
---
=== Knowledge Check ===
Test your understanding of penetration testing fundamentals:
# What is the primary goal of a penetration test?
# Name three key components of a penetration test authorization.
# Explain the difference between reconnaissance and enumeration.
# What is the purpose of the exploitation phase?
# True or False: Penetration testing can proceed without written authorization.
# Name four common AD vulnerability types.
# What is an attack chain and why is it important?
# Describe a golden ticket and why it's dangerous.
# What should be included in a penetration test report?
# Why is responsible disclosure important?
{{Note|Answers: 1) Identify vulnerabilities before attackers do, assess risk, validate controls 2) Written permission, scope definition, rules of engagement 3) Recon is passive (no direct contact), enumeration is active (probing systems) 4) To compromise systems using identified vulnerabilities 5) False - authorization is legally required 6) Weak passwords, privilege escalation, group policy, outdated systems, ADCS issues 7) Series of exploitation steps leading to objective; important for understanding real compromise 8) Persistent Kerberos ticket valid for ~10 years; allows impersonating any user even after password change 9) Executive summary, methodology, findings, risk assessment, recommendations, appendices 10) Protects end users by giving organizations time to fix before public disclosure}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Plan a Penetration Test'''
Using a lab environment or hypothetical scenario:
1. '''Define Scope:'''
- Which domains to test?
- Which OUs/systems in-scope?
- Which are out-of-scope?
- Testing duration?
2. '''Write Authorization:'''
- Create sample authorization letter
- Define rules of engagement
- Set escalation procedures
3. '''Plan Reconnaissance:'''
- List passive information gathering methods
- Identify publicly available information
- Plan OSINT approach
4. '''Plan Enumeration:'''
- What Domain Controllers need to be found?
- Which users/groups are interesting?
- What services need to be identified?
5. '''Identify Potential Vulnerabilities:'''
- What likely vulnerabilities might exist?
- What attack chains might work?
- What would be the business impact?
This exercise helps you think like a penetration tester and approach AD testing systematically.
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 3 - Lab Setup and Prerequisites|Chapter 3: Lab Setup and Prerequisites]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [[Active Directory Security and Penetration Testing/Part 3 - Attack Vectors and Exploitation|Part 3: Attack Vectors & Exploitation]]
* [https://www.nist.gov/publications/guide-general-server-security NIST SP 800-123: Guide to General Server Security]
* [https://penteststandards.com/ PTES - Penetration Testing Execution Standard]
* [https://owasp.org/www-project-web-security-testing-guide/ OWASP Testing Guide]
---
[[Category:Active Directory Security and Penetration Testing]]
[[Category:Penetration Testing Methodology]]
[[Category:Foundational Knowledge]]
{{BookCat}}
1nqg6xyenwk2lpgi69potn8avjo68jv
4672130
4672123
2026-09-24T12:19:54Z
MathXplore
3097823
removed [[Category:Active Directory Security and Penetration Testing]] using [[Help:Gadget-HotCat|HotCat]]
4672130
wikitext
text/x-wiki
== Chapter 2: Penetration Testing Fundamentals ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What penetration testing is and its purpose
* Standard penetration testing methodologies and phases
* How penetration testing applies to Active Directory
* The complete AD attack lifecycle
* Common attack vectors specific to AD
* How to approach an AD penetration test systematically
* The relationship between reconnaissance, enumeration, and exploitation
* Ethical and legal considerations in penetration testing
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
* Understanding of basic networking concepts
* Familiarity with Windows and Linux command-line interfaces
* No prior penetration testing experience required
---
=== What is Penetration Testing? ===
'''Penetration Testing''' is a controlled, authorized security assessment where qualified professionals attempt to identify and exploit security vulnerabilities in systems, networks, or applications.
==== Key Characteristics ====
✓ '''Authorized:''' Explicit written permission from system owner
✓ '''Controlled:''' Defined scope and rules of engagement
✓ '''Professional:''' Conducted by trained security professionals
✓ '''Systematic:''' Follows established methodologies
✓ '''Documented:''' Detailed findings and recommendations provided
✓ '''Actionable:''' Results lead to security improvements
==== Goals of Penetration Testing ====
1. '''Identify vulnerabilities''' - Find security weaknesses before attackers do
2. '''Assess risk''' - Evaluate the real-world impact of vulnerabilities
3. '''Validate controls''' - Test if security measures actually work
4. '''Simulate attacks''' - Understand how attackers would compromise systems
5. '''Provide recommendations''' - Give actionable remediation advice
6. '''Improve security posture''' - Help organizations become more secure
{{Important|Penetration testing is NOT hacking. It is an authorized, ethical, and legal assessment conducted with proper scope definition and rules of engagement.}}
---
=== Penetration Testing Methodologies ===
Several standardized methodologies guide penetration testing work.
==== NIST SP 800-115 ====
The NIST Cybersecurity Framework defines four phases:
# '''Planning and Scoping'''
# '''Discovery and Enumeration'''
# '''Vulnerability Detection and Analysis'''
# '''Reporting and Recommendations'''
==== PTES (Penetration Testing Execution Standard) ====
PTES defines seven phases:
# '''Pre-engagement Interactions''' - Define scope, rules of engagement, timeline
# '''Intelligence Gathering''' - Passive reconnaissance
# '''Threat Modeling''' - Identify likely attack vectors
# '''Vulnerability Analysis''' - Active scanning and testing
# '''Exploitation''' - Attempt to compromise systems
# '''Post-Exploitation''' - Maintain access, assess impact
# '''Reporting''' - Document findings and recommendations
==== OWASP Testing Guide ====
OWASP (though primarily for web applications) provides a systematic approach to security testing.
==== OSSTMM ====
Open Source Security Testing Methodology Manual provides comprehensive security testing framework.
{{Note|While different methodologies exist, they all follow the same general flow: plan → reconnaissance → enumerate → exploit → document. Most practitioners adapt these frameworks to their needs and organizational requirements.}}
---
=== Active Directory Penetration Testing Phases ===
AD penetration testing typically follows this flow:
<syntaxhighlight lang="text">
AD Penetration Test Phases:
┌─────────────────────────────────────────────────────────────┐
│ Phase 1: Planning & Scoping │
│ - Define targets and scope │
│ - Obtain written authorization │
│ - Set rules of engagement │
│ - Identify key stakeholders │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 2: Reconnaissance │
│ - Passive information gathering │
│ - No direct system interaction │
│ - OSINT (Open Source Intelligence) │
│ - Identify domain structure from public sources │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 3: Enumeration │
│ - Active probing of AD infrastructure │
│ - Identify Domain Controllers │
│ - Enumerate users, groups, computers │
│ - Discover services and open ports │
│ - Assess initial access options │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 4: Vulnerability Assessment │
│ - Identify security misconfigurations │
│ - Test for known vulnerabilities │
│ - Weak credentials │
│ - Over-privileged accounts │
│ - Poor Group Policy settings │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 5: Exploitation │
│ - Attempt to compromise systems │
│ - Gain initial access │
│ - Escalate privileges │
│ - Move laterally across domain │
│ - Reach primary objectives │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 6: Post-Exploitation │
│ - Maintain access │
│ - Document the attack chain │
│ - Assess business impact │
│ - Identify lateral movement paths │
│ - Gather evidence of compromise │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 7: Reporting & Remediation │
│ - Document all findings │
│ - Provide risk ratings │
│ - Recommend remediations │
│ - Prioritize by impact and effort │
│ - Support remediation validation │
└─────────────────────────────────────────────────────────────┘
</syntaxhighlight>
---
=== Phase 1: Planning & Scoping ===
==== Defining Scope ====
The scope defines what systems can and cannot be tested.
'''In-scope items:'''
* Which domains to test (corp.local, sales.local, etc.)
* Which OUs to target (Engineering, Finance, etc.)
* Which servers/systems can be tested
* Testing timeframe and duration
* Who should be contacted in case of issues
'''Out-of-scope items:'''
* Systems that should NOT be tested
* Production systems that cannot be disrupted
* Restricted areas or data
* Third-party systems without permission
{{Important|Clear scope definition protects both the tester and the organization. Ambiguous scope leads to misunderstandings and potential legal issues.}}
==== Authorization ====
Written authorization is '''legally required'''.
Authorization should include:
* Explicit permission to conduct testing
* Start and end dates
* Scope of testing
* Names of authorized testers
* Contact person for questions
* Description of testing techniques
* Acceptable impact level (non-disruptive, can disrupt services, etc.)
==== Rules of Engagement ====
Rules of engagement define how testing will be conducted.
Typical ROE covers:
* '''Timing:''' When testing can occur (business hours? weekends? 24/7?)
* '''Techniques:''' Which attack techniques are allowed
* '''Data handling:''' How sensitive data discovered will be handled
* '''Communication:''' How to report issues/escalations
* '''Escalation procedures:''' What to do if problems occur
* '''Exit procedures:''' How to cleanly leave systems post-test
{{Warning|Always follow the rules of engagement. Going beyond approved scope or techniques can result in legal consequences, even if testing is authorized.}}
---
=== Phase 2: Reconnaissance ===
'''Reconnaissance''' is passive information gathering about the target domain.
==== Passive Information Gathering ====
Conducted without directly interacting with target systems.
'''Public DNS Records:'''
<syntaxhighlight lang="bash">
# Query DNS for domain information
nslookup corp.local
dig corp.local MX
dig corp.local NS
dig corp.local TXT
</syntaxhighlight>
'''WHOIS Lookups:'''
<syntaxhighlight lang="bash">
# Get domain registration information
whois corp.local
</syntaxhighlight>
'''Search Engine Results:'''
* Google: "corp.local" filetype:pdf
* LinkedIn: Employees listing
* Company websites: Technology stack, infrastructure hints
'''Public Records:'''
* SEC filings (if public company)
* Job postings (reveal technologies in use)
* Press releases
* Email addresses found in public repositories
'''Social Engineering Reconnaissance:'''
* Dumpster diving for discarded documents
* Pretexting via phone calls
* Observation of employee behavior
* Studying organizational charts
{{Note|Reconnaissance is completely passive and legal. It gathers information that's already public or easily discoverable.}}
---
=== Phase 3: Enumeration ===
'''Enumeration''' is active probing to discover AD infrastructure and resources.
==== Domain Controller Discovery ====
Finding all Domain Controllers in the target domain.
<syntaxhighlight lang="bash">
# Method 1: DNS SRV records
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local
# Method 2: LDAP query
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=computer)"
# Method 3: Port scanning
nmap -p 53,88,389,636,3268,3269 corp.local
</syntaxhighlight>
Results should identify:
* DC names (DC1.corp.local, DC2.corp.local)
* IP addresses
* Operating system versions
* LDAP versions
{{Important|Domain Controller discovery is critical because DCs are the keys to the kingdom in AD. Compromising a DC usually means full domain compromise.}}
==== User and Group Enumeration ====
Discovering users, groups, and their memberships.
<syntaxhighlight lang="bash">
# Enumerate users
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=user)" | grep uid
# Enumerate groups
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=group)"
# Find privileged users
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(memberOf=CN=Domain Admins*)"
</syntaxhighlight>
Information gathered:
* Usernames (for brute force or social engineering)
* Email addresses
* Phone numbers
* Job titles
* Department
* Manager relationships
* Group memberships
==== Service Discovery ====
Identifying services running on domain.
<syntaxhighlight lang="bash">
# Find service principals
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(servicePrincipalName=*)"
# Port scanning for services
masscan 192.168.1.0/24 -p 80,443,445,3389,5985,5986
# SMB enumeration
crackmapexec smb 192.168.1.0/24 --shares
</syntaxhighlight>
Services commonly found:
* HTTP/HTTPS (web servers)
* SMB (file shares)
* RDP (remote access)
* MSSQL (databases)
* Exchange (email)
* Sharepoint
* Custom applications
---
=== Phase 4: Vulnerability Assessment ===
'''Vulnerability Assessment''' identifies security weaknesses without attempting to exploit them.
==== Common AD Vulnerabilities ====
===== 1. Weak Passwords =====
Users with weak, default, or reused passwords.
<syntaxhighlight lang="bash">
# Check for weak passwords
hydra -L users.txt -P wordlist.txt smb://dc1.corp.local
# Common default passwords
admin:admin
administrator:password
guest:guest
</syntaxhighlight>
Impact: User account compromise, credential theft
===== 2. Privilege Escalation Paths =====
Misconfigurations allowing users to gain higher privileges.
* Over-privileged service accounts
* Misconfigured Group Policy
* Weak delegation settings
* Kerberoasting vulnerable accounts
* AS-REP roasting
Impact: Privilege escalation to admin or domain admin
===== 3. Misconfigured Group Policy =====
Group Policy settings that weaken security.
* Weak password policies (8 chars, no complexity)
* Disabled account lockout
* Anonymous LDAP queries allowed
* Null session access enabled
* Unnecessary services enabled
Impact: Credential attacks, unauthorized access
===== 4. Outdated Systems =====
Unpatched systems with known vulnerabilities.
<syntaxhighlight lang="bash">
# Check Windows patch level
wmic qfe list
# Check system version
systeminfo | grep "OS"
</syntaxhighlight>
Impact: Exploitation via known CVEs
===== 5. Certificate Services Vulnerabilities =====
Misconfigured AD Certificate Services (ADCS).
* Overly permissive certificate templates
* ESC1/ESC3/ESC9 vulnerabilities
* Weak enrollment rights
Impact: Certificate abuse for privilege escalation
{{Important|Vulnerability assessment informs the exploitation phase. Findings here guide which attack paths to attempt in Phase 5.}}
---
=== Phase 5: Exploitation ===
'''Exploitation''' is the actual attempt to compromise systems using identified vulnerabilities.
==== Initial Access ====
Getting a foothold in the AD environment.
'''Common Initial Access Methods:'''
1. '''Weak Credentials'''
- Credential brute-forcing
- Default credentials
- Credentials found in public repositories
2. '''Social Engineering'''
- Phishing for credentials
- Pretexting to gain information
- Physical security exploits
3. '''External Attack Surface'''
- Compromised web application
- VPN vulnerability
- Email server vulnerability
- Remote access service (RDP, SSH)
4. '''Supply Chain'''
- Compromised third-party software
- Compromised vendor access
- Trusted partner compromise
{{Note|Initial access is often the hardest part. Once inside AD, lateral movement and privilege escalation are often straightforward.}}
==== Privilege Escalation ====
Escalating from initial access to higher privileges.
'''Privilege Escalation Techniques:'''
1. '''Kerberoasting'''
- Extract service tickets
- Crack offline to recover passwords
- Use recovered credentials for access
2. '''AS-REP Roasting'''
- Exploit accounts with Kerberos preauthentication disabled
- Recover password hashes
- Crack offline
3. '''Group Policy Abuse'''
- Schedule tasks with admin privileges
- Deploy malware via GPO
- Modify startup scripts
4. '''Delegation Abuse'''
- Constrained delegation misconfiguration
- Unconstrained delegation abuse
- Resource-based constrained delegation
5. '''SeImpersonate/SeAssignPrimaryToken'''
- Token impersonation attacks
- Potato exploits
- Service account privilege escalation
==== Lateral Movement ====
Moving from compromised system to other systems.
'''Lateral Movement Techniques:'''
1. '''Pass-the-Hash (PTH)'''
- Use captured NTLM hashes directly
- Bypass password hashing
2. '''Pass-the-Ticket (PTT)'''
- Steal Kerberos tickets
- Use tickets to access services
3. '''DCSync Attack'''
- Replicate AD database
- Extract credential hashes
- Compromise all users
4. '''Living off the Land'''
- Use legitimate tools (PowerShell, certutil, etc.)
- Avoid detection by using known-good tools
<syntaxhighlight lang="bash">
# Example lateral movement chain
1. Compromise user account
2. Enumerate group memberships
3. Identify admin accounts
4. Check where admins are logged in
5. Move to that system
6. Extract credentials
7. Repeat until domain admin reached
</syntaxhighlight>
---
=== Phase 6: Post-Exploitation ===
'''Post-Exploitation''' involves maintaining access and assessing impact after successful compromise.
==== Maintaining Access ====
Establishing persistent backdoors to maintain access.
'''Persistence Techniques:'''
1. '''Golden Tickets'''
- Create valid TGT valid for 10 years
- Can impersonate any user
- Survives password changes
- Most powerful persistence mechanism
2. '''Silver Tickets'''
- Create valid service tickets
- Targeted to specific service
- Lasts until password change (30 days typical)
3. '''DCSync Attacks'''
- Grant replication permissions
- Continuously extract hashes
- Persistent access to credentials
4. '''Scheduled Tasks'''
- Create hidden scheduled tasks
- Run malware on schedule
- Survive reboot
5. '''Backdoor Accounts'''
- Create hidden user accounts
- Set to never expire
- Hide from normal listing
==== Impact Assessment ====
Understanding the damage potential of the compromise.
'''Questions to Answer:'''
* What systems can be accessed?
* What data can be exfiltrated?
* What damage could be caused?
* How many users are affected?
* What critical services would be disrupted?
* What compliance requirements are violated?
{{Important|Impact assessment helps prioritize remediation. High-impact vulnerabilities should be fixed first.}}
---
=== Phase 7: Reporting & Remediation ===
'''Reporting''' communicates findings to stakeholders in a clear, actionable manner.
==== Report Contents ====
A comprehensive penetration test report includes:
1. '''Executive Summary'''
- High-level overview for leadership
- Key findings and business risk
- Overall risk rating
2. '''Methodology'''
- Testing approach used
- Standards and frameworks followed
- Scope and timeline
3. '''Technical Findings'''
- Detailed vulnerability descriptions
- Attack chains demonstrating impact
- Proof-of-concept evidence
4. '''Risk Assessment'''
- CVSS scores for each finding
- Business impact analysis
- Likelihood and severity ratings
5. '''Recommendations'''
- Prioritized remediation roadmap
- Specific, actionable advice
- Estimated effort and timeline
6. '''Appendices'''
- Tool output
- Screenshots
- Detailed technical data
- Glossary of terms
==== Remediation Support ====
Post-report activities:
* '''Debrief meeting:''' Present findings to stakeholders
* '''Q&A:''' Answer questions about findings
* '''Remediation advice:''' Help prioritize fixes
* '''Validation:''' Test that fixes actually work
* '''Follow-up testing:''' Verify vulnerabilities are resolved
{{Note|The best penetration test is one that leads to actual security improvements. Good reporting and remediation support increase the likelihood that findings will be fixed.}}
---
=== Common AD Attack Chains ===
Real-world penetration tests often follow recognizable attack patterns.
==== Attack Chain 1: Weak Credential → Admin ====
<syntaxhighlight lang="text">
1. Discover weak password policy (8 chars, no complexity)
2. Brute-force user credentials
3. Gain access as regular user
4. Enumerate domain structure
5. Find user in admin group
6. Kerberoast admin service accounts
7. Crack offline to recover admin password
8. Access as domain admin
</syntaxhighlight>
==== Attack Chain 2: ADCS Exploitation ====
<syntaxhighlight lang="text">
1. Enumerate AD Certificate Services
2. Find overly permissive certificate template
3. Request certificate with admin identity
4. Use certificate to authenticate as admin
5. Access as domain admin
</syntaxhighlight>
==== Attack Chain 3: Unconstrained Delegation ====
<syntaxhighlight lang="text">
1. Find server with unconstrained delegation
2. Compromise that server
3. Trigger interaction from admin
4. Capture admin's Kerberos ticket
5. Use ticket to access as admin
</syntaxhighlight>
{{Note|Understanding these attack chains helps penetration testers identify likely compromise paths. See [[Active Directory Security and Penetration Testing/Part 3 - Attack Vectors and Exploitation|Part 3]] for detailed exploitation techniques.}}
---
=== Tools Used in AD Penetration Testing ===
{| class="wikitable"
|-
! Tool !! Purpose !! Example
|-
| nmap || Port scanning || nmap -p 53,88,389 dc1.corp.local
|-
| Kerberoast || Extract service tickets || python3 GetUserSPNs.py corp.local/user
|-
| ADPenTest || Orchestrate multiple tools || adpentest --target corp.local --scope-confirmed
|-
| crackmapexec || SMB enumeration || crackmapexec smb 192.168.1.0/24 --shares
|-
| Impacket Suite || AD exploitation || secretsdump.py corp.local/admin:pass@dc1
|-
| BloodHound || Attack path visualization || python3 bloodhound.py -u admin -d corp.local
|-
| Mimikatz || Credential dumping || mimikatz.exe "token::elevate" "lsadump::sam"
|-
| certutil || Certificate operations || certutil -ca.b
|}
---
=== Ethical & Legal Considerations ===
Penetration testing must be conducted ethically and legally.
{{Important|Unauthorized access to computer systems is illegal. Penetration testing is only legal with explicit written authorization.}}
==== Legal Framework ====
In the United States:
* '''CFAA (Computer Fraud and Abuse Act)''' - Criminalizes unauthorized computer access
* '''State laws''' - Many states have additional computer crime statutes
* '''Contracts''' - Written authorization provides legal protection
Internationally:
* EU countries have similar data protection and computer crime laws
* Authorization requirements vary by jurisdiction
* Always consult legal counsel before testing
==== Responsible Disclosure ====
When vulnerabilities are discovered:
1. '''Notify the organization''' - Alert appropriate internal parties
2. '''Provide timeline''' - Give time to fix before public disclosure
3. '''Avoid public disclosure''' - Don't publicize vulnerabilities immediately
4. '''Support remediation''' - Help fix the issues
5. '''Document resolution''' - Verify fixes are effective
{{Warning|Public disclosure of vulnerability details before organization has time to fix puts end users at risk. Responsible disclosure protects everyone.}}
==== Professional Ethics ====
Penetration testers should:
✓ Only test systems with explicit authorization
✓ Follow rules of engagement precisely
✓ Handle confidential data appropriately
✓ Maintain professional conduct
✓ Avoid causing unnecessary disruption
✓ Report findings honestly and completely
✓ Protect client confidentiality
✓ Continuously improve skills and knowledge
---
=== Penetration Test Engagement Model ===
'''Typical penetration test engagement:'''
<syntaxhighlight lang="text">
Week 1-2: Planning & Scoping
├─ Define scope
├─ Obtain authorization
└─ Establish communication plan
Week 2-4: Reconnaissance & Enumeration
├─ Passive information gathering
├─ Active probing
└─ Vulnerability assessment
Week 4-6: Exploitation & Post-Exploitation
├─ Attempt to compromise systems
├─ Maintain access
└─ Document attack paths
Week 6-8: Reporting & Remediation
├─ Write detailed report
├─ Present findings
├─ Support remediation
└─ Validate fixes
</syntaxhighlight>
{{Note|Timelines vary based on scope, environment size, and findings complexity. A small company might take 2-3 weeks, while large enterprises might require months.}}
---
=== Knowledge Check ===
Test your understanding of penetration testing fundamentals:
# What is the primary goal of a penetration test?
# Name three key components of a penetration test authorization.
# Explain the difference between reconnaissance and enumeration.
# What is the purpose of the exploitation phase?
# True or False: Penetration testing can proceed without written authorization.
# Name four common AD vulnerability types.
# What is an attack chain and why is it important?
# Describe a golden ticket and why it's dangerous.
# What should be included in a penetration test report?
# Why is responsible disclosure important?
{{Note|Answers: 1) Identify vulnerabilities before attackers do, assess risk, validate controls 2) Written permission, scope definition, rules of engagement 3) Recon is passive (no direct contact), enumeration is active (probing systems) 4) To compromise systems using identified vulnerabilities 5) False - authorization is legally required 6) Weak passwords, privilege escalation, group policy, outdated systems, ADCS issues 7) Series of exploitation steps leading to objective; important for understanding real compromise 8) Persistent Kerberos ticket valid for ~10 years; allows impersonating any user even after password change 9) Executive summary, methodology, findings, risk assessment, recommendations, appendices 10) Protects end users by giving organizations time to fix before public disclosure}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Plan a Penetration Test'''
Using a lab environment or hypothetical scenario:
1. '''Define Scope:'''
- Which domains to test?
- Which OUs/systems in-scope?
- Which are out-of-scope?
- Testing duration?
2. '''Write Authorization:'''
- Create sample authorization letter
- Define rules of engagement
- Set escalation procedures
3. '''Plan Reconnaissance:'''
- List passive information gathering methods
- Identify publicly available information
- Plan OSINT approach
4. '''Plan Enumeration:'''
- What Domain Controllers need to be found?
- Which users/groups are interesting?
- What services need to be identified?
5. '''Identify Potential Vulnerabilities:'''
- What likely vulnerabilities might exist?
- What attack chains might work?
- What would be the business impact?
This exercise helps you think like a penetration tester and approach AD testing systematically.
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 3 - Lab Setup and Prerequisites|Chapter 3: Lab Setup and Prerequisites]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [[Active Directory Security and Penetration Testing/Part 3 - Attack Vectors and Exploitation|Part 3: Attack Vectors & Exploitation]]
* [https://www.nist.gov/publications/guide-general-server-security NIST SP 800-123: Guide to General Server Security]
* [https://penteststandards.com/ PTES - Penetration Testing Execution Standard]
* [https://owasp.org/www-project-web-security-testing-guide/ OWASP Testing Guide]
---
[[Category:Penetration Testing Methodology]]
[[Category:Foundational Knowledge]]
{{BookCat}}
culdma3urk73771q3jlk13gcgs51l5o
4672158
4672130
2026-09-24T15:29:39Z
Kittycataclysm
3371989
flag
4672158
wikitext
text/x-wiki
{{AI-suspected|reason=mass content addition, typographical quirks, unformatted lists, inconsistent formatting, broken refs, non-WB categories, reliance on lists, formatting errors}}
== Chapter 2: Penetration Testing Fundamentals ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What penetration testing is and its purpose
* Standard penetration testing methodologies and phases
* How penetration testing applies to Active Directory
* The complete AD attack lifecycle
* Common attack vectors specific to AD
* How to approach an AD penetration test systematically
* The relationship between reconnaissance, enumeration, and exploitation
* Ethical and legal considerations in penetration testing
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
* Understanding of basic networking concepts
* Familiarity with Windows and Linux command-line interfaces
* No prior penetration testing experience required
---
=== What is Penetration Testing? ===
'''Penetration Testing''' is a controlled, authorized security assessment where qualified professionals attempt to identify and exploit security vulnerabilities in systems, networks, or applications.
==== Key Characteristics ====
✓ '''Authorized:''' Explicit written permission from system owner
✓ '''Controlled:''' Defined scope and rules of engagement
✓ '''Professional:''' Conducted by trained security professionals
✓ '''Systematic:''' Follows established methodologies
✓ '''Documented:''' Detailed findings and recommendations provided
✓ '''Actionable:''' Results lead to security improvements
==== Goals of Penetration Testing ====
1. '''Identify vulnerabilities''' - Find security weaknesses before attackers do
2. '''Assess risk''' - Evaluate the real-world impact of vulnerabilities
3. '''Validate controls''' - Test if security measures actually work
4. '''Simulate attacks''' - Understand how attackers would compromise systems
5. '''Provide recommendations''' - Give actionable remediation advice
6. '''Improve security posture''' - Help organizations become more secure
{{Important|Penetration testing is NOT hacking. It is an authorized, ethical, and legal assessment conducted with proper scope definition and rules of engagement.}}
---
=== Penetration Testing Methodologies ===
Several standardized methodologies guide penetration testing work.
==== NIST SP 800-115 ====
The NIST Cybersecurity Framework defines four phases:
# '''Planning and Scoping'''
# '''Discovery and Enumeration'''
# '''Vulnerability Detection and Analysis'''
# '''Reporting and Recommendations'''
==== PTES (Penetration Testing Execution Standard) ====
PTES defines seven phases:
# '''Pre-engagement Interactions''' - Define scope, rules of engagement, timeline
# '''Intelligence Gathering''' - Passive reconnaissance
# '''Threat Modeling''' - Identify likely attack vectors
# '''Vulnerability Analysis''' - Active scanning and testing
# '''Exploitation''' - Attempt to compromise systems
# '''Post-Exploitation''' - Maintain access, assess impact
# '''Reporting''' - Document findings and recommendations
==== OWASP Testing Guide ====
OWASP (though primarily for web applications) provides a systematic approach to security testing.
==== OSSTMM ====
Open Source Security Testing Methodology Manual provides comprehensive security testing framework.
{{Note|While different methodologies exist, they all follow the same general flow: plan → reconnaissance → enumerate → exploit → document. Most practitioners adapt these frameworks to their needs and organizational requirements.}}
---
=== Active Directory Penetration Testing Phases ===
AD penetration testing typically follows this flow:
<syntaxhighlight lang="text">
AD Penetration Test Phases:
┌─────────────────────────────────────────────────────────────┐
│ Phase 1: Planning & Scoping │
│ - Define targets and scope │
│ - Obtain written authorization │
│ - Set rules of engagement │
│ - Identify key stakeholders │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 2: Reconnaissance │
│ - Passive information gathering │
│ - No direct system interaction │
│ - OSINT (Open Source Intelligence) │
│ - Identify domain structure from public sources │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 3: Enumeration │
│ - Active probing of AD infrastructure │
│ - Identify Domain Controllers │
│ - Enumerate users, groups, computers │
│ - Discover services and open ports │
│ - Assess initial access options │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 4: Vulnerability Assessment │
│ - Identify security misconfigurations │
│ - Test for known vulnerabilities │
│ - Weak credentials │
│ - Over-privileged accounts │
│ - Poor Group Policy settings │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 5: Exploitation │
│ - Attempt to compromise systems │
│ - Gain initial access │
│ - Escalate privileges │
│ - Move laterally across domain │
│ - Reach primary objectives │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 6: Post-Exploitation │
│ - Maintain access │
│ - Document the attack chain │
│ - Assess business impact │
│ - Identify lateral movement paths │
│ - Gather evidence of compromise │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Phase 7: Reporting & Remediation │
│ - Document all findings │
│ - Provide risk ratings │
│ - Recommend remediations │
│ - Prioritize by impact and effort │
│ - Support remediation validation │
└─────────────────────────────────────────────────────────────┘
</syntaxhighlight>
---
=== Phase 1: Planning & Scoping ===
==== Defining Scope ====
The scope defines what systems can and cannot be tested.
'''In-scope items:'''
* Which domains to test (corp.local, sales.local, etc.)
* Which OUs to target (Engineering, Finance, etc.)
* Which servers/systems can be tested
* Testing timeframe and duration
* Who should be contacted in case of issues
'''Out-of-scope items:'''
* Systems that should NOT be tested
* Production systems that cannot be disrupted
* Restricted areas or data
* Third-party systems without permission
{{Important|Clear scope definition protects both the tester and the organization. Ambiguous scope leads to misunderstandings and potential legal issues.}}
==== Authorization ====
Written authorization is '''legally required'''.
Authorization should include:
* Explicit permission to conduct testing
* Start and end dates
* Scope of testing
* Names of authorized testers
* Contact person for questions
* Description of testing techniques
* Acceptable impact level (non-disruptive, can disrupt services, etc.)
==== Rules of Engagement ====
Rules of engagement define how testing will be conducted.
Typical ROE covers:
* '''Timing:''' When testing can occur (business hours? weekends? 24/7?)
* '''Techniques:''' Which attack techniques are allowed
* '''Data handling:''' How sensitive data discovered will be handled
* '''Communication:''' How to report issues/escalations
* '''Escalation procedures:''' What to do if problems occur
* '''Exit procedures:''' How to cleanly leave systems post-test
{{Warning|Always follow the rules of engagement. Going beyond approved scope or techniques can result in legal consequences, even if testing is authorized.}}
---
=== Phase 2: Reconnaissance ===
'''Reconnaissance''' is passive information gathering about the target domain.
==== Passive Information Gathering ====
Conducted without directly interacting with target systems.
'''Public DNS Records:'''
<syntaxhighlight lang="bash">
# Query DNS for domain information
nslookup corp.local
dig corp.local MX
dig corp.local NS
dig corp.local TXT
</syntaxhighlight>
'''WHOIS Lookups:'''
<syntaxhighlight lang="bash">
# Get domain registration information
whois corp.local
</syntaxhighlight>
'''Search Engine Results:'''
* Google: "corp.local" filetype:pdf
* LinkedIn: Employees listing
* Company websites: Technology stack, infrastructure hints
'''Public Records:'''
* SEC filings (if public company)
* Job postings (reveal technologies in use)
* Press releases
* Email addresses found in public repositories
'''Social Engineering Reconnaissance:'''
* Dumpster diving for discarded documents
* Pretexting via phone calls
* Observation of employee behavior
* Studying organizational charts
{{Note|Reconnaissance is completely passive and legal. It gathers information that's already public or easily discoverable.}}
---
=== Phase 3: Enumeration ===
'''Enumeration''' is active probing to discover AD infrastructure and resources.
==== Domain Controller Discovery ====
Finding all Domain Controllers in the target domain.
<syntaxhighlight lang="bash">
# Method 1: DNS SRV records
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local
# Method 2: LDAP query
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=computer)"
# Method 3: Port scanning
nmap -p 53,88,389,636,3268,3269 corp.local
</syntaxhighlight>
Results should identify:
* DC names (DC1.corp.local, DC2.corp.local)
* IP addresses
* Operating system versions
* LDAP versions
{{Important|Domain Controller discovery is critical because DCs are the keys to the kingdom in AD. Compromising a DC usually means full domain compromise.}}
==== User and Group Enumeration ====
Discovering users, groups, and their memberships.
<syntaxhighlight lang="bash">
# Enumerate users
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=user)" | grep uid
# Enumerate groups
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(objectClass=group)"
# Find privileged users
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(memberOf=CN=Domain Admins*)"
</syntaxhighlight>
Information gathered:
* Usernames (for brute force or social engineering)
* Email addresses
* Phone numbers
* Job titles
* Department
* Manager relationships
* Group memberships
==== Service Discovery ====
Identifying services running on domain.
<syntaxhighlight lang="bash">
# Find service principals
ldapsearch -x -h corp.local -b "DC=corp,DC=local"
"(servicePrincipalName=*)"
# Port scanning for services
masscan 192.168.1.0/24 -p 80,443,445,3389,5985,5986
# SMB enumeration
crackmapexec smb 192.168.1.0/24 --shares
</syntaxhighlight>
Services commonly found:
* HTTP/HTTPS (web servers)
* SMB (file shares)
* RDP (remote access)
* MSSQL (databases)
* Exchange (email)
* Sharepoint
* Custom applications
---
=== Phase 4: Vulnerability Assessment ===
'''Vulnerability Assessment''' identifies security weaknesses without attempting to exploit them.
==== Common AD Vulnerabilities ====
===== 1. Weak Passwords =====
Users with weak, default, or reused passwords.
<syntaxhighlight lang="bash">
# Check for weak passwords
hydra -L users.txt -P wordlist.txt smb://dc1.corp.local
# Common default passwords
admin:admin
administrator:password
guest:guest
</syntaxhighlight>
Impact: User account compromise, credential theft
===== 2. Privilege Escalation Paths =====
Misconfigurations allowing users to gain higher privileges.
* Over-privileged service accounts
* Misconfigured Group Policy
* Weak delegation settings
* Kerberoasting vulnerable accounts
* AS-REP roasting
Impact: Privilege escalation to admin or domain admin
===== 3. Misconfigured Group Policy =====
Group Policy settings that weaken security.
* Weak password policies (8 chars, no complexity)
* Disabled account lockout
* Anonymous LDAP queries allowed
* Null session access enabled
* Unnecessary services enabled
Impact: Credential attacks, unauthorized access
===== 4. Outdated Systems =====
Unpatched systems with known vulnerabilities.
<syntaxhighlight lang="bash">
# Check Windows patch level
wmic qfe list
# Check system version
systeminfo | grep "OS"
</syntaxhighlight>
Impact: Exploitation via known CVEs
===== 5. Certificate Services Vulnerabilities =====
Misconfigured AD Certificate Services (ADCS).
* Overly permissive certificate templates
* ESC1/ESC3/ESC9 vulnerabilities
* Weak enrollment rights
Impact: Certificate abuse for privilege escalation
{{Important|Vulnerability assessment informs the exploitation phase. Findings here guide which attack paths to attempt in Phase 5.}}
---
=== Phase 5: Exploitation ===
'''Exploitation''' is the actual attempt to compromise systems using identified vulnerabilities.
==== Initial Access ====
Getting a foothold in the AD environment.
'''Common Initial Access Methods:'''
1. '''Weak Credentials'''
- Credential brute-forcing
- Default credentials
- Credentials found in public repositories
2. '''Social Engineering'''
- Phishing for credentials
- Pretexting to gain information
- Physical security exploits
3. '''External Attack Surface'''
- Compromised web application
- VPN vulnerability
- Email server vulnerability
- Remote access service (RDP, SSH)
4. '''Supply Chain'''
- Compromised third-party software
- Compromised vendor access
- Trusted partner compromise
{{Note|Initial access is often the hardest part. Once inside AD, lateral movement and privilege escalation are often straightforward.}}
==== Privilege Escalation ====
Escalating from initial access to higher privileges.
'''Privilege Escalation Techniques:'''
1. '''Kerberoasting'''
- Extract service tickets
- Crack offline to recover passwords
- Use recovered credentials for access
2. '''AS-REP Roasting'''
- Exploit accounts with Kerberos preauthentication disabled
- Recover password hashes
- Crack offline
3. '''Group Policy Abuse'''
- Schedule tasks with admin privileges
- Deploy malware via GPO
- Modify startup scripts
4. '''Delegation Abuse'''
- Constrained delegation misconfiguration
- Unconstrained delegation abuse
- Resource-based constrained delegation
5. '''SeImpersonate/SeAssignPrimaryToken'''
- Token impersonation attacks
- Potato exploits
- Service account privilege escalation
==== Lateral Movement ====
Moving from compromised system to other systems.
'''Lateral Movement Techniques:'''
1. '''Pass-the-Hash (PTH)'''
- Use captured NTLM hashes directly
- Bypass password hashing
2. '''Pass-the-Ticket (PTT)'''
- Steal Kerberos tickets
- Use tickets to access services
3. '''DCSync Attack'''
- Replicate AD database
- Extract credential hashes
- Compromise all users
4. '''Living off the Land'''
- Use legitimate tools (PowerShell, certutil, etc.)
- Avoid detection by using known-good tools
<syntaxhighlight lang="bash">
# Example lateral movement chain
1. Compromise user account
2. Enumerate group memberships
3. Identify admin accounts
4. Check where admins are logged in
5. Move to that system
6. Extract credentials
7. Repeat until domain admin reached
</syntaxhighlight>
---
=== Phase 6: Post-Exploitation ===
'''Post-Exploitation''' involves maintaining access and assessing impact after successful compromise.
==== Maintaining Access ====
Establishing persistent backdoors to maintain access.
'''Persistence Techniques:'''
1. '''Golden Tickets'''
- Create valid TGT valid for 10 years
- Can impersonate any user
- Survives password changes
- Most powerful persistence mechanism
2. '''Silver Tickets'''
- Create valid service tickets
- Targeted to specific service
- Lasts until password change (30 days typical)
3. '''DCSync Attacks'''
- Grant replication permissions
- Continuously extract hashes
- Persistent access to credentials
4. '''Scheduled Tasks'''
- Create hidden scheduled tasks
- Run malware on schedule
- Survive reboot
5. '''Backdoor Accounts'''
- Create hidden user accounts
- Set to never expire
- Hide from normal listing
==== Impact Assessment ====
Understanding the damage potential of the compromise.
'''Questions to Answer:'''
* What systems can be accessed?
* What data can be exfiltrated?
* What damage could be caused?
* How many users are affected?
* What critical services would be disrupted?
* What compliance requirements are violated?
{{Important|Impact assessment helps prioritize remediation. High-impact vulnerabilities should be fixed first.}}
---
=== Phase 7: Reporting & Remediation ===
'''Reporting''' communicates findings to stakeholders in a clear, actionable manner.
==== Report Contents ====
A comprehensive penetration test report includes:
1. '''Executive Summary'''
- High-level overview for leadership
- Key findings and business risk
- Overall risk rating
2. '''Methodology'''
- Testing approach used
- Standards and frameworks followed
- Scope and timeline
3. '''Technical Findings'''
- Detailed vulnerability descriptions
- Attack chains demonstrating impact
- Proof-of-concept evidence
4. '''Risk Assessment'''
- CVSS scores for each finding
- Business impact analysis
- Likelihood and severity ratings
5. '''Recommendations'''
- Prioritized remediation roadmap
- Specific, actionable advice
- Estimated effort and timeline
6. '''Appendices'''
- Tool output
- Screenshots
- Detailed technical data
- Glossary of terms
==== Remediation Support ====
Post-report activities:
* '''Debrief meeting:''' Present findings to stakeholders
* '''Q&A:''' Answer questions about findings
* '''Remediation advice:''' Help prioritize fixes
* '''Validation:''' Test that fixes actually work
* '''Follow-up testing:''' Verify vulnerabilities are resolved
{{Note|The best penetration test is one that leads to actual security improvements. Good reporting and remediation support increase the likelihood that findings will be fixed.}}
---
=== Common AD Attack Chains ===
Real-world penetration tests often follow recognizable attack patterns.
==== Attack Chain 1: Weak Credential → Admin ====
<syntaxhighlight lang="text">
1. Discover weak password policy (8 chars, no complexity)
2. Brute-force user credentials
3. Gain access as regular user
4. Enumerate domain structure
5. Find user in admin group
6. Kerberoast admin service accounts
7. Crack offline to recover admin password
8. Access as domain admin
</syntaxhighlight>
==== Attack Chain 2: ADCS Exploitation ====
<syntaxhighlight lang="text">
1. Enumerate AD Certificate Services
2. Find overly permissive certificate template
3. Request certificate with admin identity
4. Use certificate to authenticate as admin
5. Access as domain admin
</syntaxhighlight>
==== Attack Chain 3: Unconstrained Delegation ====
<syntaxhighlight lang="text">
1. Find server with unconstrained delegation
2. Compromise that server
3. Trigger interaction from admin
4. Capture admin's Kerberos ticket
5. Use ticket to access as admin
</syntaxhighlight>
{{Note|Understanding these attack chains helps penetration testers identify likely compromise paths. See [[Active Directory Security and Penetration Testing/Part 3 - Attack Vectors and Exploitation|Part 3]] for detailed exploitation techniques.}}
---
=== Tools Used in AD Penetration Testing ===
{| class="wikitable"
|-
! Tool !! Purpose !! Example
|-
| nmap || Port scanning || nmap -p 53,88,389 dc1.corp.local
|-
| Kerberoast || Extract service tickets || python3 GetUserSPNs.py corp.local/user
|-
| ADPenTest || Orchestrate multiple tools || adpentest --target corp.local --scope-confirmed
|-
| crackmapexec || SMB enumeration || crackmapexec smb 192.168.1.0/24 --shares
|-
| Impacket Suite || AD exploitation || secretsdump.py corp.local/admin:pass@dc1
|-
| BloodHound || Attack path visualization || python3 bloodhound.py -u admin -d corp.local
|-
| Mimikatz || Credential dumping || mimikatz.exe "token::elevate" "lsadump::sam"
|-
| certutil || Certificate operations || certutil -ca.b
|}
---
=== Ethical & Legal Considerations ===
Penetration testing must be conducted ethically and legally.
{{Important|Unauthorized access to computer systems is illegal. Penetration testing is only legal with explicit written authorization.}}
==== Legal Framework ====
In the United States:
* '''CFAA (Computer Fraud and Abuse Act)''' - Criminalizes unauthorized computer access
* '''State laws''' - Many states have additional computer crime statutes
* '''Contracts''' - Written authorization provides legal protection
Internationally:
* EU countries have similar data protection and computer crime laws
* Authorization requirements vary by jurisdiction
* Always consult legal counsel before testing
==== Responsible Disclosure ====
When vulnerabilities are discovered:
1. '''Notify the organization''' - Alert appropriate internal parties
2. '''Provide timeline''' - Give time to fix before public disclosure
3. '''Avoid public disclosure''' - Don't publicize vulnerabilities immediately
4. '''Support remediation''' - Help fix the issues
5. '''Document resolution''' - Verify fixes are effective
{{Warning|Public disclosure of vulnerability details before organization has time to fix puts end users at risk. Responsible disclosure protects everyone.}}
==== Professional Ethics ====
Penetration testers should:
✓ Only test systems with explicit authorization
✓ Follow rules of engagement precisely
✓ Handle confidential data appropriately
✓ Maintain professional conduct
✓ Avoid causing unnecessary disruption
✓ Report findings honestly and completely
✓ Protect client confidentiality
✓ Continuously improve skills and knowledge
---
=== Penetration Test Engagement Model ===
'''Typical penetration test engagement:'''
<syntaxhighlight lang="text">
Week 1-2: Planning & Scoping
├─ Define scope
├─ Obtain authorization
└─ Establish communication plan
Week 2-4: Reconnaissance & Enumeration
├─ Passive information gathering
├─ Active probing
└─ Vulnerability assessment
Week 4-6: Exploitation & Post-Exploitation
├─ Attempt to compromise systems
├─ Maintain access
└─ Document attack paths
Week 6-8: Reporting & Remediation
├─ Write detailed report
├─ Present findings
├─ Support remediation
└─ Validate fixes
</syntaxhighlight>
{{Note|Timelines vary based on scope, environment size, and findings complexity. A small company might take 2-3 weeks, while large enterprises might require months.}}
---
=== Knowledge Check ===
Test your understanding of penetration testing fundamentals:
# What is the primary goal of a penetration test?
# Name three key components of a penetration test authorization.
# Explain the difference between reconnaissance and enumeration.
# What is the purpose of the exploitation phase?
# True or False: Penetration testing can proceed without written authorization.
# Name four common AD vulnerability types.
# What is an attack chain and why is it important?
# Describe a golden ticket and why it's dangerous.
# What should be included in a penetration test report?
# Why is responsible disclosure important?
{{Note|Answers: 1) Identify vulnerabilities before attackers do, assess risk, validate controls 2) Written permission, scope definition, rules of engagement 3) Recon is passive (no direct contact), enumeration is active (probing systems) 4) To compromise systems using identified vulnerabilities 5) False - authorization is legally required 6) Weak passwords, privilege escalation, group policy, outdated systems, ADCS issues 7) Series of exploitation steps leading to objective; important for understanding real compromise 8) Persistent Kerberos ticket valid for ~10 years; allows impersonating any user even after password change 9) Executive summary, methodology, findings, risk assessment, recommendations, appendices 10) Protects end users by giving organizations time to fix before public disclosure}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Plan a Penetration Test'''
Using a lab environment or hypothetical scenario:
1. '''Define Scope:'''
- Which domains to test?
- Which OUs/systems in-scope?
- Which are out-of-scope?
- Testing duration?
2. '''Write Authorization:'''
- Create sample authorization letter
- Define rules of engagement
- Set escalation procedures
3. '''Plan Reconnaissance:'''
- List passive information gathering methods
- Identify publicly available information
- Plan OSINT approach
4. '''Plan Enumeration:'''
- What Domain Controllers need to be found?
- Which users/groups are interesting?
- What services need to be identified?
5. '''Identify Potential Vulnerabilities:'''
- What likely vulnerabilities might exist?
- What attack chains might work?
- What would be the business impact?
This exercise helps you think like a penetration tester and approach AD testing systematically.
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 3 - Lab Setup and Prerequisites|Chapter 3: Lab Setup and Prerequisites]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [[Active Directory Security and Penetration Testing/Part 3 - Attack Vectors and Exploitation|Part 3: Attack Vectors & Exploitation]]
* [https://www.nist.gov/publications/guide-general-server-security NIST SP 800-123: Guide to General Server Security]
* [https://penteststandards.com/ PTES - Penetration Testing Execution Standard]
* [https://owasp.org/www-project-web-security-testing-guide/ OWASP Testing Guide]
---
[[Category:Penetration Testing Methodology]]
[[Category:Foundational Knowledge]]
{{BookCat}}
2r3nrtcc12tn4ol0m9mf1yg1qxcbfgp
Active Directory Security and Penetration Testing/Chapter 3 - Lab Setup and Prerequisites
0
485823
4672122
4672027
2026-09-24T12:18:22Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672122
wikitext
text/x-wiki
== Chapter 3: Lab Setup and Prerequisites ==
=== Learning Objectives ===
By the end of this chapter, you will be able to:
* Understand the requirements for setting up an AD penetration testing lab
* Create a virtual AD domain from scratch
* Set up Domain Controllers, workstations, and servers
* Configure realistic AD environments
* Install and configure necessary tools
* Establish proper network isolation for testing
* Understand common lab architectures and their use cases
* Troubleshoot common lab setup issues
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
* Completion of [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
* Basic familiarity with virtualization concepts
* Administrator access to a computer or server
* Sufficient hardware resources (16GB+ RAM recommended)
---
=== Why a Lab Environment is Essential ===
A dedicated lab environment is crucial for AD penetration testing practice.
==== Benefits of a Lab ====
✓ '''Safe to break things''' - No risk to production systems ✓ '''Test new techniques''' - Experiment without consequences ✓ '''Reproduce vulnerabilities''' - Practice exploitation methods ✓ '''Develop skills''' - Build proficiency before client engagements ✓ '''Realistic scenarios''' - Mirror actual corporate environments ✓ '''Tool familiarization''' - Learn tools in controlled setting ✓ '''Compliance testing''' - Validate security configurations ✓ '''Training platform''' - Teach others security concepts{{Important|Never practice penetration testing techniques against systems you don't own. A personal lab is the appropriate place to learn and practice.}}---
=== Hardware Requirements ===
==== Minimum Configuration ====
For a basic single-domain lab:
{| class="wikitable"
!Component
!Minimum
!Recommended
|-
|CPU
|4 cores
|8+ cores
|-
|RAM
|16GB
|32GB+
|-
|Disk Space
|200GB SSD
|500GB+ SSD
|-
|Network
|Single NIC
|Dedicated lab NIC
|}
=== = Recommended Hardware ===
For realistic multi-domain testing:
* '''CPU:''' Intel/AMD with 8+ cores (enables nested virtualization)
* '''RAM:''' 32GB-64GB (each VM needs 2-4GB minimum)
* '''Storage:''' 500GB+ NVMe SSD (VMs perform better on fast storage)
* '''Network:''' Dedicated NIC for lab network isolation
* '''Backup:''' External drive for lab snapshots/recovery
{{Note|Older hardware works but setup will be slower. The better your hardware, the more realistic your lab can be (more simultaneous VMs).}}
---
=== Virtualization Platforms ===
Several hypervisors can host AD lab environments.
==== Hyperv (Windows) ====
Built into Windows Pro/Enterprise.
'''Pros:'''
* Free with Windows Pro
* Native integration
* Good performance
* Linux support via kernel
'''Cons:'''
* Windows-only
* Steeper learning curve
* Licensing for nested virtualization
'''Lab Setup:'''<syntaxhighlight lang="powershell">
# Enable Hyper-V
Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V `
-Online -All
</syntaxhighlight>
==== VMware ESXi / vSphere ====
Enterprise-grade hypervisor.
'''Pros:'''
* Very stable
* Excellent performance
* Industry standard
* Great snapshotting
'''Cons:'''
* Requires licensing (free ESXi available)
* Steeper learning curve
* More resource intensive
==== KVM (Linux) ====
Linux-based hypervisor.
'''Pros:'''
* Free and open source
* Good performance
* Linux-native
'''Cons:'''
* Requires Linux experience
* Windows VM performance not optimal
* Steep learning curve
==== VirtualBox ====
Free, easy-to-use hypervisor.
'''Pros:'''
* Completely free
* Easy to use
* Works on any OS
'''Cons:'''
* Slower performance than alternatives
* Limited snapshots/cloning
* Not ideal for large labs
{{Note|For AD penetration testing, '''VMware or Hyper-V''' are recommended due to better performance and native Windows support. VirtualBox works but is slower.}}
---
=== Building a Basic Single-Domain Lab ===
Step-by-step process to create a minimal AD environment.
==== Step 1: Create the Domain Controller VM ====
===== Prerequisites =====
* Windows Server 2019 or 2022 ISO
* At least 2 vCPUs and 4GB RAM allocated
* 50GB disk space
===== Installation =====
<syntaxhighlight lang="text">
1. Create new VM (Generation 2 for Hyper-V)
2. Allocate 2+ vCPUs, 4GB RAM, 50GB disk
3. Attach Windows Server ISO
4. Install Windows Server (Desktop Experience recommended)
5. Configure static IP address:
IP: 192.168.1.10
Netmask: 255.255.255.0
Gateway: 192.168.1.1
DNS: 192.168.1.10 (itself)
6. Set hostname to "DC1"
7. Install AD DS role
</syntaxhighlight>
===== AD DS Installation =====
<syntaxhighlight lang="powershell">
# Install AD DS role
Add-WindowsFeature AD-Domain-Services, `
AD-Certificate, `
DNS, `
GPMC, `
RSAT-ADDS
# Create new forest and domain
Install-ADDSForest `
-DomainName "corp.local" `
-SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd!Secure" -AsPlainText -Force) `
-CreateDnsDelegation:$false `
-DatabasePath "C:\Windows\NTDS" `
-LogPath "C:\Windows\NTDS" `
-SysvolPath "C:\Windows\SYSVOL" `
-Force
</syntaxhighlight>{{Note|Choose a strong DSRM password and store it securely. You'll need it for disaster recovery.}}
==== Step 2: Create Workstation VMs ====
===== Windows 10/11 Workstations =====
<syntaxhighlight lang="text">
1. Create 2-3 workstation VMs
2. Allocate 2 vCPUs, 4GB RAM each
3. Install Windows 10 or 11
4. Configure static IP addresses:
WS1: 192.168.1.20
WS2: 192.168.1.21
WS3: 192.168.1.22
5. Set hostnames: WS1, WS2, WS3
6. Join to corp.local domain
7. Create local users for testing
</syntaxhighlight>
===== Join to Domain =====
<syntaxhighlight lang="powershell">
# Set DNS to point to DC
$ipconfig = @{
InterfaceAlias = "Ethernet"
AddressFamily = "IPv4"
Validate = $false
}
Set-DnsClientServerAddress @ipconfig -ServerAddresses "192.168.1.10"
# Join domain
Add-Computer -DomainName corp.local `
-NewName WS1 `
-Restart
</syntaxhighlight>
==== Step 3: Create Test Users and Groups ====
===== Create User Accounts =====
<syntaxhighlight lang="powershell">
# Create test users
$users = @(
@{Name="john.smith"; Dept="Engineering"; Group="Engineers"},
@{Name="jane.doe"; Dept="Finance"; Group="Finance"},
@{Name="admin.service"; Dept="IT"; Group="ServiceAccounts"},
@{Name="db.service"; Dept="IT"; Group="ServiceAccounts"},
)
foreach ($user in $users) {
New-ADUser -Name $user.Name `
-SamAccountName $user.Name `
-UserPrincipalName "$($user.Name)@corp.local" `
-Path "CN=Users,DC=corp,DC=local" `
-AccountPassword (ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force) `
-Enabled $true `
-Department $user.Dept
}
</syntaxhighlight>
===== Create Security Groups =====
<syntaxhighlight lang="powershell">
# Create security groups
$groups = @("Engineers", "Finance", "ServiceAccounts", "Admins")
foreach ($group in $groups) {
New-ADGroup -Name $group `
-GroupScope Global `
-GroupCategory Security `
-Path "CN=Users,DC=corp,DC=local"
}
# Add users to groups
Add-ADGroupMember -Identity "Engineers" -Members "john.smith"
Add-ADGroupMember -Identity "Finance" -Members "jane.doe"
Add-ADGroupMember -Identity "ServiceAccounts" -Members "admin.service", "db.service"
Add-ADGroupMember -Identity "Admins" -Members "administrator"
</syntaxhighlight>
===== Create Organizational Units =====
<syntaxhighlight lang="powershell">
# Create OU structure
New-ADOrganizationalUnit -Name "Engineering" `
-Path "DC=corp,DC=local"
New-ADOrganizationalUnit -Name "Finance" `
-Path "DC=corp,DC=local"
New-ADOrganizationalUnit -Name "IT" `
-Path "DC=corp,DC=local"
# Move users to OUs
Move-ADObject -Identity (Get-ADUser john.smith).DistinguishedName `
-TargetPath "OU=Engineering,DC=corp,DC=local"
</syntaxhighlight>
==== Step 4: Configure Group Policy ====
===== Create Test GPO =====
<syntaxhighlight lang="powershell">
# Create a test Group Policy Object
New-GPO -Name "Test-Password-Policy" `
-Comment "Test password policy GPO"
# Link to domain
New-GPLink -Name "Test-Password-Policy" `
-Target "DC=corp,DC=local"
# Configure password policy
Set-GPRegistryValue -Name "Test-Password-Policy" `
-Key "HKLM\System\CurrentControlSet\Services\Netlogon\Parameters" `
-ValueName "RequireSignOrSeal" `
-Value 1 `
-Type DWORD
</syntaxhighlight>---
=== Advanced Lab Scenarios ===
==== Multi-Domain Forest ====
Create multiple domains in a single forest for realistic testing.<syntaxhighlight lang="text">
corp.local (Forest Root)
├─ DC1.corp.local (Domain Controller)
└─ sales.corp.local (Child Domain)
├─ DC1.sales.corp.local (Domain Controller)
└─ Users, Computers, Groups
</syntaxhighlight>{{Note|Multi-domain labs are more complex but provide realistic environments for testing cross-domain attacks and trust relationships.}}
==== Multiple Domain Controllers ====
Create multiple DCs for redundancy and load balancing testing.<syntaxhighlight lang="powershell">
# Promote second DC
Install-ADDSDomainController `
-DomainName corp.local `
-Credential (Get-Credential) `
-SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd!Secure" -AsPlainText -Force) `
-Force
</syntaxhighlight>
==== Certificate Services ====
Set up AD Certificate Services (ADCS) for certificate-based testing.<syntaxhighlight lang="powershell">
# Install ADCS
Add-WindowsFeature ADCS-Cert-Authority, ADCS-Enroll-Web-Svc
# Configure ADCS
Install-AdcsCertificationAuthority `
-CAType EnterpriseRootCa `
-Confirm:$false
</syntaxhighlight>{{Important|ADCS setup is complex. Misconfigured ADCS is a common real-world vulnerability, making it valuable to practice in a lab.}}---
=== Pre-Built Lab Environments ===
Several ready-made lab environments are available.
==== GOAD (Game of Active Directory) ====
Open-source Active Directory lab project.
'''Features:'''
* Multi-domain forest (5 domains)
* Realistic infrastructure
* Intentional vulnerabilities for learning
* Terraform/Ansible automation
* ~1 hour automated setup
'''URL:''' https://github.com/Orange-Cyberdefense/GOAD
'''Setup:'''<syntaxhighlight lang="bash">
git clone https://github.com/Orange-Cyberdefense/GOAD.git
cd GOAD
# Follow README for installation
</syntaxhighlight>{{Note|GOAD is excellent for learning attack chains. It contains realistic vulnerabilities and complex scenarios. Highly recommended for intermediate/advanced testers.}}
==== DetectionLab ====
Another popular multi-domain lab environment.
'''Features:'''
* Three-tier architecture (DC, servers, workstations)
* Logging and monitoring setup
* Sysmon/WinLogBeat integration
* Splunk for log analysis
'''URL:''' https://github.com/clong/DetectionLab
==== VulnAD ====
Intentionally vulnerable AD environment for learning.
'''Features:'''
* Realistic misconfigurations
* Multiple attack paths
* Educational focus
* Smaller resource footprint
==== Custom Labs ====
Building your own custom lab allows:
* Specific scenario testing
* Custom vulnerability creation
* Tailored attack simulation
* Precise resource control
{{Note|Pre-built labs are great starting points, but eventually you'll want to build custom labs for specific testing scenarios.}}
---
=== Network Configuration ===
==== Lab Network Isolation ====
Isolate lab network from production systems.
'''Best Practice:'''<syntaxhighlight lang="text">
Host Computer (Your Machine)
├─ External Network (Internet)
│ └─ Production Systems
└─ Lab Virtual Network
├─ DC1 (192.168.1.10)
├─ WS1 (192.168.1.20)
├─ WS2 (192.168.1.21)
└─ Server1 (192.168.1.30)
[Lab network completely isolated from prod]
</syntaxhighlight>
===== Hyper-V Virtual Switch =====
<syntaxhighlight lang="powershell">
# Create internal virtual switch
New-VMSwitch -Name "Lab-Network" `
-SwitchType Internal
# Configure vNIC IP
New-NetIPAddress -IPAddress 192.168.1.1 `
-PrefixLength 24 `
-InterfaceAlias "vEthernet (Lab-Network)"
</syntaxhighlight>
===== VMware Virtual Network =====
Create isolated virtual network in VMware settings.{{Important|Network isolation prevents lab traffic from affecting production. Always isolate your lab environment from your main network.}}---
=== Tools Installation ===
==== On the Lab Domain Controller ====
<syntaxhighlight lang="powershell">
# Install Remote Server Administration Tools (RSAT)
Add-WindowsFeature RSAT-ADDS, RSAT-ADLDS, `
RSAT-DFS-Mgmt-Con, RSAT-FSRM-Mgmt
# Install other useful tools
# Active Directory Users and Computers: dsa.msc
# Group Policy Management: gpmc.msc
# Active Directory Domains and Trusts: domain.msc
</syntaxhighlight>
==== On Testing Workstation ====
<syntaxhighlight lang="bash">
# Install Python tools
pip install impacket
pip install pycryptodome
pip install ldap3
# Install Kerberoast
git clone https://github.com/nidem/kerberoast.git
# Install BloodHound (Java required)
# Download from: https://github.com/BloodHoundAD/BloodHound/releases
# Install ADPenTest
pip install adpentest
</syntaxhighlight>{{Note|Most tools run best on Linux/Kali, but Windows testing workstations are useful for certain techniques like token impersonation.}}
---
=== Creating Realistic Vulnerabilities ===
==== Intentional Misconfigurations ====
Create vulnerabilities to practice exploitation.
===== Weak Password Policy =====
<syntaxhighlight lang="powershell">
# Disable strong password requirement
secedit /export /cfg C:\secpol.cfg
# Edit secpol.cfg: PasswordComplexity = 0
secedit /configure /db secedit.sdb /cfg C:\secpol.cfg
# Set weak passwords
Set-ADAccountPassword -Identity "john.smith" `
-Reset `
-NewPassword (ConvertTo-SecureString "Password123" -AsPlainText -Force)
</syntaxhighlight>
===== Disable Kerberos Preauthentication =====
<syntaxhighlight lang="powershell">
# Find user account
$user = Get-ADUser jane.doe
# Disable preauthentication
Set-ADAccountControl -Identity $user -doesNotRequirePreAuth $true
</syntaxhighlight>
===== Kerberoasting Setup =====
<syntaxhighlight lang="powershell">
# Create service account with SPN
New-ADUser -Name "admin.service" `
-SamAccountName "admin.service" `
-ServicePrincipalNames "HTTP/admin.service", `
"HTTP/admin.service.corp.local"
# Set weak password to practice cracking
Set-ADAccountPassword -Identity "admin.service" `
-Reset `
-NewPassword (ConvertTo-SecureString "ServicePass123" -AsPlainText -Force)
</syntaxhighlight>
===== Over-Privileged Groups =====
<syntaxhighlight lang="powershell">
# Add regular user to admin group (intentional vuln)
Add-ADGroupMember -Identity "Domain Admins" `
-Members "john.smith"
# Create custom admin group
New-ADGroup -Name "IT-Admins" -GroupScope Global
Add-ADGroupMember -Identity "IT-Admins" -Members "jane.doe"
# Grant permissions to file share
# (This will be discovered during enumeration)
</syntaxhighlight>{{Important|Only create vulnerabilities you intend to practice exploiting. Don't create unnecessary security holes in your lab.}}---
=== Lab Snapshots & Backups ===
Save lab state for recovery and experimentation.
==== Taking Snapshots (Hyper-V) ====
<syntaxhighlight lang="powershell">
# Create checkpoint
Checkpoint-VM -Name "DC1" -SnapshotName "Clean-State"
# List checkpoints
Get-VMSnapshot -VMName "DC1"
# Restore checkpoint
Restore-VMSnapshot -Name "Clean-State" -VM (Get-VM "DC1") -Confirm:$false
</syntaxhighlight>{{Note|Snapshots allow you to quickly return to a known good state after testing, without reinstalling everything.}}
==== Automated Backup ====
<syntaxhighlight lang="powershell">
# Backup VM configuration
Export-VM -Name "DC1" -Path "E:\Lab-Backups"
# Schedule regular backups
$backupTask = @{
TaskName = "Lab-Backup"
Action = New-ScheduledTaskAction -Execute "PowerShell" `
-Argument "-Command Export-VM -Name DC1 -Path E:\Lab-Backups"
Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 10:00AM
}
Register-ScheduledTask @backupTask
</syntaxhighlight>---
=== Troubleshooting Common Lab Issues ===
{| class="wikitable"
!Issue
!Cause
!Solution
|-
|VMs won't network
|Switch misconfiguration
|Verify virtual switch settings, check IP configuration
|-
|Domain join fails
|DNS resolution issue
|Ensure DNS points to DC, check host resolution
|-
|AD services won't start
|Missing prerequisites
|Reinstall AD DS, check event logs
|-
|Slow performance
|Insufficient RAM
|Allocate more RAM to VMs, reduce VM count
|-
|Can't access DC from workstation
|Firewall blocking
|Disable Windows Firewall in lab, open ports
|-
|Snapshots won't restore
|Snapshot corruption
|Delete snapshot, create new one
|-
|Disk space issues
|VMs too large
|Clean disk space, reduce VM snapshots
|}
{{Note|Check Windows Event Viewer on DC for detailed error messages when AD services don't start.}}
---
=== Lab Maintenance ===
Regular maintenance keeps your lab running smoothly.
==== Weekly Maintenance ====
* Verify all VMs can start
* Test domain functionality
* Clean up temporary files
* Review disk space
==== Monthly Maintenance ====
* Update Windows patches
* Update security tools
* Review and clean snapshots
* Backup critical configurations
==== Quarterly Maintenance ====
* Full lab rebuild test
* Verify automation/scripts
* Update tool versions
* Document any changes
---
=== Lab Documentation ===
Document your lab setup for future reference.
===== Lab Diagram =====
<syntaxhighlight lang="text">
Corp.local Forest
├─ DC1 (192.168.1.10)
│ ├─ OS: Windows Server 2022
│ ├─ vCPU: 2, RAM: 4GB
│ └─ Disk: 50GB
├─ WS1 (192.168.1.20)
│ ├─ OS: Windows 10 21H2
│ ├─ vCPU: 2, RAM: 4GB
│ ├─ Disk: 40GB
│ └─ User: john.smith (group: Engineers)
├─ WS2 (192.168.1.21)
│ └─ User: jane.doe (group: Finance)
└─ Server1 (192.168.1.30)
└─ Services: File Share, Print Server
</syntaxhighlight>
===== Configuration Spreadsheet =====
Create spreadsheet with:
* VM names and IPs
* OS versions and patch levels
* User accounts and group memberships
* Services and roles installed
* Vulnerabilities intentionally created
* Snapshot names and dates
{{Note|Good documentation allows you to quickly recreate your lab if needed and share configurations with others.}}
---
=== Knowledge Check ===
Test your lab setup knowledge:
# What are the minimum hardware requirements for a basic AD lab?
# Name three virtualization platforms suitable for AD labs.
# List the steps to create a basic single-domain lab (high-level).
# What is GOAD and what advantages does it offer?
# How should lab networks be isolated from production?
# Name three intentional vulnerabilities you could create in your lab.
# What is a VM snapshot and how is it useful?
# What tools should be installed on a testing workstation?
# Why is lab documentation important?
# True or False: It's okay to test on production systems if you're careful.
{{Note|Answers: 1) 16GB RAM, 4+ cores, 200GB disk 2) Hyper-V, VMware, KVM, VirtualBox 3) Create DC VM → install AD → create workstations → join domain → create users/groups → configure GPO 4) Open-source multi-domain lab with intentional vulnerabilities; automated setup via Terraform 5) Isolated virtual network, separate from production network 6) Weak passwords, disabled Kerberos preauthentication, Kerberoasting setup, over-privileged accounts 7) Point-in-time copy of VM state; allows quick recovery and experimentation 8) Impacket, Kerberoast, BloodHound, ADPenTest, crackmapexec 9) Quickly recreate lab, share with others, troubleshoot issues 10) False - NEVER test on production without explicit authorization and careful planning}}
---
=== Hands-On Exercise ===
{{Note|'''Exercise: Build Your Own AD Lab'''
1. '''Choose Platform:''' Select Hyper-V, VMware, or VirtualBox
2. '''Plan Lab:'''
- Document VM names, IPs, roles
- Plan user/group structure
- Sketch network diagram
3. '''Create DC:'''
- Install Windows Server
- Promote to DC
- Create corp.local domain
4. '''Create Workstations:'''
- Install Windows 10/11
- Join to corp.local
- Verify domain connectivity
5. '''Create Users & Groups:'''
- Create 5-10 test users
- Organize into groups
- Create OUs
6. '''Configure GPO:'''
- Create test GPO
- Apply to OU
- Verify application
7. '''Create Vulnerabilities:'''
- Disable password complexity
- Over-privilege one user
- Create Kerberoastable account
8. '''Take Snapshot:'''
- Save clean-state snapshot
- Document configuration
9. '''Test Access:'''
- Log in from workstation
- Verify domain functionality
- Confirm vulnerabilities exist
Timeline: 4-8 hours for initial setup
Success Criteria:
- Domain fully functional
- Multiple user accounts working
- Group Policy applying
- Snapshots saving/restoring
- Lab documentation complete}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 4 - Introduction to ADPenTest|Chapter 4: Introduction to ADPenTest]]
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[github:Orange-Cyberdefense/GOAD|GOAD - Game of Active Directory]]
* [[github:clong/DetectionLab|DetectionLab - Multi-tier Lab]]
* [https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started-with-active-directory-domain-services Microsoft Learn: AD DS Setup]
* [https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v Microsoft Learn: Hyper-V Setup]
---
{{BookCat}}
lasoor9m3wv0usejdadju49k58ybwfr
4672157
4672122
2026-09-24T15:29:17Z
Kittycataclysm
3371989
flag
4672157
wikitext
text/x-wiki
{{AI-suspected|reason=mass content addition, typographical quirks, unformatted lists, inconsistent formatting, broken refs, non-WB categories, reliance on lists, formatting errors}}
== Chapter 3: Lab Setup and Prerequisites ==
=== Learning Objectives ===
By the end of this chapter, you will be able to:
* Understand the requirements for setting up an AD penetration testing lab
* Create a virtual AD domain from scratch
* Set up Domain Controllers, workstations, and servers
* Configure realistic AD environments
* Install and configure necessary tools
* Establish proper network isolation for testing
* Understand common lab architectures and their use cases
* Troubleshoot common lab setup issues
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1: Active Directory Basics]]
* Completion of [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2: Penetration Testing Fundamentals]]
* Basic familiarity with virtualization concepts
* Administrator access to a computer or server
* Sufficient hardware resources (16GB+ RAM recommended)
---
=== Why a Lab Environment is Essential ===
A dedicated lab environment is crucial for AD penetration testing practice.
==== Benefits of a Lab ====
✓ '''Safe to break things''' - No risk to production systems ✓ '''Test new techniques''' - Experiment without consequences ✓ '''Reproduce vulnerabilities''' - Practice exploitation methods ✓ '''Develop skills''' - Build proficiency before client engagements ✓ '''Realistic scenarios''' - Mirror actual corporate environments ✓ '''Tool familiarization''' - Learn tools in controlled setting ✓ '''Compliance testing''' - Validate security configurations ✓ '''Training platform''' - Teach others security concepts{{Important|Never practice penetration testing techniques against systems you don't own. A personal lab is the appropriate place to learn and practice.}}---
=== Hardware Requirements ===
==== Minimum Configuration ====
For a basic single-domain lab:
{| class="wikitable"
!Component
!Minimum
!Recommended
|-
|CPU
|4 cores
|8+ cores
|-
|RAM
|16GB
|32GB+
|-
|Disk Space
|200GB SSD
|500GB+ SSD
|-
|Network
|Single NIC
|Dedicated lab NIC
|}
=== = Recommended Hardware ===
For realistic multi-domain testing:
* '''CPU:''' Intel/AMD with 8+ cores (enables nested virtualization)
* '''RAM:''' 32GB-64GB (each VM needs 2-4GB minimum)
* '''Storage:''' 500GB+ NVMe SSD (VMs perform better on fast storage)
* '''Network:''' Dedicated NIC for lab network isolation
* '''Backup:''' External drive for lab snapshots/recovery
{{Note|Older hardware works but setup will be slower. The better your hardware, the more realistic your lab can be (more simultaneous VMs).}}
---
=== Virtualization Platforms ===
Several hypervisors can host AD lab environments.
==== Hyperv (Windows) ====
Built into Windows Pro/Enterprise.
'''Pros:'''
* Free with Windows Pro
* Native integration
* Good performance
* Linux support via kernel
'''Cons:'''
* Windows-only
* Steeper learning curve
* Licensing for nested virtualization
'''Lab Setup:'''<syntaxhighlight lang="powershell">
# Enable Hyper-V
Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V `
-Online -All
</syntaxhighlight>
==== VMware ESXi / vSphere ====
Enterprise-grade hypervisor.
'''Pros:'''
* Very stable
* Excellent performance
* Industry standard
* Great snapshotting
'''Cons:'''
* Requires licensing (free ESXi available)
* Steeper learning curve
* More resource intensive
==== KVM (Linux) ====
Linux-based hypervisor.
'''Pros:'''
* Free and open source
* Good performance
* Linux-native
'''Cons:'''
* Requires Linux experience
* Windows VM performance not optimal
* Steep learning curve
==== VirtualBox ====
Free, easy-to-use hypervisor.
'''Pros:'''
* Completely free
* Easy to use
* Works on any OS
'''Cons:'''
* Slower performance than alternatives
* Limited snapshots/cloning
* Not ideal for large labs
{{Note|For AD penetration testing, '''VMware or Hyper-V''' are recommended due to better performance and native Windows support. VirtualBox works but is slower.}}
---
=== Building a Basic Single-Domain Lab ===
Step-by-step process to create a minimal AD environment.
==== Step 1: Create the Domain Controller VM ====
===== Prerequisites =====
* Windows Server 2019 or 2022 ISO
* At least 2 vCPUs and 4GB RAM allocated
* 50GB disk space
===== Installation =====
<syntaxhighlight lang="text">
1. Create new VM (Generation 2 for Hyper-V)
2. Allocate 2+ vCPUs, 4GB RAM, 50GB disk
3. Attach Windows Server ISO
4. Install Windows Server (Desktop Experience recommended)
5. Configure static IP address:
IP: 192.168.1.10
Netmask: 255.255.255.0
Gateway: 192.168.1.1
DNS: 192.168.1.10 (itself)
6. Set hostname to "DC1"
7. Install AD DS role
</syntaxhighlight>
===== AD DS Installation =====
<syntaxhighlight lang="powershell">
# Install AD DS role
Add-WindowsFeature AD-Domain-Services, `
AD-Certificate, `
DNS, `
GPMC, `
RSAT-ADDS
# Create new forest and domain
Install-ADDSForest `
-DomainName "corp.local" `
-SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd!Secure" -AsPlainText -Force) `
-CreateDnsDelegation:$false `
-DatabasePath "C:\Windows\NTDS" `
-LogPath "C:\Windows\NTDS" `
-SysvolPath "C:\Windows\SYSVOL" `
-Force
</syntaxhighlight>{{Note|Choose a strong DSRM password and store it securely. You'll need it for disaster recovery.}}
==== Step 2: Create Workstation VMs ====
===== Windows 10/11 Workstations =====
<syntaxhighlight lang="text">
1. Create 2-3 workstation VMs
2. Allocate 2 vCPUs, 4GB RAM each
3. Install Windows 10 or 11
4. Configure static IP addresses:
WS1: 192.168.1.20
WS2: 192.168.1.21
WS3: 192.168.1.22
5. Set hostnames: WS1, WS2, WS3
6. Join to corp.local domain
7. Create local users for testing
</syntaxhighlight>
===== Join to Domain =====
<syntaxhighlight lang="powershell">
# Set DNS to point to DC
$ipconfig = @{
InterfaceAlias = "Ethernet"
AddressFamily = "IPv4"
Validate = $false
}
Set-DnsClientServerAddress @ipconfig -ServerAddresses "192.168.1.10"
# Join domain
Add-Computer -DomainName corp.local `
-NewName WS1 `
-Restart
</syntaxhighlight>
==== Step 3: Create Test Users and Groups ====
===== Create User Accounts =====
<syntaxhighlight lang="powershell">
# Create test users
$users = @(
@{Name="john.smith"; Dept="Engineering"; Group="Engineers"},
@{Name="jane.doe"; Dept="Finance"; Group="Finance"},
@{Name="admin.service"; Dept="IT"; Group="ServiceAccounts"},
@{Name="db.service"; Dept="IT"; Group="ServiceAccounts"},
)
foreach ($user in $users) {
New-ADUser -Name $user.Name `
-SamAccountName $user.Name `
-UserPrincipalName "$($user.Name)@corp.local" `
-Path "CN=Users,DC=corp,DC=local" `
-AccountPassword (ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force) `
-Enabled $true `
-Department $user.Dept
}
</syntaxhighlight>
===== Create Security Groups =====
<syntaxhighlight lang="powershell">
# Create security groups
$groups = @("Engineers", "Finance", "ServiceAccounts", "Admins")
foreach ($group in $groups) {
New-ADGroup -Name $group `
-GroupScope Global `
-GroupCategory Security `
-Path "CN=Users,DC=corp,DC=local"
}
# Add users to groups
Add-ADGroupMember -Identity "Engineers" -Members "john.smith"
Add-ADGroupMember -Identity "Finance" -Members "jane.doe"
Add-ADGroupMember -Identity "ServiceAccounts" -Members "admin.service", "db.service"
Add-ADGroupMember -Identity "Admins" -Members "administrator"
</syntaxhighlight>
===== Create Organizational Units =====
<syntaxhighlight lang="powershell">
# Create OU structure
New-ADOrganizationalUnit -Name "Engineering" `
-Path "DC=corp,DC=local"
New-ADOrganizationalUnit -Name "Finance" `
-Path "DC=corp,DC=local"
New-ADOrganizationalUnit -Name "IT" `
-Path "DC=corp,DC=local"
# Move users to OUs
Move-ADObject -Identity (Get-ADUser john.smith).DistinguishedName `
-TargetPath "OU=Engineering,DC=corp,DC=local"
</syntaxhighlight>
==== Step 4: Configure Group Policy ====
===== Create Test GPO =====
<syntaxhighlight lang="powershell">
# Create a test Group Policy Object
New-GPO -Name "Test-Password-Policy" `
-Comment "Test password policy GPO"
# Link to domain
New-GPLink -Name "Test-Password-Policy" `
-Target "DC=corp,DC=local"
# Configure password policy
Set-GPRegistryValue -Name "Test-Password-Policy" `
-Key "HKLM\System\CurrentControlSet\Services\Netlogon\Parameters" `
-ValueName "RequireSignOrSeal" `
-Value 1 `
-Type DWORD
</syntaxhighlight>---
=== Advanced Lab Scenarios ===
==== Multi-Domain Forest ====
Create multiple domains in a single forest for realistic testing.<syntaxhighlight lang="text">
corp.local (Forest Root)
├─ DC1.corp.local (Domain Controller)
└─ sales.corp.local (Child Domain)
├─ DC1.sales.corp.local (Domain Controller)
└─ Users, Computers, Groups
</syntaxhighlight>{{Note|Multi-domain labs are more complex but provide realistic environments for testing cross-domain attacks and trust relationships.}}
==== Multiple Domain Controllers ====
Create multiple DCs for redundancy and load balancing testing.<syntaxhighlight lang="powershell">
# Promote second DC
Install-ADDSDomainController `
-DomainName corp.local `
-Credential (Get-Credential) `
-SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd!Secure" -AsPlainText -Force) `
-Force
</syntaxhighlight>
==== Certificate Services ====
Set up AD Certificate Services (ADCS) for certificate-based testing.<syntaxhighlight lang="powershell">
# Install ADCS
Add-WindowsFeature ADCS-Cert-Authority, ADCS-Enroll-Web-Svc
# Configure ADCS
Install-AdcsCertificationAuthority `
-CAType EnterpriseRootCa `
-Confirm:$false
</syntaxhighlight>{{Important|ADCS setup is complex. Misconfigured ADCS is a common real-world vulnerability, making it valuable to practice in a lab.}}---
=== Pre-Built Lab Environments ===
Several ready-made lab environments are available.
==== GOAD (Game of Active Directory) ====
Open-source Active Directory lab project.
'''Features:'''
* Multi-domain forest (5 domains)
* Realistic infrastructure
* Intentional vulnerabilities for learning
* Terraform/Ansible automation
* ~1 hour automated setup
'''URL:''' https://github.com/Orange-Cyberdefense/GOAD
'''Setup:'''<syntaxhighlight lang="bash">
git clone https://github.com/Orange-Cyberdefense/GOAD.git
cd GOAD
# Follow README for installation
</syntaxhighlight>{{Note|GOAD is excellent for learning attack chains. It contains realistic vulnerabilities and complex scenarios. Highly recommended for intermediate/advanced testers.}}
==== DetectionLab ====
Another popular multi-domain lab environment.
'''Features:'''
* Three-tier architecture (DC, servers, workstations)
* Logging and monitoring setup
* Sysmon/WinLogBeat integration
* Splunk for log analysis
'''URL:''' https://github.com/clong/DetectionLab
==== VulnAD ====
Intentionally vulnerable AD environment for learning.
'''Features:'''
* Realistic misconfigurations
* Multiple attack paths
* Educational focus
* Smaller resource footprint
==== Custom Labs ====
Building your own custom lab allows:
* Specific scenario testing
* Custom vulnerability creation
* Tailored attack simulation
* Precise resource control
{{Note|Pre-built labs are great starting points, but eventually you'll want to build custom labs for specific testing scenarios.}}
---
=== Network Configuration ===
==== Lab Network Isolation ====
Isolate lab network from production systems.
'''Best Practice:'''<syntaxhighlight lang="text">
Host Computer (Your Machine)
├─ External Network (Internet)
│ └─ Production Systems
└─ Lab Virtual Network
├─ DC1 (192.168.1.10)
├─ WS1 (192.168.1.20)
├─ WS2 (192.168.1.21)
└─ Server1 (192.168.1.30)
[Lab network completely isolated from prod]
</syntaxhighlight>
===== Hyper-V Virtual Switch =====
<syntaxhighlight lang="powershell">
# Create internal virtual switch
New-VMSwitch -Name "Lab-Network" `
-SwitchType Internal
# Configure vNIC IP
New-NetIPAddress -IPAddress 192.168.1.1 `
-PrefixLength 24 `
-InterfaceAlias "vEthernet (Lab-Network)"
</syntaxhighlight>
===== VMware Virtual Network =====
Create isolated virtual network in VMware settings.{{Important|Network isolation prevents lab traffic from affecting production. Always isolate your lab environment from your main network.}}---
=== Tools Installation ===
==== On the Lab Domain Controller ====
<syntaxhighlight lang="powershell">
# Install Remote Server Administration Tools (RSAT)
Add-WindowsFeature RSAT-ADDS, RSAT-ADLDS, `
RSAT-DFS-Mgmt-Con, RSAT-FSRM-Mgmt
# Install other useful tools
# Active Directory Users and Computers: dsa.msc
# Group Policy Management: gpmc.msc
# Active Directory Domains and Trusts: domain.msc
</syntaxhighlight>
==== On Testing Workstation ====
<syntaxhighlight lang="bash">
# Install Python tools
pip install impacket
pip install pycryptodome
pip install ldap3
# Install Kerberoast
git clone https://github.com/nidem/kerberoast.git
# Install BloodHound (Java required)
# Download from: https://github.com/BloodHoundAD/BloodHound/releases
# Install ADPenTest
pip install adpentest
</syntaxhighlight>{{Note|Most tools run best on Linux/Kali, but Windows testing workstations are useful for certain techniques like token impersonation.}}
---
=== Creating Realistic Vulnerabilities ===
==== Intentional Misconfigurations ====
Create vulnerabilities to practice exploitation.
===== Weak Password Policy =====
<syntaxhighlight lang="powershell">
# Disable strong password requirement
secedit /export /cfg C:\secpol.cfg
# Edit secpol.cfg: PasswordComplexity = 0
secedit /configure /db secedit.sdb /cfg C:\secpol.cfg
# Set weak passwords
Set-ADAccountPassword -Identity "john.smith" `
-Reset `
-NewPassword (ConvertTo-SecureString "Password123" -AsPlainText -Force)
</syntaxhighlight>
===== Disable Kerberos Preauthentication =====
<syntaxhighlight lang="powershell">
# Find user account
$user = Get-ADUser jane.doe
# Disable preauthentication
Set-ADAccountControl -Identity $user -doesNotRequirePreAuth $true
</syntaxhighlight>
===== Kerberoasting Setup =====
<syntaxhighlight lang="powershell">
# Create service account with SPN
New-ADUser -Name "admin.service" `
-SamAccountName "admin.service" `
-ServicePrincipalNames "HTTP/admin.service", `
"HTTP/admin.service.corp.local"
# Set weak password to practice cracking
Set-ADAccountPassword -Identity "admin.service" `
-Reset `
-NewPassword (ConvertTo-SecureString "ServicePass123" -AsPlainText -Force)
</syntaxhighlight>
===== Over-Privileged Groups =====
<syntaxhighlight lang="powershell">
# Add regular user to admin group (intentional vuln)
Add-ADGroupMember -Identity "Domain Admins" `
-Members "john.smith"
# Create custom admin group
New-ADGroup -Name "IT-Admins" -GroupScope Global
Add-ADGroupMember -Identity "IT-Admins" -Members "jane.doe"
# Grant permissions to file share
# (This will be discovered during enumeration)
</syntaxhighlight>{{Important|Only create vulnerabilities you intend to practice exploiting. Don't create unnecessary security holes in your lab.}}---
=== Lab Snapshots & Backups ===
Save lab state for recovery and experimentation.
==== Taking Snapshots (Hyper-V) ====
<syntaxhighlight lang="powershell">
# Create checkpoint
Checkpoint-VM -Name "DC1" -SnapshotName "Clean-State"
# List checkpoints
Get-VMSnapshot -VMName "DC1"
# Restore checkpoint
Restore-VMSnapshot -Name "Clean-State" -VM (Get-VM "DC1") -Confirm:$false
</syntaxhighlight>{{Note|Snapshots allow you to quickly return to a known good state after testing, without reinstalling everything.}}
==== Automated Backup ====
<syntaxhighlight lang="powershell">
# Backup VM configuration
Export-VM -Name "DC1" -Path "E:\Lab-Backups"
# Schedule regular backups
$backupTask = @{
TaskName = "Lab-Backup"
Action = New-ScheduledTaskAction -Execute "PowerShell" `
-Argument "-Command Export-VM -Name DC1 -Path E:\Lab-Backups"
Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 10:00AM
}
Register-ScheduledTask @backupTask
</syntaxhighlight>---
=== Troubleshooting Common Lab Issues ===
{| class="wikitable"
!Issue
!Cause
!Solution
|-
|VMs won't network
|Switch misconfiguration
|Verify virtual switch settings, check IP configuration
|-
|Domain join fails
|DNS resolution issue
|Ensure DNS points to DC, check host resolution
|-
|AD services won't start
|Missing prerequisites
|Reinstall AD DS, check event logs
|-
|Slow performance
|Insufficient RAM
|Allocate more RAM to VMs, reduce VM count
|-
|Can't access DC from workstation
|Firewall blocking
|Disable Windows Firewall in lab, open ports
|-
|Snapshots won't restore
|Snapshot corruption
|Delete snapshot, create new one
|-
|Disk space issues
|VMs too large
|Clean disk space, reduce VM snapshots
|}
{{Note|Check Windows Event Viewer on DC for detailed error messages when AD services don't start.}}
---
=== Lab Maintenance ===
Regular maintenance keeps your lab running smoothly.
==== Weekly Maintenance ====
* Verify all VMs can start
* Test domain functionality
* Clean up temporary files
* Review disk space
==== Monthly Maintenance ====
* Update Windows patches
* Update security tools
* Review and clean snapshots
* Backup critical configurations
==== Quarterly Maintenance ====
* Full lab rebuild test
* Verify automation/scripts
* Update tool versions
* Document any changes
---
=== Lab Documentation ===
Document your lab setup for future reference.
===== Lab Diagram =====
<syntaxhighlight lang="text">
Corp.local Forest
├─ DC1 (192.168.1.10)
│ ├─ OS: Windows Server 2022
│ ├─ vCPU: 2, RAM: 4GB
│ └─ Disk: 50GB
├─ WS1 (192.168.1.20)
│ ├─ OS: Windows 10 21H2
│ ├─ vCPU: 2, RAM: 4GB
│ ├─ Disk: 40GB
│ └─ User: john.smith (group: Engineers)
├─ WS2 (192.168.1.21)
│ └─ User: jane.doe (group: Finance)
└─ Server1 (192.168.1.30)
└─ Services: File Share, Print Server
</syntaxhighlight>
===== Configuration Spreadsheet =====
Create spreadsheet with:
* VM names and IPs
* OS versions and patch levels
* User accounts and group memberships
* Services and roles installed
* Vulnerabilities intentionally created
* Snapshot names and dates
{{Note|Good documentation allows you to quickly recreate your lab if needed and share configurations with others.}}
---
=== Knowledge Check ===
Test your lab setup knowledge:
# What are the minimum hardware requirements for a basic AD lab?
# Name three virtualization platforms suitable for AD labs.
# List the steps to create a basic single-domain lab (high-level).
# What is GOAD and what advantages does it offer?
# How should lab networks be isolated from production?
# Name three intentional vulnerabilities you could create in your lab.
# What is a VM snapshot and how is it useful?
# What tools should be installed on a testing workstation?
# Why is lab documentation important?
# True or False: It's okay to test on production systems if you're careful.
{{Note|Answers: 1) 16GB RAM, 4+ cores, 200GB disk 2) Hyper-V, VMware, KVM, VirtualBox 3) Create DC VM → install AD → create workstations → join domain → create users/groups → configure GPO 4) Open-source multi-domain lab with intentional vulnerabilities; automated setup via Terraform 5) Isolated virtual network, separate from production network 6) Weak passwords, disabled Kerberos preauthentication, Kerberoasting setup, over-privileged accounts 7) Point-in-time copy of VM state; allows quick recovery and experimentation 8) Impacket, Kerberoast, BloodHound, ADPenTest, crackmapexec 9) Quickly recreate lab, share with others, troubleshoot issues 10) False - NEVER test on production without explicit authorization and careful planning}}
---
=== Hands-On Exercise ===
{{Note|'''Exercise: Build Your Own AD Lab'''
1. '''Choose Platform:''' Select Hyper-V, VMware, or VirtualBox
2. '''Plan Lab:'''
- Document VM names, IPs, roles
- Plan user/group structure
- Sketch network diagram
3. '''Create DC:'''
- Install Windows Server
- Promote to DC
- Create corp.local domain
4. '''Create Workstations:'''
- Install Windows 10/11
- Join to corp.local
- Verify domain connectivity
5. '''Create Users & Groups:'''
- Create 5-10 test users
- Organize into groups
- Create OUs
6. '''Configure GPO:'''
- Create test GPO
- Apply to OU
- Verify application
7. '''Create Vulnerabilities:'''
- Disable password complexity
- Over-privilege one user
- Create Kerberoastable account
8. '''Take Snapshot:'''
- Save clean-state snapshot
- Document configuration
9. '''Test Access:'''
- Log in from workstation
- Verify domain functionality
- Confirm vulnerabilities exist
Timeline: 4-8 hours for initial setup
Success Criteria:
- Domain fully functional
- Multiple user accounts working
- Group Policy applying
- Snapshots saving/restoring
- Lab documentation complete}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 4 - Introduction to ADPenTest|Chapter 4: Introduction to ADPenTest]]
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[github:Orange-Cyberdefense/GOAD|GOAD - Game of Active Directory]]
* [[github:clong/DetectionLab|DetectionLab - Multi-tier Lab]]
* [https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started-with-active-directory-domain-services Microsoft Learn: AD DS Setup]
* [https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v Microsoft Learn: Hyper-V Setup]
---
{{BookCat}}
6csrs0a4xpcfw91jg5olzx9z3wn88o6
Active Directory Security and Penetration Testing/Chapter 4 - Introduction to ADPenTest
0
485825
4672121
4672031
2026-09-24T12:18:19Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672121
wikitext
text/x-wiki
== Chapter 4: Introduction to ADPenTest ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What ADPenTest is and its design philosophy
* Key capabilities and features of the framework
* How ADPenTest differs from manual penetration testing
* The safety mechanisms built into ADPenTest
* When and how to use ADPenTest in a real engagement
=== Prerequisites ===
* Basic understanding of Active Directory architecture (see [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1]])
* Familiarity with penetration testing concepts (see [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2]])
* Command-line proficiency in Linux/Windows
---
=== What is ADPenTest? ===
'''ADPenTest''' is a Python-based framework for automated penetration testing of Active Directory environments. Designed specifically for authorized security assessments, it orchestrates multiple attack tools and techniques into a cohesive workflow that can be executed efficiently across large or complex AD domains.
{{Note|ADPenTest is a specialized tool designed for ''authorized'' penetration testing only. It requires explicit authorization flags and operates in "dry-run" (preview) mode by default.}}
==== Design Philosophy ====
ADPenTest was built on three core principles:
# '''Automation:''' Reduce manual, repetitive reconnaissance and exploitation tasks
# '''Orchestration:''' Coordinate 35+ specialized tools in parallel for maximum efficiency
# '''Safety:''' Require explicit authorization and default to non-destructive operations
This approach lets security teams:
* Conduct comprehensive assessments faster
* Reduce human error in tool execution
* Maintain consistent, reproducible testing methodology
* Generate detailed, searchable audit trails
---
=== Core Capabilities ===
==== 1. Automated Domain Controller Discovery ====
ADPenTest can identify all Domain Controllers in a network through multiple mechanisms:
* '''DNS SRV Record Queries:''' _ldap._tcp.dc._msdcs.DOMAIN queries
* '''LDAP RootDSE Probes:''' Direct LDAP queries to identify DC infrastructure
* '''Port Fingerprinting:''' Scanning for Kerberos (88), LDAP (389), GC (3268) ports
* '''Subnet Scanning:''' Comprehensive subnet sweeps for DC identification
* '''WAF Bypass:''' When firewalls block direct access, attempts raw LDAP/Kerberos protocols
Each discovery method is assigned a confidence score, allowing testers to prioritize high-confidence targets.
{{Warning|Large-scale subnet scanning can generate significant network traffic. Always ensure proper network capacity and authorization before running broad scans.}}
==== 2. Tool Orchestration ====
ADPenTest integrates and orchestrates 35+ specialized security tools:
'''Reconnaissance Tools:'''
* nmap — Network mapping and port scanning
* masscan — High-speed port scanning
* DNSdumpster — DNS enumeration
'''SMB & LDAP Tools:'''
* crackmapexec — SMB/LDAP enumeration and exploitation
* smbclient — SMB share browsing
* ldapdomaindump — LDAP domain dumping
'''Kerberos Tools:'''
* Kerberoast — AS ticket extraction and cracking
* Impacket Suite — Kerberos exploitation toolkit
* GetUserSPNs — Service Principal Name enumeration
'''Certificate Tools:'''
* certipy — ADCS exploitation framework
* ESC1/ESC3/ESC9 — Certificate template abuse techniques
'''Exploitation & Persistence:'''
* Mimikatz — Credential dumping
* secretsdump (impacket) — Hash extraction
* schtasks — Task scheduling exploitation
'''Performance Benefits:'''
ADPenTest uses multi-threading to execute tools in parallel:
* {{colorbox|lightblue|16 parallel workers}} for tool execution
* {{colorbox|lightblue|32 parallel workers}} for port/DNS tasks
* {{colorbox|lightblue|10-15x speedup}} compared to sequential execution
<syntaxhighlight lang="bash">
# Example: ADPenTest orchestrates these tools automatically
adpentest --target corp.local --scope-confirmed
# Behind the scenes, it runs:
# - nmap/masscan for port discovery
# - crackmapexec for SMB enumeration
# - Kerberoast for service ticket extraction
# - certipy for ADCS enumeration
# - And 30+ other tools in parallel
</syntaxhighlight>
==== 3. CVE Scanning & Detection ====
ADPenTest includes 7 built-in vulnerability scanners targeting critical AD CVEs:
{| class="wikitable"
|-
! CVE / Vulnerability !! CVSS !! Detection Method
|-
| Spring LDAP Hardcoded Credentials || 9.4 || Anonymous LDAP query
|-
| Certificate Enrollment Bypass (TOCTOU) || 8.8 || Template enumeration
|-
| NTLM Authentication Relay || 8.1 || Network signature detection
|-
| Kerberos AS-REP Roasting || 7.5 || Kerberos RC4 detection
|-
| SMB Null Session || 7.5 || SMB probing
|-
| LDAP Anonymous Bind || 7.5 || LDAP anonymous query
|-
| Unpatched Kerberos Vulnerability || 7.5 || Version fingerprinting
|}
All scanners use '''safe, read-only methods''' - port probes and anonymous queries only. No credentials are modified or systems compromised.
==== 4. Web Application Firewall (WAF) Bypass ====
When targets are protected by firewalls blocking traditional AD protocols, ADPenTest attempts multiple bypass techniques:
* '''Header Spoofing:''' Manipulating HTTP headers to evade WAF rules
* '''TCP Fragmentation:''' Breaking packets into fragments to bypass signature detection
* '''Raw Protocol Tunneling:''' LDAP and Kerberos over raw TCP/UDP sockets
* '''HTTPS Interception Bypass:''' Certificate pinning and SSL inspection evasion
* '''Timing-Based Evasion:''' Slowing scan rates to evade rate-limiting
{{Important|WAF bypass techniques should only be used on systems you own or have explicit written authorization to test. Some bypass techniques may be disruptive.}}
==== 5. Persistent Scan History & Reporting ====
All ADPenTest results are automatically stored in SQLite:
* '''Location:''' ~/.adpentest/scan_history.db
* '''Searchable Schema:''' Query by date, target, tool, CVE, status
* '''Trend Analysis:''' Compare findings across multiple scans
* '''Audit Trail:''' Complete execution log for compliance reporting
<syntaxhighlight lang="bash">
# View scan history
adpentest --history
# Generate CVE report
adpentest --cve-report
# Query specific findings
adpentest --query "kerberoasting"
</syntaxhighlight>
---
=== Key Differences from Manual Testing ===
{| class="wikitable"
|-
! Aspect !! Manual Testing !! ADPenTest Automated
|-
| Time to Complete || Days/Weeks || Hours
|-
| Tool Coordination || Manual || Automatic
|-
| Consistency || Variable (human-dependent) || Reproducible
|-
| Parallel Execution || Limited || Up to 48 workers
|-
| CVE Coverage || Ad-hoc || Standardized 7-scanner suite
|-
| Reporting || Manual compilation || Automatic SQLite database
|-
| Scalability || Difficult for large domains || Designed for scale
|}
{{Note|ADPenTest is ''not'' a replacement for manual testing—it's a force multiplier. Manual testing remains crucial for complex attack chains, advanced persistence, and business logic vulnerabilities.}}
---
=== Safety Mechanisms ===
ADPenTest includes several safety features to prevent accidental misuse:
==== 1. Dry-Run Mode (Default) ====
All scans run in preview mode by default:
<syntaxhighlight lang="bash">
# This only PREVIEWS what would be scanned—no actual probes
adpentest --target corp.local
# To actually execute the scan, use --scope-confirmed
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
==== 2. Scope Definition ====
Testers must explicitly define the scope:
<syntaxhighlight lang="bash">
# Scope to specific OUs
adpentest --target corp.local --ou "OU=Engineering,DC=corp,DC=local" --scope-confirmed
# Scope to specific servers
adpentest --target corp.local --hosts "dc1.corp.local,dc2.corp.local" --scope-confirmed
</syntaxhighlight>
==== 3. Rate Limiting ====
To avoid disrupting production environments:
<syntaxhighlight lang="bash">
# Limit concurrent workers
adpentest --target corp.local --max-workers 8 --scope-confirmed
# Throttle scan speed
adpentest --target corp.local --rate-limit 50 --scope-confirmed # 50 requests/sec
</syntaxhighlight>
==== 4. Non-Destructive Operations ====
By design, ADPenTest never:
* Modifies Active Directory objects
* Creates unauthorized accounts
* Changes group memberships
* Disables security features
* Deletes data
All operations are read-only reconnaissance and exploitation simulation.
{{Important|Some exploitation techniques (like Kerberoasting) do extract tickets from memory but do not modify AD. These are still considered safe operations in an authorized test.}}
---
=== When to Use ADPenTest ===
ADPenTest is ideal for:
✓ '''Internal penetration tests''' of company AD domains
✓ '''Red team exercises''' for incident response training
✓ '''Periodic security assessments''' of AD environments
✓ '''Compliance testing''' (PCI DSS, HIPAA, SOC 2)
✓ '''Large-scale domain testing''' (many OUs, hundreds of users)
✓ '''Automated vulnerability scanning''' of AD infrastructure
✓ '''Proof-of-concept testing''' for security findings
ADPenTest is '''not ideal''' for:
✗ Unauthorized testing (illegal)
✗ Client testing without explicit written authorization
✗ Testing production systems without change management approval
✗ Persistence mechanisms (use manual techniques instead)
✗ Business logic exploitation requiring custom tooling
---
=== Real-World Example ===
{{Example|
'''Scenario:''' A Fortune 500 company needs to assess AD security across 5 domains with 50,000+ users.
'''Manual Approach:'''
* Weeks of reconnaissance and enumeration
* Manual tool execution for each domain
* Days of result compilation and reporting
* Inconsistent coverage across domains
'''ADPenTest Approach:'''
* Automated multi-domain DC discovery
* 35+ tools orchestrated in parallel
* Comprehensive CVE scanning
* Automated reporting with searchable database
* Complete assessment in ''3-5 days'' instead of weeks
}}
---
=== Knowledge Check ===
Test your understanding:
# What are the three core principles of ADPenTest design?
# Name three DC discovery mechanisms ADPenTest uses
# How many tools does ADPenTest orchestrate? What performance benefit does this provide?
# What does "dry-run mode" mean and when is it used?
# True or False: ADPenTest can modify Active Directory objects
{{Note|Answers: 1) Automation, Orchestration, Safety 2) DNS SRV records, LDAP probes, port fingerprinting 3) 35+, 10-15x speedup 4) Preview-only mode that doesn't execute actual scans (default behavior) 5) False—all operations are read-only}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub Repository]
* [https://pypi.org/project/adpentest/ ADPenTest on PyPI]
* [[en.wikipedia:Security_assessment|Wikipedia: Security Assessment]]
---
[[Category:Active Directory Security and Penetration Testing]]
[[Category:Security Tools]]
{{BookCat}}
snpueh2ptoyhk4tvx6w36cfvxtejl3e
4672131
4672121
2026-09-24T12:20:10Z
MathXplore
3097823
removed [[Category:Active Directory Security and Penetration Testing]] using [[Help:Gadget-HotCat|HotCat]]
4672131
wikitext
text/x-wiki
== Chapter 4: Introduction to ADPenTest ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What ADPenTest is and its design philosophy
* Key capabilities and features of the framework
* How ADPenTest differs from manual penetration testing
* The safety mechanisms built into ADPenTest
* When and how to use ADPenTest in a real engagement
=== Prerequisites ===
* Basic understanding of Active Directory architecture (see [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1]])
* Familiarity with penetration testing concepts (see [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2]])
* Command-line proficiency in Linux/Windows
---
=== What is ADPenTest? ===
'''ADPenTest''' is a Python-based framework for automated penetration testing of Active Directory environments. Designed specifically for authorized security assessments, it orchestrates multiple attack tools and techniques into a cohesive workflow that can be executed efficiently across large or complex AD domains.
{{Note|ADPenTest is a specialized tool designed for ''authorized'' penetration testing only. It requires explicit authorization flags and operates in "dry-run" (preview) mode by default.}}
==== Design Philosophy ====
ADPenTest was built on three core principles:
# '''Automation:''' Reduce manual, repetitive reconnaissance and exploitation tasks
# '''Orchestration:''' Coordinate 35+ specialized tools in parallel for maximum efficiency
# '''Safety:''' Require explicit authorization and default to non-destructive operations
This approach lets security teams:
* Conduct comprehensive assessments faster
* Reduce human error in tool execution
* Maintain consistent, reproducible testing methodology
* Generate detailed, searchable audit trails
---
=== Core Capabilities ===
==== 1. Automated Domain Controller Discovery ====
ADPenTest can identify all Domain Controllers in a network through multiple mechanisms:
* '''DNS SRV Record Queries:''' _ldap._tcp.dc._msdcs.DOMAIN queries
* '''LDAP RootDSE Probes:''' Direct LDAP queries to identify DC infrastructure
* '''Port Fingerprinting:''' Scanning for Kerberos (88), LDAP (389), GC (3268) ports
* '''Subnet Scanning:''' Comprehensive subnet sweeps for DC identification
* '''WAF Bypass:''' When firewalls block direct access, attempts raw LDAP/Kerberos protocols
Each discovery method is assigned a confidence score, allowing testers to prioritize high-confidence targets.
{{Warning|Large-scale subnet scanning can generate significant network traffic. Always ensure proper network capacity and authorization before running broad scans.}}
==== 2. Tool Orchestration ====
ADPenTest integrates and orchestrates 35+ specialized security tools:
'''Reconnaissance Tools:'''
* nmap — Network mapping and port scanning
* masscan — High-speed port scanning
* DNSdumpster — DNS enumeration
'''SMB & LDAP Tools:'''
* crackmapexec — SMB/LDAP enumeration and exploitation
* smbclient — SMB share browsing
* ldapdomaindump — LDAP domain dumping
'''Kerberos Tools:'''
* Kerberoast — AS ticket extraction and cracking
* Impacket Suite — Kerberos exploitation toolkit
* GetUserSPNs — Service Principal Name enumeration
'''Certificate Tools:'''
* certipy — ADCS exploitation framework
* ESC1/ESC3/ESC9 — Certificate template abuse techniques
'''Exploitation & Persistence:'''
* Mimikatz — Credential dumping
* secretsdump (impacket) — Hash extraction
* schtasks — Task scheduling exploitation
'''Performance Benefits:'''
ADPenTest uses multi-threading to execute tools in parallel:
* {{colorbox|lightblue|16 parallel workers}} for tool execution
* {{colorbox|lightblue|32 parallel workers}} for port/DNS tasks
* {{colorbox|lightblue|10-15x speedup}} compared to sequential execution
<syntaxhighlight lang="bash">
# Example: ADPenTest orchestrates these tools automatically
adpentest --target corp.local --scope-confirmed
# Behind the scenes, it runs:
# - nmap/masscan for port discovery
# - crackmapexec for SMB enumeration
# - Kerberoast for service ticket extraction
# - certipy for ADCS enumeration
# - And 30+ other tools in parallel
</syntaxhighlight>
==== 3. CVE Scanning & Detection ====
ADPenTest includes 7 built-in vulnerability scanners targeting critical AD CVEs:
{| class="wikitable"
|-
! CVE / Vulnerability !! CVSS !! Detection Method
|-
| Spring LDAP Hardcoded Credentials || 9.4 || Anonymous LDAP query
|-
| Certificate Enrollment Bypass (TOCTOU) || 8.8 || Template enumeration
|-
| NTLM Authentication Relay || 8.1 || Network signature detection
|-
| Kerberos AS-REP Roasting || 7.5 || Kerberos RC4 detection
|-
| SMB Null Session || 7.5 || SMB probing
|-
| LDAP Anonymous Bind || 7.5 || LDAP anonymous query
|-
| Unpatched Kerberos Vulnerability || 7.5 || Version fingerprinting
|}
All scanners use '''safe, read-only methods''' - port probes and anonymous queries only. No credentials are modified or systems compromised.
==== 4. Web Application Firewall (WAF) Bypass ====
When targets are protected by firewalls blocking traditional AD protocols, ADPenTest attempts multiple bypass techniques:
* '''Header Spoofing:''' Manipulating HTTP headers to evade WAF rules
* '''TCP Fragmentation:''' Breaking packets into fragments to bypass signature detection
* '''Raw Protocol Tunneling:''' LDAP and Kerberos over raw TCP/UDP sockets
* '''HTTPS Interception Bypass:''' Certificate pinning and SSL inspection evasion
* '''Timing-Based Evasion:''' Slowing scan rates to evade rate-limiting
{{Important|WAF bypass techniques should only be used on systems you own or have explicit written authorization to test. Some bypass techniques may be disruptive.}}
==== 5. Persistent Scan History & Reporting ====
All ADPenTest results are automatically stored in SQLite:
* '''Location:''' ~/.adpentest/scan_history.db
* '''Searchable Schema:''' Query by date, target, tool, CVE, status
* '''Trend Analysis:''' Compare findings across multiple scans
* '''Audit Trail:''' Complete execution log for compliance reporting
<syntaxhighlight lang="bash">
# View scan history
adpentest --history
# Generate CVE report
adpentest --cve-report
# Query specific findings
adpentest --query "kerberoasting"
</syntaxhighlight>
---
=== Key Differences from Manual Testing ===
{| class="wikitable"
|-
! Aspect !! Manual Testing !! ADPenTest Automated
|-
| Time to Complete || Days/Weeks || Hours
|-
| Tool Coordination || Manual || Automatic
|-
| Consistency || Variable (human-dependent) || Reproducible
|-
| Parallel Execution || Limited || Up to 48 workers
|-
| CVE Coverage || Ad-hoc || Standardized 7-scanner suite
|-
| Reporting || Manual compilation || Automatic SQLite database
|-
| Scalability || Difficult for large domains || Designed for scale
|}
{{Note|ADPenTest is ''not'' a replacement for manual testing—it's a force multiplier. Manual testing remains crucial for complex attack chains, advanced persistence, and business logic vulnerabilities.}}
---
=== Safety Mechanisms ===
ADPenTest includes several safety features to prevent accidental misuse:
==== 1. Dry-Run Mode (Default) ====
All scans run in preview mode by default:
<syntaxhighlight lang="bash">
# This only PREVIEWS what would be scanned—no actual probes
adpentest --target corp.local
# To actually execute the scan, use --scope-confirmed
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
==== 2. Scope Definition ====
Testers must explicitly define the scope:
<syntaxhighlight lang="bash">
# Scope to specific OUs
adpentest --target corp.local --ou "OU=Engineering,DC=corp,DC=local" --scope-confirmed
# Scope to specific servers
adpentest --target corp.local --hosts "dc1.corp.local,dc2.corp.local" --scope-confirmed
</syntaxhighlight>
==== 3. Rate Limiting ====
To avoid disrupting production environments:
<syntaxhighlight lang="bash">
# Limit concurrent workers
adpentest --target corp.local --max-workers 8 --scope-confirmed
# Throttle scan speed
adpentest --target corp.local --rate-limit 50 --scope-confirmed # 50 requests/sec
</syntaxhighlight>
==== 4. Non-Destructive Operations ====
By design, ADPenTest never:
* Modifies Active Directory objects
* Creates unauthorized accounts
* Changes group memberships
* Disables security features
* Deletes data
All operations are read-only reconnaissance and exploitation simulation.
{{Important|Some exploitation techniques (like Kerberoasting) do extract tickets from memory but do not modify AD. These are still considered safe operations in an authorized test.}}
---
=== When to Use ADPenTest ===
ADPenTest is ideal for:
✓ '''Internal penetration tests''' of company AD domains
✓ '''Red team exercises''' for incident response training
✓ '''Periodic security assessments''' of AD environments
✓ '''Compliance testing''' (PCI DSS, HIPAA, SOC 2)
✓ '''Large-scale domain testing''' (many OUs, hundreds of users)
✓ '''Automated vulnerability scanning''' of AD infrastructure
✓ '''Proof-of-concept testing''' for security findings
ADPenTest is '''not ideal''' for:
✗ Unauthorized testing (illegal)
✗ Client testing without explicit written authorization
✗ Testing production systems without change management approval
✗ Persistence mechanisms (use manual techniques instead)
✗ Business logic exploitation requiring custom tooling
---
=== Real-World Example ===
{{Example|
'''Scenario:''' A Fortune 500 company needs to assess AD security across 5 domains with 50,000+ users.
'''Manual Approach:'''
* Weeks of reconnaissance and enumeration
* Manual tool execution for each domain
* Days of result compilation and reporting
* Inconsistent coverage across domains
'''ADPenTest Approach:'''
* Automated multi-domain DC discovery
* 35+ tools orchestrated in parallel
* Comprehensive CVE scanning
* Automated reporting with searchable database
* Complete assessment in ''3-5 days'' instead of weeks
}}
---
=== Knowledge Check ===
Test your understanding:
# What are the three core principles of ADPenTest design?
# Name three DC discovery mechanisms ADPenTest uses
# How many tools does ADPenTest orchestrate? What performance benefit does this provide?
# What does "dry-run mode" mean and when is it used?
# True or False: ADPenTest can modify Active Directory objects
{{Note|Answers: 1) Automation, Orchestration, Safety 2) DNS SRV records, LDAP probes, port fingerprinting 3) 35+, 10-15x speedup 4) Preview-only mode that doesn't execute actual scans (default behavior) 5) False—all operations are read-only}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub Repository]
* [https://pypi.org/project/adpentest/ ADPenTest on PyPI]
* [[en.wikipedia:Security_assessment|Wikipedia: Security Assessment]]
---
[[Category:Security Tools]]
{{BookCat}}
p45huzegz6njlrm9jy3bqlq2zsbyvgu
4672156
4672131
2026-09-24T15:27:57Z
Kittycataclysm
3371989
flag
4672156
wikitext
text/x-wiki
{{AI-suspected|reason=mass content addition, typographical quirks, unformatted lists, inconsistent formatting, broken refs, non-WB categories, reliance on lists}}
== Chapter 4: Introduction to ADPenTest ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* What ADPenTest is and its design philosophy
* Key capabilities and features of the framework
* How ADPenTest differs from manual penetration testing
* The safety mechanisms built into ADPenTest
* When and how to use ADPenTest in a real engagement
=== Prerequisites ===
* Basic understanding of Active Directory architecture (see [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1]])
* Familiarity with penetration testing concepts (see [[Active Directory Security and Penetration Testing/Chapter 2 - Penetration Testing Fundamentals|Chapter 2]])
* Command-line proficiency in Linux/Windows
---
=== What is ADPenTest? ===
'''ADPenTest''' is a Python-based framework for automated penetration testing of Active Directory environments. Designed specifically for authorized security assessments, it orchestrates multiple attack tools and techniques into a cohesive workflow that can be executed efficiently across large or complex AD domains.
{{Note|ADPenTest is a specialized tool designed for ''authorized'' penetration testing only. It requires explicit authorization flags and operates in "dry-run" (preview) mode by default.}}
==== Design Philosophy ====
ADPenTest was built on three core principles:
# '''Automation:''' Reduce manual, repetitive reconnaissance and exploitation tasks
# '''Orchestration:''' Coordinate 35+ specialized tools in parallel for maximum efficiency
# '''Safety:''' Require explicit authorization and default to non-destructive operations
This approach lets security teams:
* Conduct comprehensive assessments faster
* Reduce human error in tool execution
* Maintain consistent, reproducible testing methodology
* Generate detailed, searchable audit trails
---
=== Core Capabilities ===
==== 1. Automated Domain Controller Discovery ====
ADPenTest can identify all Domain Controllers in a network through multiple mechanisms:
* '''DNS SRV Record Queries:''' _ldap._tcp.dc._msdcs.DOMAIN queries
* '''LDAP RootDSE Probes:''' Direct LDAP queries to identify DC infrastructure
* '''Port Fingerprinting:''' Scanning for Kerberos (88), LDAP (389), GC (3268) ports
* '''Subnet Scanning:''' Comprehensive subnet sweeps for DC identification
* '''WAF Bypass:''' When firewalls block direct access, attempts raw LDAP/Kerberos protocols
Each discovery method is assigned a confidence score, allowing testers to prioritize high-confidence targets.
{{Warning|Large-scale subnet scanning can generate significant network traffic. Always ensure proper network capacity and authorization before running broad scans.}}
==== 2. Tool Orchestration ====
ADPenTest integrates and orchestrates 35+ specialized security tools:
'''Reconnaissance Tools:'''
* nmap — Network mapping and port scanning
* masscan — High-speed port scanning
* DNSdumpster — DNS enumeration
'''SMB & LDAP Tools:'''
* crackmapexec — SMB/LDAP enumeration and exploitation
* smbclient — SMB share browsing
* ldapdomaindump — LDAP domain dumping
'''Kerberos Tools:'''
* Kerberoast — AS ticket extraction and cracking
* Impacket Suite — Kerberos exploitation toolkit
* GetUserSPNs — Service Principal Name enumeration
'''Certificate Tools:'''
* certipy — ADCS exploitation framework
* ESC1/ESC3/ESC9 — Certificate template abuse techniques
'''Exploitation & Persistence:'''
* Mimikatz — Credential dumping
* secretsdump (impacket) — Hash extraction
* schtasks — Task scheduling exploitation
'''Performance Benefits:'''
ADPenTest uses multi-threading to execute tools in parallel:
* {{colorbox|lightblue|16 parallel workers}} for tool execution
* {{colorbox|lightblue|32 parallel workers}} for port/DNS tasks
* {{colorbox|lightblue|10-15x speedup}} compared to sequential execution
<syntaxhighlight lang="bash">
# Example: ADPenTest orchestrates these tools automatically
adpentest --target corp.local --scope-confirmed
# Behind the scenes, it runs:
# - nmap/masscan for port discovery
# - crackmapexec for SMB enumeration
# - Kerberoast for service ticket extraction
# - certipy for ADCS enumeration
# - And 30+ other tools in parallel
</syntaxhighlight>
==== 3. CVE Scanning & Detection ====
ADPenTest includes 7 built-in vulnerability scanners targeting critical AD CVEs:
{| class="wikitable"
|-
! CVE / Vulnerability !! CVSS !! Detection Method
|-
| Spring LDAP Hardcoded Credentials || 9.4 || Anonymous LDAP query
|-
| Certificate Enrollment Bypass (TOCTOU) || 8.8 || Template enumeration
|-
| NTLM Authentication Relay || 8.1 || Network signature detection
|-
| Kerberos AS-REP Roasting || 7.5 || Kerberos RC4 detection
|-
| SMB Null Session || 7.5 || SMB probing
|-
| LDAP Anonymous Bind || 7.5 || LDAP anonymous query
|-
| Unpatched Kerberos Vulnerability || 7.5 || Version fingerprinting
|}
All scanners use '''safe, read-only methods''' - port probes and anonymous queries only. No credentials are modified or systems compromised.
==== 4. Web Application Firewall (WAF) Bypass ====
When targets are protected by firewalls blocking traditional AD protocols, ADPenTest attempts multiple bypass techniques:
* '''Header Spoofing:''' Manipulating HTTP headers to evade WAF rules
* '''TCP Fragmentation:''' Breaking packets into fragments to bypass signature detection
* '''Raw Protocol Tunneling:''' LDAP and Kerberos over raw TCP/UDP sockets
* '''HTTPS Interception Bypass:''' Certificate pinning and SSL inspection evasion
* '''Timing-Based Evasion:''' Slowing scan rates to evade rate-limiting
{{Important|WAF bypass techniques should only be used on systems you own or have explicit written authorization to test. Some bypass techniques may be disruptive.}}
==== 5. Persistent Scan History & Reporting ====
All ADPenTest results are automatically stored in SQLite:
* '''Location:''' ~/.adpentest/scan_history.db
* '''Searchable Schema:''' Query by date, target, tool, CVE, status
* '''Trend Analysis:''' Compare findings across multiple scans
* '''Audit Trail:''' Complete execution log for compliance reporting
<syntaxhighlight lang="bash">
# View scan history
adpentest --history
# Generate CVE report
adpentest --cve-report
# Query specific findings
adpentest --query "kerberoasting"
</syntaxhighlight>
---
=== Key Differences from Manual Testing ===
{| class="wikitable"
|-
! Aspect !! Manual Testing !! ADPenTest Automated
|-
| Time to Complete || Days/Weeks || Hours
|-
| Tool Coordination || Manual || Automatic
|-
| Consistency || Variable (human-dependent) || Reproducible
|-
| Parallel Execution || Limited || Up to 48 workers
|-
| CVE Coverage || Ad-hoc || Standardized 7-scanner suite
|-
| Reporting || Manual compilation || Automatic SQLite database
|-
| Scalability || Difficult for large domains || Designed for scale
|}
{{Note|ADPenTest is ''not'' a replacement for manual testing—it's a force multiplier. Manual testing remains crucial for complex attack chains, advanced persistence, and business logic vulnerabilities.}}
---
=== Safety Mechanisms ===
ADPenTest includes several safety features to prevent accidental misuse:
==== 1. Dry-Run Mode (Default) ====
All scans run in preview mode by default:
<syntaxhighlight lang="bash">
# This only PREVIEWS what would be scanned—no actual probes
adpentest --target corp.local
# To actually execute the scan, use --scope-confirmed
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
==== 2. Scope Definition ====
Testers must explicitly define the scope:
<syntaxhighlight lang="bash">
# Scope to specific OUs
adpentest --target corp.local --ou "OU=Engineering,DC=corp,DC=local" --scope-confirmed
# Scope to specific servers
adpentest --target corp.local --hosts "dc1.corp.local,dc2.corp.local" --scope-confirmed
</syntaxhighlight>
==== 3. Rate Limiting ====
To avoid disrupting production environments:
<syntaxhighlight lang="bash">
# Limit concurrent workers
adpentest --target corp.local --max-workers 8 --scope-confirmed
# Throttle scan speed
adpentest --target corp.local --rate-limit 50 --scope-confirmed # 50 requests/sec
</syntaxhighlight>
==== 4. Non-Destructive Operations ====
By design, ADPenTest never:
* Modifies Active Directory objects
* Creates unauthorized accounts
* Changes group memberships
* Disables security features
* Deletes data
All operations are read-only reconnaissance and exploitation simulation.
{{Important|Some exploitation techniques (like Kerberoasting) do extract tickets from memory but do not modify AD. These are still considered safe operations in an authorized test.}}
---
=== When to Use ADPenTest ===
ADPenTest is ideal for:
✓ '''Internal penetration tests''' of company AD domains
✓ '''Red team exercises''' for incident response training
✓ '''Periodic security assessments''' of AD environments
✓ '''Compliance testing''' (PCI DSS, HIPAA, SOC 2)
✓ '''Large-scale domain testing''' (many OUs, hundreds of users)
✓ '''Automated vulnerability scanning''' of AD infrastructure
✓ '''Proof-of-concept testing''' for security findings
ADPenTest is '''not ideal''' for:
✗ Unauthorized testing (illegal)
✗ Client testing without explicit written authorization
✗ Testing production systems without change management approval
✗ Persistence mechanisms (use manual techniques instead)
✗ Business logic exploitation requiring custom tooling
---
=== Real-World Example ===
{{Example|
'''Scenario:''' A Fortune 500 company needs to assess AD security across 5 domains with 50,000+ users.
'''Manual Approach:'''
* Weeks of reconnaissance and enumeration
* Manual tool execution for each domain
* Days of result compilation and reporting
* Inconsistent coverage across domains
'''ADPenTest Approach:'''
* Automated multi-domain DC discovery
* 35+ tools orchestrated in parallel
* Comprehensive CVE scanning
* Automated reporting with searchable database
* Complete assessment in ''3-5 days'' instead of weeks
}}
---
=== Knowledge Check ===
Test your understanding:
# What are the three core principles of ADPenTest design?
# Name three DC discovery mechanisms ADPenTest uses
# How many tools does ADPenTest orchestrate? What performance benefit does this provide?
# What does "dry-run mode" mean and when is it used?
# True or False: ADPenTest can modify Active Directory objects
{{Note|Answers: 1) Automation, Orchestration, Safety 2) DNS SRV records, LDAP probes, port fingerprinting 3) 35+, 10-15x speedup 4) Preview-only mode that doesn't execute actual scans (default behavior) 5) False—all operations are read-only}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub Repository]
* [https://pypi.org/project/adpentest/ ADPenTest on PyPI]
* [[en.wikipedia:Security_assessment|Wikipedia: Security Assessment]]
---
[[Category:Security Tools]]
{{BookCat}}
njs3yohklqkys2y7dfhulpo3yell8aw
Active Directory Security and Penetration Testing/Part 2 - ADPenTest Framework
0
485826
4672120
4672032
2026-09-24T12:18:16Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672120
wikitext
text/x-wiki
{{BookCat}}
9r4eiwf8iu6nxtdmk7watelvf7ektlu
Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration
0
485827
4672119
4672034
2026-09-24T12:18:11Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672119
wikitext
text/x-wiki
== Chapter 5: Installation and Configuration ==
=== Learning Objectives ===
By the end of this chapter, you will be able to:
* Install ADPenTest from PyPI
* Understand system requirements and dependencies
* Configure ADPenTest for your environment
* Set up the scan history database
* Configure authentication credentials
* Understand configuration file structure
* Troubleshoot common installation issues
* Verify installation correctness
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 4 - Introduction to ADPenTest|Chapter 4: Introduction to ADPenTest]]
* Linux or Windows system with Python 3.8+
* Basic familiarity with Python and pip
* Administrator/sudo access to install packages
* Network access to target AD domain
---
=== System Requirements ===
==== Minimum Requirements ====
{| class="wikitable"
|-
! Component !! Requirement
|-
| Python || 3.8 or higher
|-
| Operating System || Linux (preferred) or Windows
|-
| RAM || 4GB minimum (8GB+ recommended)
|-
| Disk Space || 2GB for ADPenTest and dependencies
|-
| Network || Access to target domain
|-
| Privileges || User with sudo/admin access
|}
==== Recommended Setup ====
* '''OS:''' Linux (Ubuntu 20.04 LTS or Kali Linux)
* '''Python:''' 3.10 or higher
* '''RAM:''' 8GB+
* '''Disk:''' 500GB+ for scan databases
* '''Network:''' Dedicated interface for lab/testing network
{{Note|Windows runs ADPenTest fine, but Linux provides better tool integration and performance for penetration testing.}}
---
=== Installing Python ===
==== Linux (Ubuntu/Debian) ====
Check Python version:
<syntaxhighlight lang="bash">
python3 --version
</syntaxhighlight>
Install Python 3.10+:
<syntaxhighlight lang="bash">
sudo apt-get update
sudo apt-get install python3.10 python3-pip python3-venv
</syntaxhighlight>
Verify installation:
<syntaxhighlight lang="bash">
python3.10 --version
pip3 --version
</syntaxhighlight>
==== Windows ====
'''Option 1: Microsoft Store (Easiest)'''
<syntaxhighlight lang="powershell">
# Install from Microsoft Store
# Search for "Python 3.10" or higher
# Click Install
</syntaxhighlight>
'''Option 2: Python.org'''
1. Go to https://www.python.org/downloads/
2. Download Python 3.10+ installer
3. Run installer
4. {{Important|Check "Add Python to PATH"}}
5. Complete installation
Verify:
<syntaxhighlight lang="bash">
python --version
pip --version
</syntaxhighlight>
'''Option 3: Chocolatey (Windows)'''
<syntaxhighlight lang="powershell">
choco install python
</syntaxhighlight>
---
=== Installing ADPenTest ===
==== Simple Installation ====
The easiest way to install ADPenTest:
<syntaxhighlight lang="bash">
pip install adpentest
</syntaxhighlight>
Verify installation:
<syntaxhighlight lang="bash">
adpentest --version
adpentest --help
</syntaxhighlight>
Expected output:
<syntaxhighlight lang="text">
ADPenTest v1.2.0
Usage: adpentest [OPTIONS] [COMMAND]
...
</syntaxhighlight>
{{Note|pip automatically installs all required dependencies (nmap, crackmapexec, impacket, etc.).}}
==== Installing Specific Version ====
Install a specific ADPenTest version:
<syntaxhighlight lang="bash">
pip install adpentest==1.2.0
</syntaxhighlight>
List available versions:
<syntaxhighlight lang="bash">
pip index versions adpentest
</syntaxhighlight>
==== Upgrade Existing Installation ====
Update to the latest version:
<syntaxhighlight lang="bash">
pip install --upgrade adpentest
</syntaxhighlight>
---
=== Installing from Source ===
For development or custom builds:
<syntaxhighlight lang="bash">
# Clone repository
git clone https://github.com/netanelcyber/AdPentestAI-Python.git
cd AdPentestAI-Python
# Install in development mode
pip install -e .
# Or install with dependencies
pip install -r requirements.txt
python setup.py install
</syntaxhighlight>
{{Note|Source installation gives you access to latest features but may be less stable than PyPI release.}}
---
=== Required Dependencies ===
ADPenTest automatically installs these tools:
==== Network Scanning ====
* '''nmap''' - Port scanning and OS fingerprinting
* '''masscan''' - High-speed port scanning
* '''dnspython''' - DNS queries and enumeration
==== SMB & LDAP ====
* '''crackmapexec''' - SMB/LDAP enumeration and exploitation
* '''impacket''' - Protocol implementation and exploitation
* '''ldap3''' - LDAP protocol implementation
* '''pysmbclient''' - SMB client implementation
==== Kerberos ====
* '''pycryptodome''' - Cryptographic implementations
* '''pyspnego''' - Kerberos and NTLM authentication
==== Exploitation ====
* '''certipy-ad''' - ADCS exploitation
* '''bloodhound.py''' - Attack path mapping
* '''pypykatz''' - Credential extraction
==== Database & Storage ====
* '''sqlalchemy''' - Database abstraction
* '''sqlite3''' - Result storage
{{Note|Some tools (like nmap) may require separate installation on certain systems. See troubleshooting section if tools aren't found.}}
---
=== System-Level Dependencies ===
==== Linux ====
Install system packages:
<syntaxhighlight lang="bash">
sudo apt-get install -y \
nmap \
masscan \
git \
curl \
wget \
build-essential \
python3-dev
</syntaxhighlight>
==== Windows ====
Some tools work better when pre-installed:
<syntaxhighlight lang="powershell">
# Install via Chocolatey
choco install nmap
choco install git
choco install curl
</syntaxhighlight>
Or install manually from:
* nmap: https://nmap.org/download.html
* Git: https://git-scm.com/download/win
---
=== First-Time Setup ===
==== Create Working Directory ====
<syntaxhighlight lang="bash">
mkdir -p ~/adpentest-lab
cd ~/adpentest-lab
</syntaxhighlight>
==== Initialize Configuration ====
<syntaxhighlight lang="bash">
# Create default configuration
adpentest --init
</syntaxhighlight>
This creates:
<syntaxhighlight lang="text">
~/.adpentest/
├─ config.yaml # Main configuration
├─ credentials.yaml # Stored credentials
├─ scan_history.db # SQLite database
└─ logs/
└─ adpentest.log # Log file
</syntaxhighlight>
==== Test Installation ====
<syntaxhighlight lang="bash">
# Check version
adpentest --version
# Display help
adpentest --help
# Test connectivity
adpentest --test-connection corp.local
</syntaxhighlight>
---
=== Configuration Files ===
==== Main Configuration (config.yaml) ====
Located at: `~/.adpentest/config.yaml`
'''Default configuration:'''
<syntaxhighlight lang="yaml">
# ADPenTest Configuration
# General settings
general:
timeout: 300
retries: 3
log_level: INFO
# Network settings
network:
max_threads: 16
dns_servers:
- 8.8.8.8
- 8.8.4.4
rate_limit: 0 # 0 = unlimited
# Tool settings
tools:
nmap:
enabled: true
aggressive: false
masscan:
enabled: true
rate: 1000
crackmapexec:
enabled: true
timeout: 60
kerberoast:
enabled: true
certipy:
enabled: true
# Database settings
database:
type: sqlite
path: ~/.adpentest/scan_history.db
# Scan settings
scan:
phases:
- reconnaissance
- enumeration
- vulnerability_assessment
- exploitation
preserve_evidence: true
safe_mode: true
</syntaxhighlight>
===== Key Configuration Options =====
* '''timeout''' - Seconds before operation times out
* '''retries''' - Number of retries on failure
* '''max_threads''' - Maximum parallel workers
* '''rate_limit''' - Requests per second (0 = unlimited)
* '''safe_mode''' - Default to dry-run (no actual exploitation)
* '''preserve_evidence''' - Keep scan data for auditing
==== Credentials Configuration (credentials.yaml) ====
Located at: `~/.adpentest/credentials.yaml`
'''Format:'''
<syntaxhighlight lang="yaml">
# AD Credentials
credentials:
- domain: corp.local
username: administrator
password: "SecurePassword123!"
ntlm_hash: null
ticket_path: null
- domain: corp.local
username: serviceaccount
password: "ServicePass456!"
ntlm_hash: null
ticket_path: null
</syntaxhighlight>
{{Warning|credentials.yaml contains sensitive data. Protect it with appropriate file permissions (chmod 600).}}
===== Permission Settings =====
<syntaxhighlight lang="bash">
# Restrict credentials file to owner only
chmod 600 ~/.adpentest/credentials.yaml
# Verify permissions
ls -la ~/.adpentest/credentials.yaml
</syntaxhighlight>
---
=== Environment Variables ===
Configure ADPenTest via environment variables:
<syntaxhighlight lang="bash">
# Set target domain
export ADPENTEST_TARGET=corp.local
# Set DNS servers
export ADPENTEST_DNS=192.168.1.10,8.8.8.8
# Set logging level
export ADPENTEST_LOG_LEVEL=DEBUG
# Set maximum workers
export ADPENTEST_MAX_WORKERS=8
# Run with environment variables
adpentest
</syntaxhighlight>
===== Common Environment Variables =====
{| class="wikitable"
|-
! Variable !! Purpose !! Example
|-
| ADPENTEST_TARGET || Target domain || corp.local
|-
| ADPENTEST_DNS || DNS servers || 192.168.1.10,8.8.8.8
|-
| ADPENTEST_LOG_LEVEL || Logging level || DEBUG, INFO, WARNING, ERROR
|-
| ADPENTEST_MAX_WORKERS || Parallel threads || 16
|-
| ADPENTEST_TIMEOUT || Operation timeout || 300
|-
| ADPENTEST_RATE_LIMIT || Rate limit || 100
|}
---
=== Database Setup ===
ADPenTest stores results in SQLite database.
==== Automatic Setup ====
Database is created automatically on first run:
<syntaxhighlight lang="bash">
adpentest --target corp.local
# Creates: ~/.adpentest/scan_history.db
</syntaxhighlight>
==== Manual Database Initialization ====
Create database manually:
<syntaxhighlight lang="bash">
adpentest --init-db
</syntaxhighlight>
==== Database Schema ====
<syntaxhighlight lang="text">
scan_history.db
├─ scans (scan metadata)
│ ├─ scan_id
│ ├─ target_domain
│ ├─ start_time
│ ├─ end_time
│ └─ status
├─ discoveries (enumeration results)
│ ├─ discovery_id
│ ├─ scan_id
│ ├─ object_type (user, group, computer)
│ ├─ object_name
│ └─ attributes
├─ vulnerabilities (found vulnerabilities)
│ ├─ vuln_id
│ ├─ scan_id
│ ├─ cvss_score
│ ├─ description
│ └─ remediation
└─ evidence (exploitation proof)
├─ evidence_id
├─ scan_id
├─ attack_chain
└─ impact_assessment
</syntaxhighlight>
==== Backup Database ====
Regular backups protect your scan history:
<syntaxhighlight lang="bash">
# Create backup
cp ~/.adpentest/scan_history.db ~/.adpentest/scan_history.db.backup.$(date +%Y%m%d)
# Automated daily backup
0 2 * * * cp ~/.adpentest/scan_history.db ~/.adpentest/backups/scan_history.db.$(date +\%Y\%m\%d)
</syntaxhighlight>
{{Note|SQLite databases are portable. You can copy scan_history.db to another machine to analyze results.}}
---
=== Proxy Configuration ===
Configure ADPenTest to work through proxies.
==== HTTP/HTTPS Proxy ====
<syntaxhighlight lang="yaml">
# In config.yaml
network:
proxy:
http: http://proxy.corp.local:8080
https: https://proxy.corp.local:8080
no_proxy:
- localhost
- 127.0.0.1
- 192.168.1.0/24
</syntaxhighlight>
==== SOCKS Proxy ====
<syntaxhighlight lang="yaml">
# In config.yaml
network:
proxy:
socks5: socks5://proxy.corp.local:1080
socks5_user: username
socks5_pass: password
</syntaxhighlight>
==== Environment Variables ====
<syntaxhighlight lang="bash">
export HTTP_PROXY=http://proxy.corp.local:8080
export HTTPS_PROXY=https://proxy.corp.local:8080
export NO_PROXY=localhost,127.0.0.1
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
---
=== Logging Configuration ===
==== Log Levels ====
Configure verbosity of logging:
{| class="wikitable"
|-
! Level !! Verbosity !! Use Case
|-
| DEBUG || Very verbose || Troubleshooting issues
|-
| INFO || Normal || Regular scanning
|-
| WARNING || Minimal || Production use
|-
| ERROR || Only errors || Quiet mode
|}
==== Configure Logging ====
<syntaxhighlight lang="yaml">
# In config.yaml
logging:
level: INFO
format: "[%(asctime)s] %(levelname)s: %(message)s"
file: ~/.adpentest/logs/adpentest.log
file_size: 10485760 # 10MB
backup_count: 5
console: true
</syntaxhighlight>
==== View Logs ====
<syntaxhighlight lang="bash">
# Real-time log viewing
tail -f ~/.adpentest/logs/adpentest.log
# Search logs for errors
grep ERROR ~/.adpentest/logs/adpentest.log
# View last 100 lines
tail -100 ~/.adpentest/logs/adpentest.log
</syntaxhighlight>
---
=== Virtual Environment Setup ===
Best practice: Use Python virtual environment.
==== Create Virtual Environment ====
<syntaxhighlight lang="bash">
# Create virtual environment
python3 -m venv adpentest-env
# Activate (Linux/Mac)
source adpentest-env/bin/activate
# Activate (Windows)
adpentest-env\Scripts\activate
</syntaxhighlight>
==== Install in Virtual Environment ====
<syntaxhighlight lang="bash">
# Ensure activated
which python # Should show path to venv
# Install ADPenTest
pip install adpentest
# Verify
adpentest --version
</syntaxhighlight>
==== Deactivate Virtual Environment ====
<syntaxhighlight lang="bash">
deactivate
</syntaxhighlight>
{{Note|Virtual environments isolate Python packages, preventing conflicts with system packages. Recommended for production use.}}
---
=== Verifying Installation ===
==== Comprehensive Verification ====
<syntaxhighlight lang="bash">
# Check version and help
adpentest --version
adpentest --help
# Test connectivity to domain
adpentest --test-connection corp.local
# List available tools
adpentest --list-tools
# Check configuration
adpentest --show-config
# Verify database
adpentest --check-database
# Test authentication (if configured)
adpentest --test-auth
</syntaxhighlight>
==== Expected Output ====
<syntaxhighlight lang="text">
ADPenTest v1.2.0
Configuration:
- Config file: ~/.adpentest/config.yaml
- Database: ~/.adpentest/scan_history.db
- Log file: ~/.adpentest/logs/adpentest.log
Available Tools:
✓ nmap (v7.91)
✓ masscan (v1.0.5)
✓ crackmapexec (v5.4.1)
✓ impacket (v0.9.24)
✓ kerberoast (latest)
✓ certipy (v4.0.0)
Database Status: OK
Configuration: Valid
Connectivity: Ready
</syntaxhighlight>
==== Troubleshooting Installation ====
If verification fails, check:
1. '''Python version:''' `python3 --version` (should be 3.8+)
2. '''pip version:''' `pip --version` (should be recent)
3. '''ADPenTest installed:''' `pip show adpentest`
4. '''Tools available:''' `which nmap`, `which masscan`
5. '''Permissions:''' Ensure user can write to ~/.adpentest
6. '''Network:''' Test connectivity to domain
---
=== Troubleshooting Installation ===
{| class="wikitable"
|-
! Problem !! Cause !! Solution
|-
| "command not found: adpentest" || Not in PATH || Reinstall: `pip install --force-reinstall adpentest`
|-
| "ModuleNotFoundError" || Missing dependency || `pip install adpentest[full]`
|-
| "Permission denied" error || File permissions || `chmod +x ~/.local/bin/adpentest`
|-
| "nmap not found" || nmap not installed || `apt-get install nmap` (Linux)
|-
| Database errors || Corrupted DB || Delete and recreate: `rm ~/.adpentest/scan_history.db && adpentest --init-db`
|-
| Slow installation || Network/mirror issue || Use specific PyPI: `pip install -i https://pypi.org/simple/ adpentest`
|}
---
=== Post-Installation Steps ===
==== 1. Configure Credentials ====
Edit ~/.adpentest/credentials.yaml:
<syntaxhighlight lang="bash">
nano ~/.adpentest/credentials.yaml
</syntaxhighlight>
Add domain credentials:
<syntaxhighlight lang="yaml">
credentials:
- domain: corp.local
username: administrator
password: "YourPassword123!"
</syntaxhighlight>
{{Important|Protect credentials file: `chmod 600 ~/.adpentest/credentials.yaml`}}
==== 2. Test Connectivity ====
<syntaxhighlight lang="bash">
adpentest --target corp.local --test-connection
</syntaxhighlight>
==== 3. Take a Trial Scan ====
<syntaxhighlight lang="bash">
# Dry-run (no actual scans)
adpentest --target corp.local
# Review output and verify no issues
</syntaxhighlight>
==== 4. Review Configuration ====
<syntaxhighlight lang="bash">
adpentest --show-config
</syntaxhighlight>
Ensure settings match your requirements.
---
=== Knowledge Check ===
Test your installation knowledge:
# What are the minimum Python and OS requirements for ADPenTest?
# How do you install ADPenTest from PyPI?
# What does the ~/.adpentest directory contain?
# Where are credentials stored and how should they be protected?
# Name three tools that ADPenTest automatically installs.
# How do you create a Python virtual environment?
# What is the purpose of the scan_history.db file?
# How can you verify ADPenTest installation?
# What log levels are available for ADPenTest?
# True or False: You should store credentials in plaintext in config files.
{{Note|Answers: 1) Python 3.8+, Linux or Windows 2) `pip install adpentest` 3) Configuration files, database, credentials, logs 4) credentials.yaml; protected with chmod 600 5) nmap, crackmapexec, impacket, kerberoast, certipy 6) `python3 -m venv env-name` 7) Persistent storage of all scan results 8) `adpentest --version`, `adpentest --test-connection`, `adpentest --check-database` 9) DEBUG, INFO, WARNING, ERROR 10) False - use strong passwords and file permissions}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Install and Configure ADPenTest'''
1. '''Install Python:'''
- Verify Python 3.8+ installed
- Verify pip working
2. '''Create Virtual Environment:'''
- Create: `python3 -m venv adpentest-env`
- Activate: `source adpentest-env/bin/activate`
3. '''Install ADPenTest:'''
- Run: `pip install adpentest`
- Verify: `adpentest --version`
4. '''Initialize Configuration:'''
- Run: `adpentest --init`
- Review created files
5. '''Configure Credentials:'''
- Edit: `~/.adpentest/credentials.yaml`
- Add your lab domain credentials
- Set permissions: `chmod 600`
6. '''Verify Installation:'''
- Test connectivity: `adpentest --test-connection corp.local`
- Check tools: `adpentest --list-tools`
- View config: `adpentest --show-config`
7. '''Test Dry-Run:'''
- Run: `adpentest --target corp.local`
- Review output (no actual scans should occur)
Success Criteria:
- ADPenTest installed and executable
- All tools verified available
- Configuration file created and edited
- Database initialized
- Dry-run completes without errors
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub - Installation Guide]
* [https://pypi.org/project/adpentest/ ADPenTest on PyPI]
* [https://docs.python.org/3/tutorial/venv.html Python Virtual Environment Documentation]
---
[[Category:Active Directory Security and Penetration Testing]]
[[Category:ADPenTest Framework]]
[[Category:Installation and Setup]]
{{BookCat}}
gj12xnmxjq2pqrybmi7ozpcqv67mluj
4672132
4672119
2026-09-24T12:20:29Z
MathXplore
3097823
removed [[Category:Active Directory Security and Penetration Testing]] using [[Help:Gadget-HotCat|HotCat]]
4672132
wikitext
text/x-wiki
== Chapter 5: Installation and Configuration ==
=== Learning Objectives ===
By the end of this chapter, you will be able to:
* Install ADPenTest from PyPI
* Understand system requirements and dependencies
* Configure ADPenTest for your environment
* Set up the scan history database
* Configure authentication credentials
* Understand configuration file structure
* Troubleshoot common installation issues
* Verify installation correctness
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 4 - Introduction to ADPenTest|Chapter 4: Introduction to ADPenTest]]
* Linux or Windows system with Python 3.8+
* Basic familiarity with Python and pip
* Administrator/sudo access to install packages
* Network access to target AD domain
---
=== System Requirements ===
==== Minimum Requirements ====
{| class="wikitable"
|-
! Component !! Requirement
|-
| Python || 3.8 or higher
|-
| Operating System || Linux (preferred) or Windows
|-
| RAM || 4GB minimum (8GB+ recommended)
|-
| Disk Space || 2GB for ADPenTest and dependencies
|-
| Network || Access to target domain
|-
| Privileges || User with sudo/admin access
|}
==== Recommended Setup ====
* '''OS:''' Linux (Ubuntu 20.04 LTS or Kali Linux)
* '''Python:''' 3.10 or higher
* '''RAM:''' 8GB+
* '''Disk:''' 500GB+ for scan databases
* '''Network:''' Dedicated interface for lab/testing network
{{Note|Windows runs ADPenTest fine, but Linux provides better tool integration and performance for penetration testing.}}
---
=== Installing Python ===
==== Linux (Ubuntu/Debian) ====
Check Python version:
<syntaxhighlight lang="bash">
python3 --version
</syntaxhighlight>
Install Python 3.10+:
<syntaxhighlight lang="bash">
sudo apt-get update
sudo apt-get install python3.10 python3-pip python3-venv
</syntaxhighlight>
Verify installation:
<syntaxhighlight lang="bash">
python3.10 --version
pip3 --version
</syntaxhighlight>
==== Windows ====
'''Option 1: Microsoft Store (Easiest)'''
<syntaxhighlight lang="powershell">
# Install from Microsoft Store
# Search for "Python 3.10" or higher
# Click Install
</syntaxhighlight>
'''Option 2: Python.org'''
1. Go to https://www.python.org/downloads/
2. Download Python 3.10+ installer
3. Run installer
4. {{Important|Check "Add Python to PATH"}}
5. Complete installation
Verify:
<syntaxhighlight lang="bash">
python --version
pip --version
</syntaxhighlight>
'''Option 3: Chocolatey (Windows)'''
<syntaxhighlight lang="powershell">
choco install python
</syntaxhighlight>
---
=== Installing ADPenTest ===
==== Simple Installation ====
The easiest way to install ADPenTest:
<syntaxhighlight lang="bash">
pip install adpentest
</syntaxhighlight>
Verify installation:
<syntaxhighlight lang="bash">
adpentest --version
adpentest --help
</syntaxhighlight>
Expected output:
<syntaxhighlight lang="text">
ADPenTest v1.2.0
Usage: adpentest [OPTIONS] [COMMAND]
...
</syntaxhighlight>
{{Note|pip automatically installs all required dependencies (nmap, crackmapexec, impacket, etc.).}}
==== Installing Specific Version ====
Install a specific ADPenTest version:
<syntaxhighlight lang="bash">
pip install adpentest==1.2.0
</syntaxhighlight>
List available versions:
<syntaxhighlight lang="bash">
pip index versions adpentest
</syntaxhighlight>
==== Upgrade Existing Installation ====
Update to the latest version:
<syntaxhighlight lang="bash">
pip install --upgrade adpentest
</syntaxhighlight>
---
=== Installing from Source ===
For development or custom builds:
<syntaxhighlight lang="bash">
# Clone repository
git clone https://github.com/netanelcyber/AdPentestAI-Python.git
cd AdPentestAI-Python
# Install in development mode
pip install -e .
# Or install with dependencies
pip install -r requirements.txt
python setup.py install
</syntaxhighlight>
{{Note|Source installation gives you access to latest features but may be less stable than PyPI release.}}
---
=== Required Dependencies ===
ADPenTest automatically installs these tools:
==== Network Scanning ====
* '''nmap''' - Port scanning and OS fingerprinting
* '''masscan''' - High-speed port scanning
* '''dnspython''' - DNS queries and enumeration
==== SMB & LDAP ====
* '''crackmapexec''' - SMB/LDAP enumeration and exploitation
* '''impacket''' - Protocol implementation and exploitation
* '''ldap3''' - LDAP protocol implementation
* '''pysmbclient''' - SMB client implementation
==== Kerberos ====
* '''pycryptodome''' - Cryptographic implementations
* '''pyspnego''' - Kerberos and NTLM authentication
==== Exploitation ====
* '''certipy-ad''' - ADCS exploitation
* '''bloodhound.py''' - Attack path mapping
* '''pypykatz''' - Credential extraction
==== Database & Storage ====
* '''sqlalchemy''' - Database abstraction
* '''sqlite3''' - Result storage
{{Note|Some tools (like nmap) may require separate installation on certain systems. See troubleshooting section if tools aren't found.}}
---
=== System-Level Dependencies ===
==== Linux ====
Install system packages:
<syntaxhighlight lang="bash">
sudo apt-get install -y \
nmap \
masscan \
git \
curl \
wget \
build-essential \
python3-dev
</syntaxhighlight>
==== Windows ====
Some tools work better when pre-installed:
<syntaxhighlight lang="powershell">
# Install via Chocolatey
choco install nmap
choco install git
choco install curl
</syntaxhighlight>
Or install manually from:
* nmap: https://nmap.org/download.html
* Git: https://git-scm.com/download/win
---
=== First-Time Setup ===
==== Create Working Directory ====
<syntaxhighlight lang="bash">
mkdir -p ~/adpentest-lab
cd ~/adpentest-lab
</syntaxhighlight>
==== Initialize Configuration ====
<syntaxhighlight lang="bash">
# Create default configuration
adpentest --init
</syntaxhighlight>
This creates:
<syntaxhighlight lang="text">
~/.adpentest/
├─ config.yaml # Main configuration
├─ credentials.yaml # Stored credentials
├─ scan_history.db # SQLite database
└─ logs/
└─ adpentest.log # Log file
</syntaxhighlight>
==== Test Installation ====
<syntaxhighlight lang="bash">
# Check version
adpentest --version
# Display help
adpentest --help
# Test connectivity
adpentest --test-connection corp.local
</syntaxhighlight>
---
=== Configuration Files ===
==== Main Configuration (config.yaml) ====
Located at: `~/.adpentest/config.yaml`
'''Default configuration:'''
<syntaxhighlight lang="yaml">
# ADPenTest Configuration
# General settings
general:
timeout: 300
retries: 3
log_level: INFO
# Network settings
network:
max_threads: 16
dns_servers:
- 8.8.8.8
- 8.8.4.4
rate_limit: 0 # 0 = unlimited
# Tool settings
tools:
nmap:
enabled: true
aggressive: false
masscan:
enabled: true
rate: 1000
crackmapexec:
enabled: true
timeout: 60
kerberoast:
enabled: true
certipy:
enabled: true
# Database settings
database:
type: sqlite
path: ~/.adpentest/scan_history.db
# Scan settings
scan:
phases:
- reconnaissance
- enumeration
- vulnerability_assessment
- exploitation
preserve_evidence: true
safe_mode: true
</syntaxhighlight>
===== Key Configuration Options =====
* '''timeout''' - Seconds before operation times out
* '''retries''' - Number of retries on failure
* '''max_threads''' - Maximum parallel workers
* '''rate_limit''' - Requests per second (0 = unlimited)
* '''safe_mode''' - Default to dry-run (no actual exploitation)
* '''preserve_evidence''' - Keep scan data for auditing
==== Credentials Configuration (credentials.yaml) ====
Located at: `~/.adpentest/credentials.yaml`
'''Format:'''
<syntaxhighlight lang="yaml">
# AD Credentials
credentials:
- domain: corp.local
username: administrator
password: "SecurePassword123!"
ntlm_hash: null
ticket_path: null
- domain: corp.local
username: serviceaccount
password: "ServicePass456!"
ntlm_hash: null
ticket_path: null
</syntaxhighlight>
{{Warning|credentials.yaml contains sensitive data. Protect it with appropriate file permissions (chmod 600).}}
===== Permission Settings =====
<syntaxhighlight lang="bash">
# Restrict credentials file to owner only
chmod 600 ~/.adpentest/credentials.yaml
# Verify permissions
ls -la ~/.adpentest/credentials.yaml
</syntaxhighlight>
---
=== Environment Variables ===
Configure ADPenTest via environment variables:
<syntaxhighlight lang="bash">
# Set target domain
export ADPENTEST_TARGET=corp.local
# Set DNS servers
export ADPENTEST_DNS=192.168.1.10,8.8.8.8
# Set logging level
export ADPENTEST_LOG_LEVEL=DEBUG
# Set maximum workers
export ADPENTEST_MAX_WORKERS=8
# Run with environment variables
adpentest
</syntaxhighlight>
===== Common Environment Variables =====
{| class="wikitable"
|-
! Variable !! Purpose !! Example
|-
| ADPENTEST_TARGET || Target domain || corp.local
|-
| ADPENTEST_DNS || DNS servers || 192.168.1.10,8.8.8.8
|-
| ADPENTEST_LOG_LEVEL || Logging level || DEBUG, INFO, WARNING, ERROR
|-
| ADPENTEST_MAX_WORKERS || Parallel threads || 16
|-
| ADPENTEST_TIMEOUT || Operation timeout || 300
|-
| ADPENTEST_RATE_LIMIT || Rate limit || 100
|}
---
=== Database Setup ===
ADPenTest stores results in SQLite database.
==== Automatic Setup ====
Database is created automatically on first run:
<syntaxhighlight lang="bash">
adpentest --target corp.local
# Creates: ~/.adpentest/scan_history.db
</syntaxhighlight>
==== Manual Database Initialization ====
Create database manually:
<syntaxhighlight lang="bash">
adpentest --init-db
</syntaxhighlight>
==== Database Schema ====
<syntaxhighlight lang="text">
scan_history.db
├─ scans (scan metadata)
│ ├─ scan_id
│ ├─ target_domain
│ ├─ start_time
│ ├─ end_time
│ └─ status
├─ discoveries (enumeration results)
│ ├─ discovery_id
│ ├─ scan_id
│ ├─ object_type (user, group, computer)
│ ├─ object_name
│ └─ attributes
├─ vulnerabilities (found vulnerabilities)
│ ├─ vuln_id
│ ├─ scan_id
│ ├─ cvss_score
│ ├─ description
│ └─ remediation
└─ evidence (exploitation proof)
├─ evidence_id
├─ scan_id
├─ attack_chain
└─ impact_assessment
</syntaxhighlight>
==== Backup Database ====
Regular backups protect your scan history:
<syntaxhighlight lang="bash">
# Create backup
cp ~/.adpentest/scan_history.db ~/.adpentest/scan_history.db.backup.$(date +%Y%m%d)
# Automated daily backup
0 2 * * * cp ~/.adpentest/scan_history.db ~/.adpentest/backups/scan_history.db.$(date +\%Y\%m\%d)
</syntaxhighlight>
{{Note|SQLite databases are portable. You can copy scan_history.db to another machine to analyze results.}}
---
=== Proxy Configuration ===
Configure ADPenTest to work through proxies.
==== HTTP/HTTPS Proxy ====
<syntaxhighlight lang="yaml">
# In config.yaml
network:
proxy:
http: http://proxy.corp.local:8080
https: https://proxy.corp.local:8080
no_proxy:
- localhost
- 127.0.0.1
- 192.168.1.0/24
</syntaxhighlight>
==== SOCKS Proxy ====
<syntaxhighlight lang="yaml">
# In config.yaml
network:
proxy:
socks5: socks5://proxy.corp.local:1080
socks5_user: username
socks5_pass: password
</syntaxhighlight>
==== Environment Variables ====
<syntaxhighlight lang="bash">
export HTTP_PROXY=http://proxy.corp.local:8080
export HTTPS_PROXY=https://proxy.corp.local:8080
export NO_PROXY=localhost,127.0.0.1
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
---
=== Logging Configuration ===
==== Log Levels ====
Configure verbosity of logging:
{| class="wikitable"
|-
! Level !! Verbosity !! Use Case
|-
| DEBUG || Very verbose || Troubleshooting issues
|-
| INFO || Normal || Regular scanning
|-
| WARNING || Minimal || Production use
|-
| ERROR || Only errors || Quiet mode
|}
==== Configure Logging ====
<syntaxhighlight lang="yaml">
# In config.yaml
logging:
level: INFO
format: "[%(asctime)s] %(levelname)s: %(message)s"
file: ~/.adpentest/logs/adpentest.log
file_size: 10485760 # 10MB
backup_count: 5
console: true
</syntaxhighlight>
==== View Logs ====
<syntaxhighlight lang="bash">
# Real-time log viewing
tail -f ~/.adpentest/logs/adpentest.log
# Search logs for errors
grep ERROR ~/.adpentest/logs/adpentest.log
# View last 100 lines
tail -100 ~/.adpentest/logs/adpentest.log
</syntaxhighlight>
---
=== Virtual Environment Setup ===
Best practice: Use Python virtual environment.
==== Create Virtual Environment ====
<syntaxhighlight lang="bash">
# Create virtual environment
python3 -m venv adpentest-env
# Activate (Linux/Mac)
source adpentest-env/bin/activate
# Activate (Windows)
adpentest-env\Scripts\activate
</syntaxhighlight>
==== Install in Virtual Environment ====
<syntaxhighlight lang="bash">
# Ensure activated
which python # Should show path to venv
# Install ADPenTest
pip install adpentest
# Verify
adpentest --version
</syntaxhighlight>
==== Deactivate Virtual Environment ====
<syntaxhighlight lang="bash">
deactivate
</syntaxhighlight>
{{Note|Virtual environments isolate Python packages, preventing conflicts with system packages. Recommended for production use.}}
---
=== Verifying Installation ===
==== Comprehensive Verification ====
<syntaxhighlight lang="bash">
# Check version and help
adpentest --version
adpentest --help
# Test connectivity to domain
adpentest --test-connection corp.local
# List available tools
adpentest --list-tools
# Check configuration
adpentest --show-config
# Verify database
adpentest --check-database
# Test authentication (if configured)
adpentest --test-auth
</syntaxhighlight>
==== Expected Output ====
<syntaxhighlight lang="text">
ADPenTest v1.2.0
Configuration:
- Config file: ~/.adpentest/config.yaml
- Database: ~/.adpentest/scan_history.db
- Log file: ~/.adpentest/logs/adpentest.log
Available Tools:
✓ nmap (v7.91)
✓ masscan (v1.0.5)
✓ crackmapexec (v5.4.1)
✓ impacket (v0.9.24)
✓ kerberoast (latest)
✓ certipy (v4.0.0)
Database Status: OK
Configuration: Valid
Connectivity: Ready
</syntaxhighlight>
==== Troubleshooting Installation ====
If verification fails, check:
1. '''Python version:''' `python3 --version` (should be 3.8+)
2. '''pip version:''' `pip --version` (should be recent)
3. '''ADPenTest installed:''' `pip show adpentest`
4. '''Tools available:''' `which nmap`, `which masscan`
5. '''Permissions:''' Ensure user can write to ~/.adpentest
6. '''Network:''' Test connectivity to domain
---
=== Troubleshooting Installation ===
{| class="wikitable"
|-
! Problem !! Cause !! Solution
|-
| "command not found: adpentest" || Not in PATH || Reinstall: `pip install --force-reinstall adpentest`
|-
| "ModuleNotFoundError" || Missing dependency || `pip install adpentest[full]`
|-
| "Permission denied" error || File permissions || `chmod +x ~/.local/bin/adpentest`
|-
| "nmap not found" || nmap not installed || `apt-get install nmap` (Linux)
|-
| Database errors || Corrupted DB || Delete and recreate: `rm ~/.adpentest/scan_history.db && adpentest --init-db`
|-
| Slow installation || Network/mirror issue || Use specific PyPI: `pip install -i https://pypi.org/simple/ adpentest`
|}
---
=== Post-Installation Steps ===
==== 1. Configure Credentials ====
Edit ~/.adpentest/credentials.yaml:
<syntaxhighlight lang="bash">
nano ~/.adpentest/credentials.yaml
</syntaxhighlight>
Add domain credentials:
<syntaxhighlight lang="yaml">
credentials:
- domain: corp.local
username: administrator
password: "YourPassword123!"
</syntaxhighlight>
{{Important|Protect credentials file: `chmod 600 ~/.adpentest/credentials.yaml`}}
==== 2. Test Connectivity ====
<syntaxhighlight lang="bash">
adpentest --target corp.local --test-connection
</syntaxhighlight>
==== 3. Take a Trial Scan ====
<syntaxhighlight lang="bash">
# Dry-run (no actual scans)
adpentest --target corp.local
# Review output and verify no issues
</syntaxhighlight>
==== 4. Review Configuration ====
<syntaxhighlight lang="bash">
adpentest --show-config
</syntaxhighlight>
Ensure settings match your requirements.
---
=== Knowledge Check ===
Test your installation knowledge:
# What are the minimum Python and OS requirements for ADPenTest?
# How do you install ADPenTest from PyPI?
# What does the ~/.adpentest directory contain?
# Where are credentials stored and how should they be protected?
# Name three tools that ADPenTest automatically installs.
# How do you create a Python virtual environment?
# What is the purpose of the scan_history.db file?
# How can you verify ADPenTest installation?
# What log levels are available for ADPenTest?
# True or False: You should store credentials in plaintext in config files.
{{Note|Answers: 1) Python 3.8+, Linux or Windows 2) `pip install adpentest` 3) Configuration files, database, credentials, logs 4) credentials.yaml; protected with chmod 600 5) nmap, crackmapexec, impacket, kerberoast, certipy 6) `python3 -m venv env-name` 7) Persistent storage of all scan results 8) `adpentest --version`, `adpentest --test-connection`, `adpentest --check-database` 9) DEBUG, INFO, WARNING, ERROR 10) False - use strong passwords and file permissions}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Install and Configure ADPenTest'''
1. '''Install Python:'''
- Verify Python 3.8+ installed
- Verify pip working
2. '''Create Virtual Environment:'''
- Create: `python3 -m venv adpentest-env`
- Activate: `source adpentest-env/bin/activate`
3. '''Install ADPenTest:'''
- Run: `pip install adpentest`
- Verify: `adpentest --version`
4. '''Initialize Configuration:'''
- Run: `adpentest --init`
- Review created files
5. '''Configure Credentials:'''
- Edit: `~/.adpentest/credentials.yaml`
- Add your lab domain credentials
- Set permissions: `chmod 600`
6. '''Verify Installation:'''
- Test connectivity: `adpentest --test-connection corp.local`
- Check tools: `adpentest --list-tools`
- View config: `adpentest --show-config`
7. '''Test Dry-Run:'''
- Run: `adpentest --target corp.local`
- Review output (no actual scans should occur)
Success Criteria:
- ADPenTest installed and executable
- All tools verified available
- Configuration file created and edited
- Database initialized
- Dry-run completes without errors
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub - Installation Guide]
* [https://pypi.org/project/adpentest/ ADPenTest on PyPI]
* [https://docs.python.org/3/tutorial/venv.html Python Virtual Environment Documentation]
---
[[Category:ADPenTest Framework]]
[[Category:Installation and Setup]]
{{BookCat}}
2ll81221u8i1dk2qyt3gkooeql9itu7
4672155
4672132
2026-09-24T15:27:00Z
Kittycataclysm
3371989
flag
4672155
wikitext
text/x-wiki
{{AI-suspected|reason=mass content addition, typographical quirks, unformatted lists, inconsistent formatting, broken refs, non-WB categories}}
== Chapter 5: Installation and Configuration ==
=== Learning Objectives ===
By the end of this chapter, you will be able to:
* Install ADPenTest from PyPI
* Understand system requirements and dependencies
* Configure ADPenTest for your environment
* Set up the scan history database
* Configure authentication credentials
* Understand configuration file structure
* Troubleshoot common installation issues
* Verify installation correctness
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 4 - Introduction to ADPenTest|Chapter 4: Introduction to ADPenTest]]
* Linux or Windows system with Python 3.8+
* Basic familiarity with Python and pip
* Administrator/sudo access to install packages
* Network access to target AD domain
---
=== System Requirements ===
==== Minimum Requirements ====
{| class="wikitable"
|-
! Component !! Requirement
|-
| Python || 3.8 or higher
|-
| Operating System || Linux (preferred) or Windows
|-
| RAM || 4GB minimum (8GB+ recommended)
|-
| Disk Space || 2GB for ADPenTest and dependencies
|-
| Network || Access to target domain
|-
| Privileges || User with sudo/admin access
|}
==== Recommended Setup ====
* '''OS:''' Linux (Ubuntu 20.04 LTS or Kali Linux)
* '''Python:''' 3.10 or higher
* '''RAM:''' 8GB+
* '''Disk:''' 500GB+ for scan databases
* '''Network:''' Dedicated interface for lab/testing network
{{Note|Windows runs ADPenTest fine, but Linux provides better tool integration and performance for penetration testing.}}
---
=== Installing Python ===
==== Linux (Ubuntu/Debian) ====
Check Python version:
<syntaxhighlight lang="bash">
python3 --version
</syntaxhighlight>
Install Python 3.10+:
<syntaxhighlight lang="bash">
sudo apt-get update
sudo apt-get install python3.10 python3-pip python3-venv
</syntaxhighlight>
Verify installation:
<syntaxhighlight lang="bash">
python3.10 --version
pip3 --version
</syntaxhighlight>
==== Windows ====
'''Option 1: Microsoft Store (Easiest)'''
<syntaxhighlight lang="powershell">
# Install from Microsoft Store
# Search for "Python 3.10" or higher
# Click Install
</syntaxhighlight>
'''Option 2: Python.org'''
1. Go to https://www.python.org/downloads/
2. Download Python 3.10+ installer
3. Run installer
4. {{Important|Check "Add Python to PATH"}}
5. Complete installation
Verify:
<syntaxhighlight lang="bash">
python --version
pip --version
</syntaxhighlight>
'''Option 3: Chocolatey (Windows)'''
<syntaxhighlight lang="powershell">
choco install python
</syntaxhighlight>
---
=== Installing ADPenTest ===
==== Simple Installation ====
The easiest way to install ADPenTest:
<syntaxhighlight lang="bash">
pip install adpentest
</syntaxhighlight>
Verify installation:
<syntaxhighlight lang="bash">
adpentest --version
adpentest --help
</syntaxhighlight>
Expected output:
<syntaxhighlight lang="text">
ADPenTest v1.2.0
Usage: adpentest [OPTIONS] [COMMAND]
...
</syntaxhighlight>
{{Note|pip automatically installs all required dependencies (nmap, crackmapexec, impacket, etc.).}}
==== Installing Specific Version ====
Install a specific ADPenTest version:
<syntaxhighlight lang="bash">
pip install adpentest==1.2.0
</syntaxhighlight>
List available versions:
<syntaxhighlight lang="bash">
pip index versions adpentest
</syntaxhighlight>
==== Upgrade Existing Installation ====
Update to the latest version:
<syntaxhighlight lang="bash">
pip install --upgrade adpentest
</syntaxhighlight>
---
=== Installing from Source ===
For development or custom builds:
<syntaxhighlight lang="bash">
# Clone repository
git clone https://github.com/netanelcyber/AdPentestAI-Python.git
cd AdPentestAI-Python
# Install in development mode
pip install -e .
# Or install with dependencies
pip install -r requirements.txt
python setup.py install
</syntaxhighlight>
{{Note|Source installation gives you access to latest features but may be less stable than PyPI release.}}
---
=== Required Dependencies ===
ADPenTest automatically installs these tools:
==== Network Scanning ====
* '''nmap''' - Port scanning and OS fingerprinting
* '''masscan''' - High-speed port scanning
* '''dnspython''' - DNS queries and enumeration
==== SMB & LDAP ====
* '''crackmapexec''' - SMB/LDAP enumeration and exploitation
* '''impacket''' - Protocol implementation and exploitation
* '''ldap3''' - LDAP protocol implementation
* '''pysmbclient''' - SMB client implementation
==== Kerberos ====
* '''pycryptodome''' - Cryptographic implementations
* '''pyspnego''' - Kerberos and NTLM authentication
==== Exploitation ====
* '''certipy-ad''' - ADCS exploitation
* '''bloodhound.py''' - Attack path mapping
* '''pypykatz''' - Credential extraction
==== Database & Storage ====
* '''sqlalchemy''' - Database abstraction
* '''sqlite3''' - Result storage
{{Note|Some tools (like nmap) may require separate installation on certain systems. See troubleshooting section if tools aren't found.}}
---
=== System-Level Dependencies ===
==== Linux ====
Install system packages:
<syntaxhighlight lang="bash">
sudo apt-get install -y \
nmap \
masscan \
git \
curl \
wget \
build-essential \
python3-dev
</syntaxhighlight>
==== Windows ====
Some tools work better when pre-installed:
<syntaxhighlight lang="powershell">
# Install via Chocolatey
choco install nmap
choco install git
choco install curl
</syntaxhighlight>
Or install manually from:
* nmap: https://nmap.org/download.html
* Git: https://git-scm.com/download/win
---
=== First-Time Setup ===
==== Create Working Directory ====
<syntaxhighlight lang="bash">
mkdir -p ~/adpentest-lab
cd ~/adpentest-lab
</syntaxhighlight>
==== Initialize Configuration ====
<syntaxhighlight lang="bash">
# Create default configuration
adpentest --init
</syntaxhighlight>
This creates:
<syntaxhighlight lang="text">
~/.adpentest/
├─ config.yaml # Main configuration
├─ credentials.yaml # Stored credentials
├─ scan_history.db # SQLite database
└─ logs/
└─ adpentest.log # Log file
</syntaxhighlight>
==== Test Installation ====
<syntaxhighlight lang="bash">
# Check version
adpentest --version
# Display help
adpentest --help
# Test connectivity
adpentest --test-connection corp.local
</syntaxhighlight>
---
=== Configuration Files ===
==== Main Configuration (config.yaml) ====
Located at: `~/.adpentest/config.yaml`
'''Default configuration:'''
<syntaxhighlight lang="yaml">
# ADPenTest Configuration
# General settings
general:
timeout: 300
retries: 3
log_level: INFO
# Network settings
network:
max_threads: 16
dns_servers:
- 8.8.8.8
- 8.8.4.4
rate_limit: 0 # 0 = unlimited
# Tool settings
tools:
nmap:
enabled: true
aggressive: false
masscan:
enabled: true
rate: 1000
crackmapexec:
enabled: true
timeout: 60
kerberoast:
enabled: true
certipy:
enabled: true
# Database settings
database:
type: sqlite
path: ~/.adpentest/scan_history.db
# Scan settings
scan:
phases:
- reconnaissance
- enumeration
- vulnerability_assessment
- exploitation
preserve_evidence: true
safe_mode: true
</syntaxhighlight>
===== Key Configuration Options =====
* '''timeout''' - Seconds before operation times out
* '''retries''' - Number of retries on failure
* '''max_threads''' - Maximum parallel workers
* '''rate_limit''' - Requests per second (0 = unlimited)
* '''safe_mode''' - Default to dry-run (no actual exploitation)
* '''preserve_evidence''' - Keep scan data for auditing
==== Credentials Configuration (credentials.yaml) ====
Located at: `~/.adpentest/credentials.yaml`
'''Format:'''
<syntaxhighlight lang="yaml">
# AD Credentials
credentials:
- domain: corp.local
username: administrator
password: "SecurePassword123!"
ntlm_hash: null
ticket_path: null
- domain: corp.local
username: serviceaccount
password: "ServicePass456!"
ntlm_hash: null
ticket_path: null
</syntaxhighlight>
{{Warning|credentials.yaml contains sensitive data. Protect it with appropriate file permissions (chmod 600).}}
===== Permission Settings =====
<syntaxhighlight lang="bash">
# Restrict credentials file to owner only
chmod 600 ~/.adpentest/credentials.yaml
# Verify permissions
ls -la ~/.adpentest/credentials.yaml
</syntaxhighlight>
---
=== Environment Variables ===
Configure ADPenTest via environment variables:
<syntaxhighlight lang="bash">
# Set target domain
export ADPENTEST_TARGET=corp.local
# Set DNS servers
export ADPENTEST_DNS=192.168.1.10,8.8.8.8
# Set logging level
export ADPENTEST_LOG_LEVEL=DEBUG
# Set maximum workers
export ADPENTEST_MAX_WORKERS=8
# Run with environment variables
adpentest
</syntaxhighlight>
===== Common Environment Variables =====
{| class="wikitable"
|-
! Variable !! Purpose !! Example
|-
| ADPENTEST_TARGET || Target domain || corp.local
|-
| ADPENTEST_DNS || DNS servers || 192.168.1.10,8.8.8.8
|-
| ADPENTEST_LOG_LEVEL || Logging level || DEBUG, INFO, WARNING, ERROR
|-
| ADPENTEST_MAX_WORKERS || Parallel threads || 16
|-
| ADPENTEST_TIMEOUT || Operation timeout || 300
|-
| ADPENTEST_RATE_LIMIT || Rate limit || 100
|}
---
=== Database Setup ===
ADPenTest stores results in SQLite database.
==== Automatic Setup ====
Database is created automatically on first run:
<syntaxhighlight lang="bash">
adpentest --target corp.local
# Creates: ~/.adpentest/scan_history.db
</syntaxhighlight>
==== Manual Database Initialization ====
Create database manually:
<syntaxhighlight lang="bash">
adpentest --init-db
</syntaxhighlight>
==== Database Schema ====
<syntaxhighlight lang="text">
scan_history.db
├─ scans (scan metadata)
│ ├─ scan_id
│ ├─ target_domain
│ ├─ start_time
│ ├─ end_time
│ └─ status
├─ discoveries (enumeration results)
│ ├─ discovery_id
│ ├─ scan_id
│ ├─ object_type (user, group, computer)
│ ├─ object_name
│ └─ attributes
├─ vulnerabilities (found vulnerabilities)
│ ├─ vuln_id
│ ├─ scan_id
│ ├─ cvss_score
│ ├─ description
│ └─ remediation
└─ evidence (exploitation proof)
├─ evidence_id
├─ scan_id
├─ attack_chain
└─ impact_assessment
</syntaxhighlight>
==== Backup Database ====
Regular backups protect your scan history:
<syntaxhighlight lang="bash">
# Create backup
cp ~/.adpentest/scan_history.db ~/.adpentest/scan_history.db.backup.$(date +%Y%m%d)
# Automated daily backup
0 2 * * * cp ~/.adpentest/scan_history.db ~/.adpentest/backups/scan_history.db.$(date +\%Y\%m\%d)
</syntaxhighlight>
{{Note|SQLite databases are portable. You can copy scan_history.db to another machine to analyze results.}}
---
=== Proxy Configuration ===
Configure ADPenTest to work through proxies.
==== HTTP/HTTPS Proxy ====
<syntaxhighlight lang="yaml">
# In config.yaml
network:
proxy:
http: http://proxy.corp.local:8080
https: https://proxy.corp.local:8080
no_proxy:
- localhost
- 127.0.0.1
- 192.168.1.0/24
</syntaxhighlight>
==== SOCKS Proxy ====
<syntaxhighlight lang="yaml">
# In config.yaml
network:
proxy:
socks5: socks5://proxy.corp.local:1080
socks5_user: username
socks5_pass: password
</syntaxhighlight>
==== Environment Variables ====
<syntaxhighlight lang="bash">
export HTTP_PROXY=http://proxy.corp.local:8080
export HTTPS_PROXY=https://proxy.corp.local:8080
export NO_PROXY=localhost,127.0.0.1
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
---
=== Logging Configuration ===
==== Log Levels ====
Configure verbosity of logging:
{| class="wikitable"
|-
! Level !! Verbosity !! Use Case
|-
| DEBUG || Very verbose || Troubleshooting issues
|-
| INFO || Normal || Regular scanning
|-
| WARNING || Minimal || Production use
|-
| ERROR || Only errors || Quiet mode
|}
==== Configure Logging ====
<syntaxhighlight lang="yaml">
# In config.yaml
logging:
level: INFO
format: "[%(asctime)s] %(levelname)s: %(message)s"
file: ~/.adpentest/logs/adpentest.log
file_size: 10485760 # 10MB
backup_count: 5
console: true
</syntaxhighlight>
==== View Logs ====
<syntaxhighlight lang="bash">
# Real-time log viewing
tail -f ~/.adpentest/logs/adpentest.log
# Search logs for errors
grep ERROR ~/.adpentest/logs/adpentest.log
# View last 100 lines
tail -100 ~/.adpentest/logs/adpentest.log
</syntaxhighlight>
---
=== Virtual Environment Setup ===
Best practice: Use Python virtual environment.
==== Create Virtual Environment ====
<syntaxhighlight lang="bash">
# Create virtual environment
python3 -m venv adpentest-env
# Activate (Linux/Mac)
source adpentest-env/bin/activate
# Activate (Windows)
adpentest-env\Scripts\activate
</syntaxhighlight>
==== Install in Virtual Environment ====
<syntaxhighlight lang="bash">
# Ensure activated
which python # Should show path to venv
# Install ADPenTest
pip install adpentest
# Verify
adpentest --version
</syntaxhighlight>
==== Deactivate Virtual Environment ====
<syntaxhighlight lang="bash">
deactivate
</syntaxhighlight>
{{Note|Virtual environments isolate Python packages, preventing conflicts with system packages. Recommended for production use.}}
---
=== Verifying Installation ===
==== Comprehensive Verification ====
<syntaxhighlight lang="bash">
# Check version and help
adpentest --version
adpentest --help
# Test connectivity to domain
adpentest --test-connection corp.local
# List available tools
adpentest --list-tools
# Check configuration
adpentest --show-config
# Verify database
adpentest --check-database
# Test authentication (if configured)
adpentest --test-auth
</syntaxhighlight>
==== Expected Output ====
<syntaxhighlight lang="text">
ADPenTest v1.2.0
Configuration:
- Config file: ~/.adpentest/config.yaml
- Database: ~/.adpentest/scan_history.db
- Log file: ~/.adpentest/logs/adpentest.log
Available Tools:
✓ nmap (v7.91)
✓ masscan (v1.0.5)
✓ crackmapexec (v5.4.1)
✓ impacket (v0.9.24)
✓ kerberoast (latest)
✓ certipy (v4.0.0)
Database Status: OK
Configuration: Valid
Connectivity: Ready
</syntaxhighlight>
==== Troubleshooting Installation ====
If verification fails, check:
1. '''Python version:''' `python3 --version` (should be 3.8+)
2. '''pip version:''' `pip --version` (should be recent)
3. '''ADPenTest installed:''' `pip show adpentest`
4. '''Tools available:''' `which nmap`, `which masscan`
5. '''Permissions:''' Ensure user can write to ~/.adpentest
6. '''Network:''' Test connectivity to domain
---
=== Troubleshooting Installation ===
{| class="wikitable"
|-
! Problem !! Cause !! Solution
|-
| "command not found: adpentest" || Not in PATH || Reinstall: `pip install --force-reinstall adpentest`
|-
| "ModuleNotFoundError" || Missing dependency || `pip install adpentest[full]`
|-
| "Permission denied" error || File permissions || `chmod +x ~/.local/bin/adpentest`
|-
| "nmap not found" || nmap not installed || `apt-get install nmap` (Linux)
|-
| Database errors || Corrupted DB || Delete and recreate: `rm ~/.adpentest/scan_history.db && adpentest --init-db`
|-
| Slow installation || Network/mirror issue || Use specific PyPI: `pip install -i https://pypi.org/simple/ adpentest`
|}
---
=== Post-Installation Steps ===
==== 1. Configure Credentials ====
Edit ~/.adpentest/credentials.yaml:
<syntaxhighlight lang="bash">
nano ~/.adpentest/credentials.yaml
</syntaxhighlight>
Add domain credentials:
<syntaxhighlight lang="yaml">
credentials:
- domain: corp.local
username: administrator
password: "YourPassword123!"
</syntaxhighlight>
{{Important|Protect credentials file: `chmod 600 ~/.adpentest/credentials.yaml`}}
==== 2. Test Connectivity ====
<syntaxhighlight lang="bash">
adpentest --target corp.local --test-connection
</syntaxhighlight>
==== 3. Take a Trial Scan ====
<syntaxhighlight lang="bash">
# Dry-run (no actual scans)
adpentest --target corp.local
# Review output and verify no issues
</syntaxhighlight>
==== 4. Review Configuration ====
<syntaxhighlight lang="bash">
adpentest --show-config
</syntaxhighlight>
Ensure settings match your requirements.
---
=== Knowledge Check ===
Test your installation knowledge:
# What are the minimum Python and OS requirements for ADPenTest?
# How do you install ADPenTest from PyPI?
# What does the ~/.adpentest directory contain?
# Where are credentials stored and how should they be protected?
# Name three tools that ADPenTest automatically installs.
# How do you create a Python virtual environment?
# What is the purpose of the scan_history.db file?
# How can you verify ADPenTest installation?
# What log levels are available for ADPenTest?
# True or False: You should store credentials in plaintext in config files.
{{Note|Answers: 1) Python 3.8+, Linux or Windows 2) `pip install adpentest` 3) Configuration files, database, credentials, logs 4) credentials.yaml; protected with chmod 600 5) nmap, crackmapexec, impacket, kerberoast, certipy 6) `python3 -m venv env-name` 7) Persistent storage of all scan results 8) `adpentest --version`, `adpentest --test-connection`, `adpentest --check-database` 9) DEBUG, INFO, WARNING, ERROR 10) False - use strong passwords and file permissions}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Install and Configure ADPenTest'''
1. '''Install Python:'''
- Verify Python 3.8+ installed
- Verify pip working
2. '''Create Virtual Environment:'''
- Create: `python3 -m venv adpentest-env`
- Activate: `source adpentest-env/bin/activate`
3. '''Install ADPenTest:'''
- Run: `pip install adpentest`
- Verify: `adpentest --version`
4. '''Initialize Configuration:'''
- Run: `adpentest --init`
- Review created files
5. '''Configure Credentials:'''
- Edit: `~/.adpentest/credentials.yaml`
- Add your lab domain credentials
- Set permissions: `chmod 600`
6. '''Verify Installation:'''
- Test connectivity: `adpentest --test-connection corp.local`
- Check tools: `adpentest --list-tools`
- View config: `adpentest --show-config`
7. '''Test Dry-Run:'''
- Run: `adpentest --target corp.local`
- Review output (no actual scans should occur)
Success Criteria:
- ADPenTest installed and executable
- All tools verified available
- Configuration file created and edited
- Database initialized
- Dry-run completes without errors
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub - Installation Guide]
* [https://pypi.org/project/adpentest/ ADPenTest on PyPI]
* [https://docs.python.org/3/tutorial/venv.html Python Virtual Environment Documentation]
---
[[Category:ADPenTest Framework]]
[[Category:Installation and Setup]]
{{BookCat}}
3s533t0trb3hml1h9k0f16uyzbs7b4z
Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage
0
485828
4672118
4672035
2026-09-24T12:18:07Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672118
wikitext
text/x-wiki
== Chapter 6: Basic Usage ==
=== Learning Objectives ===
By the end of this chapter, you will know how to:
* Install ADPenTest from PyPI
* Understand the command-line interface
* Run your first scan
* Interpret scan results
* Manage scan history and reports
* Use common flags and options
=== Prerequisites ===
* Linux or Windows system with Python 3.8+
* Proper authorization to test target AD domain
* Network connectivity to target domain controllers
* Familiarity with command-line interfaces
---
=== Installation ===
==== Quick Install ====
The simplest way to install ADPenTest:
<syntaxhighlight lang="bash">
pip install adpentest
</syntaxhighlight>
==== Verify Installation ====
Check that ADPenTest is properly installed:
<syntaxhighlight lang="bash">
adpentest --version
adpentest --help
</syntaxhighlight>
Expected output:
<syntaxhighlight lang="bash">
ADPenTest 1.2.0
Usage: adpentest [OPTIONS]
...
</syntaxhighlight>
==== System Requirements ====
{| class="wikitable"
|-
! Component !! Requirement
|-
| Python || 3.8 or higher
|-
| Operating System || Linux (preferred) or Windows
|-
| RAM || Minimum 4GB (8GB+ recommended for large domains)
|-
| Disk Space || 2GB+ for database and tool storage
|-
| Network || Access to target domain on ports 53 (DNS), 88 (Kerberos), 389/636 (LDAP)
|-
| Tools || nmap, crackmapexec, certipy (automatically installed as dependencies)
|}
{{Note|On Windows, it's recommended to run ADPenTest in WSL2 (Windows Subsystem for Linux) for best compatibility.}}
---
=== Command-Line Interface Overview ===
==== Basic Syntax ====
<syntaxhighlight lang="bash">
adpentest [OPTIONS] [COMMAND]
</syntaxhighlight>
==== Global Options ====
{| class="wikitable"
|-
! Option !! Description !! Example
|-
| --version || Show version information || adpentest --version
|-
| --help || Display help message || adpentest --help
|-
| --verbose || Enable verbose output || adpentest --target corp.local --verbose
|-
| --quiet || Suppress output || adpentest --target corp.local --quiet
|-
| --config FILE || Use custom config file || adpentest --config custom.conf
|}
==== Common Commands ====
{| class="wikitable"
|-
! Command !! Purpose !! Example
|-
| --target DOMAIN || Specify target domain || adpentest --target corp.local
|-
| --scope-confirmed || Authorize actual scan (required) || adpentest --target corp.local --scope-confirmed
|-
| --history || View past scans || adpentest --history
|-
| --cve-report || Generate CVE report || adpentest --cve-report
|-
| --query TERM || Search results || adpentest --query kerberoasting
|}
---
=== Your First Scan ===
==== Step 1: Preview Mode (No Authorization Required) ====
Always start by previewing what ADPenTest will do:
<syntaxhighlight lang="bash">
adpentest --target corp.local
</syntaxhighlight>
This command:
* Discovers Domain Controllers
* Shows what tools will be executed
* Displays target scope
* '''Does NOT''' perform actual scans
Expected output:
<syntaxhighlight lang="text">
ADPenTest v1.2.0 - Active Directory Penetration Testing Framework
=================================================================
Target: corp.local
Mode: DRY-RUN (Preview only)
[*] Domain Controller Discovery
└─ DC1.corp.local (192.168.1.10) - Confidence: 100%
└─ DC2.corp.local (192.168.1.11) - Confidence: 95%
[*] Scheduled Tools
- nmap port scanning
- crackmapexec enumeration
- Kerberoast service ticket extraction
- certipy ADCS scanning
- [32 additional tools]
[!] To execute this scan, use: --scope-confirmed
Total estimated time: 2 hours, 15 minutes
</syntaxhighlight>
{{Note|'''Always review the preview output before authorizing a scan.''' Ensure the target scope matches your authorization.}}
==== Step 2: Scope Review ====
Before running the actual scan, verify:
* '''Correct Domain:''' Is corp.local the right target?
* '''Expected DCs:''' Are all Domain Controllers listed?
* '''Tool Coverage:''' Will all necessary tools run?
* '''Estimated Time:''' Is 2+ hours acceptable?
* '''Network Impact:''' Will scan bandwidth be acceptable?
==== Step 3: Authorize & Execute ====
Once you've reviewed the preview, authorize the scan:
<syntaxhighlight lang="bash">
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
{{Important|The <code>--scope-confirmed</code> flag confirms you have authorization to test this domain. Use it only when you have explicit written permission.}}
The scan will now execute:
<syntaxhighlight lang="text">
[+] Authorization confirmed
[+] Starting Domain Controller Discovery...
[✓] DC1.corp.local discovered
[✓] DC2.corp.local discovered
[+] Initializing tool orchestration (16 parallel workers)
[+] Starting reconnaissance phase...
[✓] nmap port scanning
[✓] masscan high-speed scanning
[✓] DNS enumeration
[+] Starting enumeration phase...
[✓] SMB enumeration
[✓] LDAP domain dump
[✓] Kerberos reconnaissance
[+] CVE scanning phase...
[✓] Spring LDAP check
[✓] Certificate enrollment scan
[✓] Kerberos vulnerability scan
[+] Scan completed in 2:14:37
[+] Results stored: ~/.adpentest/scan_history.db
</syntaxhighlight>
---
=== Understanding Scan Results ===
==== Result Structure ====
ADPenTest organizes results hierarchically:
<syntaxhighlight lang="text">
Scan ID: 20250924-143052
├─ Reconnaissance
│ ├─ DC Discovery
│ │ └─ DC1.corp.local (192.168.1.10)
│ ├─ DNS Enumeration
│ │ └─ 47 A records found
│ └─ Port Scanning
│ └─ 312 open ports discovered
├─ Enumeration
│ ├─ SMB Shares
│ │ └─ 23 shares enumerated
│ ├─ LDAP Users
│ │ └─ 1,247 user objects
│ └─ Service Principals
│ └─ 89 SPNs found
├─ Exploitation Simulation
│ ├─ Kerberoasting Results
│ │ └─ 12 vulnerable service accounts
│ ├─ ADCS Vulnerable Templates
│ │ └─ 3 exploitable templates
│ └─ Privilege Escalation Paths
│ └─ 5 potential escalation methods
└─ CVE Findings
├─ Critical (CVSS 9.0+)
│ └─ Spring LDAP Hardcoded Credentials
├─ High (CVSS 7.0-8.9)
│ ├─ Certificate Enrollment Bypass
│ └─ Kerberos RC4 Accepted
└─ Medium (CVSS 4.0-6.9)
└─ LDAP Anonymous Bind
</syntaxhighlight>
==== Viewing Results ====
View detailed scan results:
<syntaxhighlight lang="bash">
# Show most recent scan
adpentest --show-results
# Show specific scan by ID
adpentest --show-results 20250924-143052
# Show only CVE findings
adpentest --show-cve-results
# Export results as JSON
adpentest --export-json results.json
# Export results as HTML report
adpentest --export-html report.html
</syntaxhighlight>
---
=== Advanced Usage Options ===
==== 1. Scope to Specific OUs ====
Test only specific Organizational Units:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--ou "OU=Engineering,DC=corp,DC=local" \
--scope-confirmed
</syntaxhighlight>
Test multiple OUs:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--ou "OU=Engineering,DC=corp,DC=local" \
--ou "OU=Finance,DC=corp,DC=local" \
--scope-confirmed
</syntaxhighlight>
==== 2. Scope to Specific Hosts ====
Test only specific Domain Controllers:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--hosts "dc1.corp.local,dc2.corp.local" \
--scope-confirmed
</syntaxhighlight>
==== 3. Limit Parallelization ====
For production environments, reduce parallel workers:
<syntaxhighlight lang="bash">
# Default: 16 workers, reduced to 8
adpentest --target corp.local \
--max-workers 8 \
--scope-confirmed
</syntaxhighlight>
==== 4. Rate Limiting ====
Throttle scan speed to avoid network saturation:
<syntaxhighlight lang="bash">
# Limit to 50 requests per second
adpentest --target corp.local \
--rate-limit 50 \
--scope-confirmed
</syntaxhighlight>
==== 5. Tool Selection ====
Run only specific tool categories:
<syntaxhighlight lang="bash">
# Only reconnaissance phase
adpentest --target corp.local \
--phases reconnaissance \
--scope-confirmed
# Multiple phases
adpentest --target corp.local \
--phases reconnaissance,enumeration \
--scope-confirmed
# Exclude specific tools
adpentest --target corp.local \
--exclude-tools masscan,nmap \
--scope-confirmed
</syntaxhighlight>
==== 6. Credential Authentication ====
When Domain Controller requires authentication:
<syntaxhighlight lang="bash">
# Using username/password
adpentest --target corp.local \
--username administrator \
--password "P@ssw0rd" \
--scope-confirmed
# Using NTLM hash (pass-the-hash)
adpentest --target corp.local \
--username administrator \
--hash "8846f7eaee8fb117ad06bdd830b7586c" \
--scope-confirmed
# Using Kerberos ticket
adpentest --target corp.local \
--ticket "/tmp/krb5.ccache" \
--scope-confirmed
</syntaxhighlight>
{{Note|Store credentials securely! Use environment variables or encrypted config files, never hardcode passwords in scripts.}}
---
=== Scan History & Reporting ===
==== View Scan History ====
List all past scans:
<syntaxhighlight lang="bash">
adpentest --history
</syntaxhighlight>
Output:
<syntaxhighlight lang="text">
Scan History
============
ID | Target | Date/Time | Status | Duration
20250924-143052 | corp.local | 2025-09-24 14:30:52 | Completed | 2:14:37
20250923-091245 | corp.local | 2025-09-23 09:12:45 | Completed | 2:08:19
20250922-155030 | sales.local | 2025-09-22 15:50:30 | Completed | 1:47:02
</syntaxhighlight>
==== Generate CVE Report ====
Create a summary of all discovered CVEs:
<syntaxhighlight lang="bash">
adpentest --cve-report
</syntaxhighlight>
Sample output:
<syntaxhighlight lang="text">
CVE Report - Active Directory Assessments
==========================================
Target: corp.local (Most Recent Scan)
CRITICAL FINDINGS (CVSS 9.0+)
────────────────────────────
1. Spring LDAP Hardcoded Credentials (CVSS 9.4)
Status: Confirmed
Affected: DC1.corp.local
Remediation: Update Spring LDAP library
HIGH FINDINGS (CVSS 7.0-8.9)
────────────────────────────
2. Certificate Enrollment Bypass (CVSS 8.8)
Status: Confirmed
Template: SubCA
Remediation: Restrict certificate template permissions
MEDIUM FINDINGS (CVSS 4.0-6.9)
──────────────────────────────
3. Kerberos RC4 Encryption Accepted (CVSS 7.5)
Status: Confirmed
Impact: Weak encryption support
Remediation: Disable RC4 in domain
</syntaxhighlight>
==== Export Results ====
Export scan results in various formats:
<syntaxhighlight lang="bash">
# Export as JSON (for programmatic processing)
adpentest --export-json report.json
# Export as HTML (for client presentations)
adpentest --export-html report.html
# Export as CSV (for spreadsheet analysis)
adpentest --export-csv report.csv
# Export specific scan
adpentest --scan-id 20250924-143052 --export-html report_20250924.html
</syntaxhighlight>
---
=== Query Scan Database ===
Search for specific findings across all scans:
<syntaxhighlight lang="bash">
# Search for Kerberoasting results
adpentest --query "kerberoasting"
# Search for ADCS vulnerabilities
adpentest --query "certificate"
# Search by date range
adpentest --query "after:2025-09-20 before:2025-09-25"
# Search by CVSS score
adpentest --query "cvss:>7.0"
# Complex query
adpentest --query "certificate AND corp.local AND cvss:>8.0"
</syntaxhighlight>
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Run Your First ADPenTest Scan'''
'''Objective:''' Execute a complete ADPenTest scan against your lab environment.
'''Steps:'''
1. Set up a lab domain (or use GOAD if available)
2. Review the preview: <code>adpentest --target lab.local</code>
3. Verify the scope matches your authorization
4. Execute the scan: <code>adpentest --target lab.local --scope-confirmed</code>
5. Wait for completion (typically 2-3 hours)
6. Review results: <code>adpentest --show-results</code>
7. Generate report: <code>adpentest --export-html lab_assessment.html</code>
8. Analyze findings and plan remediation
'''Expected Outcomes:'''
* At least 50+ findings across reconnaissance/enumeration
* 2-5 CVE discoveries
* Documented attack paths
* Actionable remediation recommendations
}}
---
=== Troubleshooting ===
==== Common Issues ====
{| class="wikitable"
|-
! Issue !! Cause !! Solution
|-
| "Permission Denied" error || User lacks execute permissions || <code>chmod +x ~/.local/bin/adpentest</code>
|-
| "Target domain not found" || DNS resolution failure || Verify DNS server, check domain name spelling
|-
| "No Domain Controllers discovered" || Network connectivity issue || Test connectivity: <code>nslookup _ldap._tcp.dc._msdcs.corp.local</code>
|-
| "Tool execution timeout" || Network latency || Increase timeout: <code>--timeout 300</code>
|-
| "Database locked" error || Concurrent scan attempt || Wait for previous scan to complete
|}
==== Verbose Output ====
Enable detailed logging for troubleshooting:
<syntaxhighlight lang="bash">
adpentest --target corp.local --verbose --scope-confirmed
</syntaxhighlight>
Check log file:
<syntaxhighlight lang="bash">
tail -f ~/.adpentest/adpentest.log
</syntaxhighlight>
---
=== Knowledge Check ===
Test your understanding:
# What flag is required to execute an actual scan (not preview)?
# How do you view all past scans?
# What is the default number of parallel workers?
# Name three export formats for scan results
# How would you scope a scan to only the "Engineering" OU?
{{Note|Answers: 1) <code>--scope-confirmed</code> 2) <code>adpentest --history</code> 3) 16 4) JSON, HTML, CSV 5) <code>adpentest --target corp.local --ou "OU=Engineering,DC=corp,DC=local" --scope-confirmed</code>}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 14 - Scan Results and Reporting|Chapter 14: Scan Results and Reporting]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub - Usage Examples]
---
[[Category:Active Directory Security and Penetration Testing]]
[[Category:How-to guides]]
{{BookCat}}
tassoqaenc34e3iserhneof9cr3dpr8
4672133
4672118
2026-09-24T12:20:43Z
MathXplore
3097823
removed [[Category:Active Directory Security and Penetration Testing]] using [[Help:Gadget-HotCat|HotCat]]
4672133
wikitext
text/x-wiki
== Chapter 6: Basic Usage ==
=== Learning Objectives ===
By the end of this chapter, you will know how to:
* Install ADPenTest from PyPI
* Understand the command-line interface
* Run your first scan
* Interpret scan results
* Manage scan history and reports
* Use common flags and options
=== Prerequisites ===
* Linux or Windows system with Python 3.8+
* Proper authorization to test target AD domain
* Network connectivity to target domain controllers
* Familiarity with command-line interfaces
---
=== Installation ===
==== Quick Install ====
The simplest way to install ADPenTest:
<syntaxhighlight lang="bash">
pip install adpentest
</syntaxhighlight>
==== Verify Installation ====
Check that ADPenTest is properly installed:
<syntaxhighlight lang="bash">
adpentest --version
adpentest --help
</syntaxhighlight>
Expected output:
<syntaxhighlight lang="bash">
ADPenTest 1.2.0
Usage: adpentest [OPTIONS]
...
</syntaxhighlight>
==== System Requirements ====
{| class="wikitable"
|-
! Component !! Requirement
|-
| Python || 3.8 or higher
|-
| Operating System || Linux (preferred) or Windows
|-
| RAM || Minimum 4GB (8GB+ recommended for large domains)
|-
| Disk Space || 2GB+ for database and tool storage
|-
| Network || Access to target domain on ports 53 (DNS), 88 (Kerberos), 389/636 (LDAP)
|-
| Tools || nmap, crackmapexec, certipy (automatically installed as dependencies)
|}
{{Note|On Windows, it's recommended to run ADPenTest in WSL2 (Windows Subsystem for Linux) for best compatibility.}}
---
=== Command-Line Interface Overview ===
==== Basic Syntax ====
<syntaxhighlight lang="bash">
adpentest [OPTIONS] [COMMAND]
</syntaxhighlight>
==== Global Options ====
{| class="wikitable"
|-
! Option !! Description !! Example
|-
| --version || Show version information || adpentest --version
|-
| --help || Display help message || adpentest --help
|-
| --verbose || Enable verbose output || adpentest --target corp.local --verbose
|-
| --quiet || Suppress output || adpentest --target corp.local --quiet
|-
| --config FILE || Use custom config file || adpentest --config custom.conf
|}
==== Common Commands ====
{| class="wikitable"
|-
! Command !! Purpose !! Example
|-
| --target DOMAIN || Specify target domain || adpentest --target corp.local
|-
| --scope-confirmed || Authorize actual scan (required) || adpentest --target corp.local --scope-confirmed
|-
| --history || View past scans || adpentest --history
|-
| --cve-report || Generate CVE report || adpentest --cve-report
|-
| --query TERM || Search results || adpentest --query kerberoasting
|}
---
=== Your First Scan ===
==== Step 1: Preview Mode (No Authorization Required) ====
Always start by previewing what ADPenTest will do:
<syntaxhighlight lang="bash">
adpentest --target corp.local
</syntaxhighlight>
This command:
* Discovers Domain Controllers
* Shows what tools will be executed
* Displays target scope
* '''Does NOT''' perform actual scans
Expected output:
<syntaxhighlight lang="text">
ADPenTest v1.2.0 - Active Directory Penetration Testing Framework
=================================================================
Target: corp.local
Mode: DRY-RUN (Preview only)
[*] Domain Controller Discovery
└─ DC1.corp.local (192.168.1.10) - Confidence: 100%
└─ DC2.corp.local (192.168.1.11) - Confidence: 95%
[*] Scheduled Tools
- nmap port scanning
- crackmapexec enumeration
- Kerberoast service ticket extraction
- certipy ADCS scanning
- [32 additional tools]
[!] To execute this scan, use: --scope-confirmed
Total estimated time: 2 hours, 15 minutes
</syntaxhighlight>
{{Note|'''Always review the preview output before authorizing a scan.''' Ensure the target scope matches your authorization.}}
==== Step 2: Scope Review ====
Before running the actual scan, verify:
* '''Correct Domain:''' Is corp.local the right target?
* '''Expected DCs:''' Are all Domain Controllers listed?
* '''Tool Coverage:''' Will all necessary tools run?
* '''Estimated Time:''' Is 2+ hours acceptable?
* '''Network Impact:''' Will scan bandwidth be acceptable?
==== Step 3: Authorize & Execute ====
Once you've reviewed the preview, authorize the scan:
<syntaxhighlight lang="bash">
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
{{Important|The <code>--scope-confirmed</code> flag confirms you have authorization to test this domain. Use it only when you have explicit written permission.}}
The scan will now execute:
<syntaxhighlight lang="text">
[+] Authorization confirmed
[+] Starting Domain Controller Discovery...
[✓] DC1.corp.local discovered
[✓] DC2.corp.local discovered
[+] Initializing tool orchestration (16 parallel workers)
[+] Starting reconnaissance phase...
[✓] nmap port scanning
[✓] masscan high-speed scanning
[✓] DNS enumeration
[+] Starting enumeration phase...
[✓] SMB enumeration
[✓] LDAP domain dump
[✓] Kerberos reconnaissance
[+] CVE scanning phase...
[✓] Spring LDAP check
[✓] Certificate enrollment scan
[✓] Kerberos vulnerability scan
[+] Scan completed in 2:14:37
[+] Results stored: ~/.adpentest/scan_history.db
</syntaxhighlight>
---
=== Understanding Scan Results ===
==== Result Structure ====
ADPenTest organizes results hierarchically:
<syntaxhighlight lang="text">
Scan ID: 20250924-143052
├─ Reconnaissance
│ ├─ DC Discovery
│ │ └─ DC1.corp.local (192.168.1.10)
│ ├─ DNS Enumeration
│ │ └─ 47 A records found
│ └─ Port Scanning
│ └─ 312 open ports discovered
├─ Enumeration
│ ├─ SMB Shares
│ │ └─ 23 shares enumerated
│ ├─ LDAP Users
│ │ └─ 1,247 user objects
│ └─ Service Principals
│ └─ 89 SPNs found
├─ Exploitation Simulation
│ ├─ Kerberoasting Results
│ │ └─ 12 vulnerable service accounts
│ ├─ ADCS Vulnerable Templates
│ │ └─ 3 exploitable templates
│ └─ Privilege Escalation Paths
│ └─ 5 potential escalation methods
└─ CVE Findings
├─ Critical (CVSS 9.0+)
│ └─ Spring LDAP Hardcoded Credentials
├─ High (CVSS 7.0-8.9)
│ ├─ Certificate Enrollment Bypass
│ └─ Kerberos RC4 Accepted
└─ Medium (CVSS 4.0-6.9)
└─ LDAP Anonymous Bind
</syntaxhighlight>
==== Viewing Results ====
View detailed scan results:
<syntaxhighlight lang="bash">
# Show most recent scan
adpentest --show-results
# Show specific scan by ID
adpentest --show-results 20250924-143052
# Show only CVE findings
adpentest --show-cve-results
# Export results as JSON
adpentest --export-json results.json
# Export results as HTML report
adpentest --export-html report.html
</syntaxhighlight>
---
=== Advanced Usage Options ===
==== 1. Scope to Specific OUs ====
Test only specific Organizational Units:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--ou "OU=Engineering,DC=corp,DC=local" \
--scope-confirmed
</syntaxhighlight>
Test multiple OUs:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--ou "OU=Engineering,DC=corp,DC=local" \
--ou "OU=Finance,DC=corp,DC=local" \
--scope-confirmed
</syntaxhighlight>
==== 2. Scope to Specific Hosts ====
Test only specific Domain Controllers:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--hosts "dc1.corp.local,dc2.corp.local" \
--scope-confirmed
</syntaxhighlight>
==== 3. Limit Parallelization ====
For production environments, reduce parallel workers:
<syntaxhighlight lang="bash">
# Default: 16 workers, reduced to 8
adpentest --target corp.local \
--max-workers 8 \
--scope-confirmed
</syntaxhighlight>
==== 4. Rate Limiting ====
Throttle scan speed to avoid network saturation:
<syntaxhighlight lang="bash">
# Limit to 50 requests per second
adpentest --target corp.local \
--rate-limit 50 \
--scope-confirmed
</syntaxhighlight>
==== 5. Tool Selection ====
Run only specific tool categories:
<syntaxhighlight lang="bash">
# Only reconnaissance phase
adpentest --target corp.local \
--phases reconnaissance \
--scope-confirmed
# Multiple phases
adpentest --target corp.local \
--phases reconnaissance,enumeration \
--scope-confirmed
# Exclude specific tools
adpentest --target corp.local \
--exclude-tools masscan,nmap \
--scope-confirmed
</syntaxhighlight>
==== 6. Credential Authentication ====
When Domain Controller requires authentication:
<syntaxhighlight lang="bash">
# Using username/password
adpentest --target corp.local \
--username administrator \
--password "P@ssw0rd" \
--scope-confirmed
# Using NTLM hash (pass-the-hash)
adpentest --target corp.local \
--username administrator \
--hash "8846f7eaee8fb117ad06bdd830b7586c" \
--scope-confirmed
# Using Kerberos ticket
adpentest --target corp.local \
--ticket "/tmp/krb5.ccache" \
--scope-confirmed
</syntaxhighlight>
{{Note|Store credentials securely! Use environment variables or encrypted config files, never hardcode passwords in scripts.}}
---
=== Scan History & Reporting ===
==== View Scan History ====
List all past scans:
<syntaxhighlight lang="bash">
adpentest --history
</syntaxhighlight>
Output:
<syntaxhighlight lang="text">
Scan History
============
ID | Target | Date/Time | Status | Duration
20250924-143052 | corp.local | 2025-09-24 14:30:52 | Completed | 2:14:37
20250923-091245 | corp.local | 2025-09-23 09:12:45 | Completed | 2:08:19
20250922-155030 | sales.local | 2025-09-22 15:50:30 | Completed | 1:47:02
</syntaxhighlight>
==== Generate CVE Report ====
Create a summary of all discovered CVEs:
<syntaxhighlight lang="bash">
adpentest --cve-report
</syntaxhighlight>
Sample output:
<syntaxhighlight lang="text">
CVE Report - Active Directory Assessments
==========================================
Target: corp.local (Most Recent Scan)
CRITICAL FINDINGS (CVSS 9.0+)
────────────────────────────
1. Spring LDAP Hardcoded Credentials (CVSS 9.4)
Status: Confirmed
Affected: DC1.corp.local
Remediation: Update Spring LDAP library
HIGH FINDINGS (CVSS 7.0-8.9)
────────────────────────────
2. Certificate Enrollment Bypass (CVSS 8.8)
Status: Confirmed
Template: SubCA
Remediation: Restrict certificate template permissions
MEDIUM FINDINGS (CVSS 4.0-6.9)
──────────────────────────────
3. Kerberos RC4 Encryption Accepted (CVSS 7.5)
Status: Confirmed
Impact: Weak encryption support
Remediation: Disable RC4 in domain
</syntaxhighlight>
==== Export Results ====
Export scan results in various formats:
<syntaxhighlight lang="bash">
# Export as JSON (for programmatic processing)
adpentest --export-json report.json
# Export as HTML (for client presentations)
adpentest --export-html report.html
# Export as CSV (for spreadsheet analysis)
adpentest --export-csv report.csv
# Export specific scan
adpentest --scan-id 20250924-143052 --export-html report_20250924.html
</syntaxhighlight>
---
=== Query Scan Database ===
Search for specific findings across all scans:
<syntaxhighlight lang="bash">
# Search for Kerberoasting results
adpentest --query "kerberoasting"
# Search for ADCS vulnerabilities
adpentest --query "certificate"
# Search by date range
adpentest --query "after:2025-09-20 before:2025-09-25"
# Search by CVSS score
adpentest --query "cvss:>7.0"
# Complex query
adpentest --query "certificate AND corp.local AND cvss:>8.0"
</syntaxhighlight>
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Run Your First ADPenTest Scan'''
'''Objective:''' Execute a complete ADPenTest scan against your lab environment.
'''Steps:'''
1. Set up a lab domain (or use GOAD if available)
2. Review the preview: <code>adpentest --target lab.local</code>
3. Verify the scope matches your authorization
4. Execute the scan: <code>adpentest --target lab.local --scope-confirmed</code>
5. Wait for completion (typically 2-3 hours)
6. Review results: <code>adpentest --show-results</code>
7. Generate report: <code>adpentest --export-html lab_assessment.html</code>
8. Analyze findings and plan remediation
'''Expected Outcomes:'''
* At least 50+ findings across reconnaissance/enumeration
* 2-5 CVE discoveries
* Documented attack paths
* Actionable remediation recommendations
}}
---
=== Troubleshooting ===
==== Common Issues ====
{| class="wikitable"
|-
! Issue !! Cause !! Solution
|-
| "Permission Denied" error || User lacks execute permissions || <code>chmod +x ~/.local/bin/adpentest</code>
|-
| "Target domain not found" || DNS resolution failure || Verify DNS server, check domain name spelling
|-
| "No Domain Controllers discovered" || Network connectivity issue || Test connectivity: <code>nslookup _ldap._tcp.dc._msdcs.corp.local</code>
|-
| "Tool execution timeout" || Network latency || Increase timeout: <code>--timeout 300</code>
|-
| "Database locked" error || Concurrent scan attempt || Wait for previous scan to complete
|}
==== Verbose Output ====
Enable detailed logging for troubleshooting:
<syntaxhighlight lang="bash">
adpentest --target corp.local --verbose --scope-confirmed
</syntaxhighlight>
Check log file:
<syntaxhighlight lang="bash">
tail -f ~/.adpentest/adpentest.log
</syntaxhighlight>
---
=== Knowledge Check ===
Test your understanding:
# What flag is required to execute an actual scan (not preview)?
# How do you view all past scans?
# What is the default number of parallel workers?
# Name three export formats for scan results
# How would you scope a scan to only the "Engineering" OU?
{{Note|Answers: 1) <code>--scope-confirmed</code> 2) <code>adpentest --history</code> 3) 16 4) JSON, HTML, CSV 5) <code>adpentest --target corp.local --ou "OU=Engineering,DC=corp,DC=local" --scope-confirmed</code>}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 14 - Scan Results and Reporting|Chapter 14: Scan Results and Reporting]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub - Usage Examples]
---
[[Category:How-to guides]]
{{BookCat}}
sa627lzofeikthj4cjeiokmldgjht23
4672154
4672133
2026-09-24T15:25:41Z
Kittycataclysm
3371989
flag
4672154
wikitext
text/x-wiki
{{AI-suspected|reason=typographical quirks, unformatted lists, broken refs, non-WB categories}}
== Chapter 6: Basic Usage ==
=== Learning Objectives ===
By the end of this chapter, you will know how to:
* Install ADPenTest from PyPI
* Understand the command-line interface
* Run your first scan
* Interpret scan results
* Manage scan history and reports
* Use common flags and options
=== Prerequisites ===
* Linux or Windows system with Python 3.8+
* Proper authorization to test target AD domain
* Network connectivity to target domain controllers
* Familiarity with command-line interfaces
---
=== Installation ===
==== Quick Install ====
The simplest way to install ADPenTest:
<syntaxhighlight lang="bash">
pip install adpentest
</syntaxhighlight>
==== Verify Installation ====
Check that ADPenTest is properly installed:
<syntaxhighlight lang="bash">
adpentest --version
adpentest --help
</syntaxhighlight>
Expected output:
<syntaxhighlight lang="bash">
ADPenTest 1.2.0
Usage: adpentest [OPTIONS]
...
</syntaxhighlight>
==== System Requirements ====
{| class="wikitable"
|-
! Component !! Requirement
|-
| Python || 3.8 or higher
|-
| Operating System || Linux (preferred) or Windows
|-
| RAM || Minimum 4GB (8GB+ recommended for large domains)
|-
| Disk Space || 2GB+ for database and tool storage
|-
| Network || Access to target domain on ports 53 (DNS), 88 (Kerberos), 389/636 (LDAP)
|-
| Tools || nmap, crackmapexec, certipy (automatically installed as dependencies)
|}
{{Note|On Windows, it's recommended to run ADPenTest in WSL2 (Windows Subsystem for Linux) for best compatibility.}}
---
=== Command-Line Interface Overview ===
==== Basic Syntax ====
<syntaxhighlight lang="bash">
adpentest [OPTIONS] [COMMAND]
</syntaxhighlight>
==== Global Options ====
{| class="wikitable"
|-
! Option !! Description !! Example
|-
| --version || Show version information || adpentest --version
|-
| --help || Display help message || adpentest --help
|-
| --verbose || Enable verbose output || adpentest --target corp.local --verbose
|-
| --quiet || Suppress output || adpentest --target corp.local --quiet
|-
| --config FILE || Use custom config file || adpentest --config custom.conf
|}
==== Common Commands ====
{| class="wikitable"
|-
! Command !! Purpose !! Example
|-
| --target DOMAIN || Specify target domain || adpentest --target corp.local
|-
| --scope-confirmed || Authorize actual scan (required) || adpentest --target corp.local --scope-confirmed
|-
| --history || View past scans || adpentest --history
|-
| --cve-report || Generate CVE report || adpentest --cve-report
|-
| --query TERM || Search results || adpentest --query kerberoasting
|}
---
=== Your First Scan ===
==== Step 1: Preview Mode (No Authorization Required) ====
Always start by previewing what ADPenTest will do:
<syntaxhighlight lang="bash">
adpentest --target corp.local
</syntaxhighlight>
This command:
* Discovers Domain Controllers
* Shows what tools will be executed
* Displays target scope
* '''Does NOT''' perform actual scans
Expected output:
<syntaxhighlight lang="text">
ADPenTest v1.2.0 - Active Directory Penetration Testing Framework
=================================================================
Target: corp.local
Mode: DRY-RUN (Preview only)
[*] Domain Controller Discovery
└─ DC1.corp.local (192.168.1.10) - Confidence: 100%
└─ DC2.corp.local (192.168.1.11) - Confidence: 95%
[*] Scheduled Tools
- nmap port scanning
- crackmapexec enumeration
- Kerberoast service ticket extraction
- certipy ADCS scanning
- [32 additional tools]
[!] To execute this scan, use: --scope-confirmed
Total estimated time: 2 hours, 15 minutes
</syntaxhighlight>
{{Note|'''Always review the preview output before authorizing a scan.''' Ensure the target scope matches your authorization.}}
==== Step 2: Scope Review ====
Before running the actual scan, verify:
* '''Correct Domain:''' Is corp.local the right target?
* '''Expected DCs:''' Are all Domain Controllers listed?
* '''Tool Coverage:''' Will all necessary tools run?
* '''Estimated Time:''' Is 2+ hours acceptable?
* '''Network Impact:''' Will scan bandwidth be acceptable?
==== Step 3: Authorize & Execute ====
Once you've reviewed the preview, authorize the scan:
<syntaxhighlight lang="bash">
adpentest --target corp.local --scope-confirmed
</syntaxhighlight>
{{Important|The <code>--scope-confirmed</code> flag confirms you have authorization to test this domain. Use it only when you have explicit written permission.}}
The scan will now execute:
<syntaxhighlight lang="text">
[+] Authorization confirmed
[+] Starting Domain Controller Discovery...
[✓] DC1.corp.local discovered
[✓] DC2.corp.local discovered
[+] Initializing tool orchestration (16 parallel workers)
[+] Starting reconnaissance phase...
[✓] nmap port scanning
[✓] masscan high-speed scanning
[✓] DNS enumeration
[+] Starting enumeration phase...
[✓] SMB enumeration
[✓] LDAP domain dump
[✓] Kerberos reconnaissance
[+] CVE scanning phase...
[✓] Spring LDAP check
[✓] Certificate enrollment scan
[✓] Kerberos vulnerability scan
[+] Scan completed in 2:14:37
[+] Results stored: ~/.adpentest/scan_history.db
</syntaxhighlight>
---
=== Understanding Scan Results ===
==== Result Structure ====
ADPenTest organizes results hierarchically:
<syntaxhighlight lang="text">
Scan ID: 20250924-143052
├─ Reconnaissance
│ ├─ DC Discovery
│ │ └─ DC1.corp.local (192.168.1.10)
│ ├─ DNS Enumeration
│ │ └─ 47 A records found
│ └─ Port Scanning
│ └─ 312 open ports discovered
├─ Enumeration
│ ├─ SMB Shares
│ │ └─ 23 shares enumerated
│ ├─ LDAP Users
│ │ └─ 1,247 user objects
│ └─ Service Principals
│ └─ 89 SPNs found
├─ Exploitation Simulation
│ ├─ Kerberoasting Results
│ │ └─ 12 vulnerable service accounts
│ ├─ ADCS Vulnerable Templates
│ │ └─ 3 exploitable templates
│ └─ Privilege Escalation Paths
│ └─ 5 potential escalation methods
└─ CVE Findings
├─ Critical (CVSS 9.0+)
│ └─ Spring LDAP Hardcoded Credentials
├─ High (CVSS 7.0-8.9)
│ ├─ Certificate Enrollment Bypass
│ └─ Kerberos RC4 Accepted
└─ Medium (CVSS 4.0-6.9)
└─ LDAP Anonymous Bind
</syntaxhighlight>
==== Viewing Results ====
View detailed scan results:
<syntaxhighlight lang="bash">
# Show most recent scan
adpentest --show-results
# Show specific scan by ID
adpentest --show-results 20250924-143052
# Show only CVE findings
adpentest --show-cve-results
# Export results as JSON
adpentest --export-json results.json
# Export results as HTML report
adpentest --export-html report.html
</syntaxhighlight>
---
=== Advanced Usage Options ===
==== 1. Scope to Specific OUs ====
Test only specific Organizational Units:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--ou "OU=Engineering,DC=corp,DC=local" \
--scope-confirmed
</syntaxhighlight>
Test multiple OUs:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--ou "OU=Engineering,DC=corp,DC=local" \
--ou "OU=Finance,DC=corp,DC=local" \
--scope-confirmed
</syntaxhighlight>
==== 2. Scope to Specific Hosts ====
Test only specific Domain Controllers:
<syntaxhighlight lang="bash">
adpentest --target corp.local \
--hosts "dc1.corp.local,dc2.corp.local" \
--scope-confirmed
</syntaxhighlight>
==== 3. Limit Parallelization ====
For production environments, reduce parallel workers:
<syntaxhighlight lang="bash">
# Default: 16 workers, reduced to 8
adpentest --target corp.local \
--max-workers 8 \
--scope-confirmed
</syntaxhighlight>
==== 4. Rate Limiting ====
Throttle scan speed to avoid network saturation:
<syntaxhighlight lang="bash">
# Limit to 50 requests per second
adpentest --target corp.local \
--rate-limit 50 \
--scope-confirmed
</syntaxhighlight>
==== 5. Tool Selection ====
Run only specific tool categories:
<syntaxhighlight lang="bash">
# Only reconnaissance phase
adpentest --target corp.local \
--phases reconnaissance \
--scope-confirmed
# Multiple phases
adpentest --target corp.local \
--phases reconnaissance,enumeration \
--scope-confirmed
# Exclude specific tools
adpentest --target corp.local \
--exclude-tools masscan,nmap \
--scope-confirmed
</syntaxhighlight>
==== 6. Credential Authentication ====
When Domain Controller requires authentication:
<syntaxhighlight lang="bash">
# Using username/password
adpentest --target corp.local \
--username administrator \
--password "P@ssw0rd" \
--scope-confirmed
# Using NTLM hash (pass-the-hash)
adpentest --target corp.local \
--username administrator \
--hash "8846f7eaee8fb117ad06bdd830b7586c" \
--scope-confirmed
# Using Kerberos ticket
adpentest --target corp.local \
--ticket "/tmp/krb5.ccache" \
--scope-confirmed
</syntaxhighlight>
{{Note|Store credentials securely! Use environment variables or encrypted config files, never hardcode passwords in scripts.}}
---
=== Scan History & Reporting ===
==== View Scan History ====
List all past scans:
<syntaxhighlight lang="bash">
adpentest --history
</syntaxhighlight>
Output:
<syntaxhighlight lang="text">
Scan History
============
ID | Target | Date/Time | Status | Duration
20250924-143052 | corp.local | 2025-09-24 14:30:52 | Completed | 2:14:37
20250923-091245 | corp.local | 2025-09-23 09:12:45 | Completed | 2:08:19
20250922-155030 | sales.local | 2025-09-22 15:50:30 | Completed | 1:47:02
</syntaxhighlight>
==== Generate CVE Report ====
Create a summary of all discovered CVEs:
<syntaxhighlight lang="bash">
adpentest --cve-report
</syntaxhighlight>
Sample output:
<syntaxhighlight lang="text">
CVE Report - Active Directory Assessments
==========================================
Target: corp.local (Most Recent Scan)
CRITICAL FINDINGS (CVSS 9.0+)
────────────────────────────
1. Spring LDAP Hardcoded Credentials (CVSS 9.4)
Status: Confirmed
Affected: DC1.corp.local
Remediation: Update Spring LDAP library
HIGH FINDINGS (CVSS 7.0-8.9)
────────────────────────────
2. Certificate Enrollment Bypass (CVSS 8.8)
Status: Confirmed
Template: SubCA
Remediation: Restrict certificate template permissions
MEDIUM FINDINGS (CVSS 4.0-6.9)
──────────────────────────────
3. Kerberos RC4 Encryption Accepted (CVSS 7.5)
Status: Confirmed
Impact: Weak encryption support
Remediation: Disable RC4 in domain
</syntaxhighlight>
==== Export Results ====
Export scan results in various formats:
<syntaxhighlight lang="bash">
# Export as JSON (for programmatic processing)
adpentest --export-json report.json
# Export as HTML (for client presentations)
adpentest --export-html report.html
# Export as CSV (for spreadsheet analysis)
adpentest --export-csv report.csv
# Export specific scan
adpentest --scan-id 20250924-143052 --export-html report_20250924.html
</syntaxhighlight>
---
=== Query Scan Database ===
Search for specific findings across all scans:
<syntaxhighlight lang="bash">
# Search for Kerberoasting results
adpentest --query "kerberoasting"
# Search for ADCS vulnerabilities
adpentest --query "certificate"
# Search by date range
adpentest --query "after:2025-09-20 before:2025-09-25"
# Search by CVSS score
adpentest --query "cvss:>7.0"
# Complex query
adpentest --query "certificate AND corp.local AND cvss:>8.0"
</syntaxhighlight>
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Run Your First ADPenTest Scan'''
'''Objective:''' Execute a complete ADPenTest scan against your lab environment.
'''Steps:'''
1. Set up a lab domain (or use GOAD if available)
2. Review the preview: <code>adpentest --target lab.local</code>
3. Verify the scope matches your authorization
4. Execute the scan: <code>adpentest --target lab.local --scope-confirmed</code>
5. Wait for completion (typically 2-3 hours)
6. Review results: <code>adpentest --show-results</code>
7. Generate report: <code>adpentest --export-html lab_assessment.html</code>
8. Analyze findings and plan remediation
'''Expected Outcomes:'''
* At least 50+ findings across reconnaissance/enumeration
* 2-5 CVE discoveries
* Documented attack paths
* Actionable remediation recommendations
}}
---
=== Troubleshooting ===
==== Common Issues ====
{| class="wikitable"
|-
! Issue !! Cause !! Solution
|-
| "Permission Denied" error || User lacks execute permissions || <code>chmod +x ~/.local/bin/adpentest</code>
|-
| "Target domain not found" || DNS resolution failure || Verify DNS server, check domain name spelling
|-
| "No Domain Controllers discovered" || Network connectivity issue || Test connectivity: <code>nslookup _ldap._tcp.dc._msdcs.corp.local</code>
|-
| "Tool execution timeout" || Network latency || Increase timeout: <code>--timeout 300</code>
|-
| "Database locked" error || Concurrent scan attempt || Wait for previous scan to complete
|}
==== Verbose Output ====
Enable detailed logging for troubleshooting:
<syntaxhighlight lang="bash">
adpentest --target corp.local --verbose --scope-confirmed
</syntaxhighlight>
Check log file:
<syntaxhighlight lang="bash">
tail -f ~/.adpentest/adpentest.log
</syntaxhighlight>
---
=== Knowledge Check ===
Test your understanding:
# What flag is required to execute an actual scan (not preview)?
# How do you view all past scans?
# What is the default number of parallel workers?
# Name three export formats for scan results
# How would you scope a scan to only the "Engineering" OU?
{{Note|Answers: 1) <code>--scope-confirmed</code> 2) <code>adpentest --history</code> 3) 16 4) JSON, HTML, CSV 5) <code>adpentest --target corp.local --ou "OU=Engineering,DC=corp,DC=local" --scope-confirmed</code>}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 5 - Installation and Configuration|Chapter 5: Installation and Configuration]]
* [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 14 - Scan Results and Reporting|Chapter 14: Scan Results and Reporting]]
* [https://github.com/netanelcyber/AdPentestAI-Python ADPenTest GitHub - Usage Examples]
---
[[Category:How-to guides]]
{{BookCat}}
2jqg1odp9ojskuhcpeppsyrqozex1p6
Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery
0
485829
4672117
4672036
2026-09-24T12:18:05Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672117
wikitext
text/x-wiki
== Chapter 7: Domain Controller Discovery ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* Why Domain Controller discovery is critical in AD penetration testing
* Multiple DC discovery mechanisms
* How ADPenTest discovers Domain Controllers
* Confidence scoring and validation
* WAF bypass techniques for DC discovery
* How to identify DC roles and capabilities
* DNS-based discovery methods
* LDAP-based discovery methods
* Network-based discovery methods
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* Understanding of DNS and LDAP protocols
* Basic network reconnaissance knowledge
* Access to network where target domain resides
---
=== Why Domain Controller Discovery is Critical ===
Domain Controllers are the core of Active Directory infrastructure.
==== Strategic Importance ====
'''Domain Controllers are:'''
* '''Central authority''' - Manage all AD authentication and authorization
* '''Key targets''' - Compromise a DC often means full domain compromise
* '''High value''' - Contain master copies of all AD data
* '''Critical infrastructure''' - Used by all domain members
{{Important|Finding all Domain Controllers in a target domain is often the first major objective in AD penetration testing. Missing a DC means missing potential attack paths.}}
==== DC Compromise Impact ====
Compromising a Domain Controller grants:
✓ Full credentials of all domain users and computers
✓ Ability to modify AD objects (create accounts, change permissions)
✓ Access to all domain data and resources
✓ Ability to create persistent backdoors
✓ Control over all authentication in the domain
---
=== Domain Controller Discovery Mechanisms ===
ADPenTest uses multiple discovery methods for comprehensive coverage.
==== 1. DNS SRV Record Queries ====
Domain Controllers advertise themselves via DNS SRV records.
===== How It Works =====
Kerberos services are published as DNS SRV records:
<syntaxhighlight lang="bash">
# Query for Kerberos DC locators
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local
# Expected response shows all DCs:
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc1.corp.local
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc2.corp.local
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc3.corp.local
</syntaxhighlight>
===== Why This Works =====
* Public information (DNS is typically accessible)
* Comprehensive (all DCs register their SRV records)
* Accurate (DCs maintain their registrations)
* No credentials required
===== Limitations =====
* Requires DNS access
* Blocked by firewall rules
* Some domains restrict DNS queries
* May return stale records
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# ADPenTest automatically queries SRV records
adpentest --target corp.local --discovery-method dns
# View DNS-discovered DCs
adpentest --show-discovery --method dns
</syntaxhighlight>
==== 2. LDAP RootDSE Probes ====
LDAP protocol exposes directory information.
===== How It Works =====
Query LDAP root DSE (Directory Service Entry):
<syntaxhighlight lang="bash">
# Query LDAP RootDSE
ldapsearch -x -H ldap://corp.local -b "" -s base "*" dnsHostName
# Returns LDAP server information including:
# - dnsHostName (DC name)
# - dsServiceName (DC identifier)
# - currentTime (DC system time)
# - highestCommittedUSN (replication info)
</syntaxhighlight>
===== Why This Works =====
* Direct LDAP protocol information
* Reliable identification of LDAP servers
* Provides detailed server information
* No credentials required for anonymous queries
===== Limitations =====
* LDAP must be accessible (port 389/636)
* Some environments disable anonymous LDAP
* May not discover all DCs (if behind load balancer)
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# LDAP-based discovery
adpentest --target corp.local --discovery-method ldap
# Specify LDAP server
adpentest --target corp.local --ldap-server dc1.corp.local
</syntaxhighlight>
==== 3. Port Fingerprinting ====
Scan for common DC ports to identify servers.
===== Common Ports =====
{| class="wikitable"
|-
! Port !! Protocol !! Service !! Use
|-
| 53 || TCP/UDP || DNS || Domain Name Service
|-
| 88 || TCP/UDP || Kerberos || Authentication
|-
| 135 || TCP || RPC Endpoint Mapper || Remote Procedure Call
|-
| 389 || TCP || LDAP || Directory Access
|-
| 445 || TCP || SMB || File Sharing
|-
| 636 || TCP || LDAPS || Secure LDAP
|-
| 3268 || TCP || Global Catalog || Forest-wide queries
|-
| 3269 || TCP || Global Catalog SSL || Secure GC
|}
===== Port Scanning for DC Detection =====
<syntaxhighlight lang="bash">
# Scan for common DC ports
nmap -p 53,88,135,389,445,636,3268,3269 corp.local
# More aggressive scan
nmap -p 53,88,135,389,445,636,3268,3269 -sV corp.local
# High-speed scanning with masscan
masscan 192.168.1.0/24 -p 53,88,389,445,3268 --rate 1000
</syntaxhighlight>
===== Why This Works =====
* Identifies servers running DC services
* Works through some firewall restrictions
* Can probe specific IP ranges
* Detects servers that don't advertise via DNS
===== Limitations =====
* Time-consuming for large networks
* Firewall may block scans
* Doesn't definitively identify DCs
* May find non-DC servers running same ports
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# Port-based discovery
adpentest --target corp.local --discovery-method port-scan
# Scan specific network range
adpentest --target corp.local --network 192.168.1.0/24 --discovery-method port-scan
</syntaxhighlight>
==== 4. Subnet Scanning ====
Comprehensive scanning of target subnets.
===== How It Works =====
Scan entire subnets for hosts running DC services:
<syntaxhighlight lang="bash">
# Enumerate hosts on subnet
nmap -sn 192.168.1.0/24 # Host discovery
# Port scan enumerated hosts
nmap -p 53,88,389,445,3268 192.168.1.0/24
# SMB scanning for computer identification
crackmapexec smb 192.168.1.0/24 --shares
</syntaxhighlight>
===== Why This Works =====
* Comprehensive coverage
* Discovers all systems on network
* Identifies backup DCs
* Finds RODC (Read-Only Domain Controllers)
===== Limitations =====
* Very time-consuming
* Generates significant network traffic
* Easily detected by monitoring
* May violate authorization scope
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# Comprehensive subnet scanning
adpentest --target corp.local --subnet-scan 192.168.1.0/24 --scope-confirmed
# Multiple subnets
adpentest --target corp.local --subnets 192.168.1.0/24,192.168.2.0/24
</syntaxhighlight>
---
=== Confidence Scoring ===
ADPenTest assigns confidence scores to discovered DCs.
==== Scoring Methodology ====
Each discovery method contributes to confidence:
{| class="wikitable"
|-
! Discovery Method !! Confidence Level !! Evidence Type
|-
| DNS SRV Record || 100% || Definitive DC registration
|-
| LDAP RootDSE || 95% || Direct LDAP response
|-
| Kerberos KDC || 90% || Kerberos authentication service
|-
| Port Scanning || 75% || Multiple DC ports open
|-
| SMB Identification || 85% || SMB server banner
|-
| Zone Transfer || 100% || Full DNS zone data
|}
===== Composite Scoring =====
When multiple methods identify same server:
<syntaxhighlight lang="text">
DC1.corp.local:
├─ DNS SRV Record ✓ (100%)
├─ LDAP RootDSE ✓ (95%)
├─ Port Scan ✓ (75%)
└─ Composite Confidence: 98% [HIGH CONFIDENCE]
Server2.corp.local:
├─ Port Scan ✓ (75%)
└─ Composite Confidence: 75% [MEDIUM CONFIDENCE]
</syntaxhighlight>
==== Using Confidence Scores ====
<syntaxhighlight lang="bash">
# View DC discovery results with confidence
adpentest --show-discovery --confidence
# Filter by minimum confidence
adpentest --show-discovery --min-confidence 90
</syntaxhighlight>
{{Note|High-confidence results are more reliable for targeting. Low-confidence results need verification before attack planning.}}
---
=== DC Information Gathering ===
Once DCs are discovered, gather detailed information.
==== Domain Controller Roles ====
Different DCs may have different roles:
===== PDC Emulator =====
Primary Domain Controller Emulator:
* Handles password changes
* Serves as time source
* Manages time sync
<syntaxhighlight lang="bash">
# Find PDC Emulator
adpentest --find-pdc corp.local
</syntaxhighlight>
===== Global Catalog Server =====
Holds forest-wide information:
* Replicated objects from all domains
* Faster queries than full LDAP
* Typically highly available
===== RODC (Read-Only DC) =====
Read-only Domain Controller:
* Cannot write changes
* Useful for branch offices
* Filtered replication
==== Detailed DC Information ====
Gather comprehensive DC details:
<syntaxhighlight lang="bash">
# Get DC information
ldapsearch -x -H ldap://dc1.corp.local -b "" -s base "*" \
dnsHostName \
operatingSystem \
operatingSystemVersion \
serverReferenceBL \
msDS-DomainControllerType
# Results include:
# - Hostname
# - OS version
# - Domain role
# - RODC status
# - Replication partners
</syntaxhighlight>
==== DC Capabilities ====
Identify DC capabilities:
<syntaxhighlight lang="bash">
# Query DC capabilities
adpentest --enumerate-dc-caps corp.local
# Results show:
# - AD schema version (2003, 2008 R2, 2012, 2016, 2019, 2022)
# - Forest functional level
# - Domain functional level
# - Available features (ADCS, Exchange, etc.)
</syntaxhighlight>
---
=== WAF Bypass Techniques ===
When firewalls block standard DC discovery.
==== 1. Raw Protocol Tunneling ====
Use raw LDAP/Kerberos over TCP:
<syntaxhighlight lang="bash">
# Standard LDAP (may be blocked)
ldapsearch -x -H ldap://dc1.corp.local ...
# Raw LDAP over TCP (more likely to work)
ldapsearch -x -H ldap://dc1.corp.local:389 \
-E pr=1000/noprompt ...
</syntaxhighlight>
==== 2. TCP Fragmentation ====
Fragment packets to evade IDS/firewall:
<syntaxhighlight lang="bash">
# Fragmented LDAP queries
timeout 5 bash -c 'echo -n "timeout 5" | \
nc -w 5 dc1.corp.local 389' | xxd
</syntaxhighlight>
==== 3. DNS over HTTPS/TLS ====
Encrypted DNS to bypass restrictions:
<syntaxhighlight lang="bash">
# DNS over HTTPS
dig +https _ldap._tcp.dc._msdcs.corp.local
# DNS over TLS
dig +tls _ldap._tcp.dc._msdcs.corp.local
</syntaxhighlight>
==== 4. Header Spoofing ====
Modify request headers to bypass WAF:
<syntaxhighlight lang="bash">
# Spoofed HTTP headers
curl -H "X-Forwarded-For: 10.0.0.1" \
-H "User-Agent: Mozilla/5.0" \
ldap://dc1.corp.local
</syntaxhighlight>
==== 5. Timing-Based Evasion ====
Slow down requests to avoid rate limiting:
<syntaxhighlight lang="bash">
# Rate-limited LDAP queries
for i in {1..100}; do
ldapsearch -x -H ldap://dc1.corp.local ... &
sleep 0.5 # Slow rate
done
</syntaxhighlight>
{{Warning|WAF bypass techniques may be blocked or considered excessive. Always stay within authorized scope and rules of engagement.}}
---
=== ADPenTest DC Discovery Workflow ===
How ADPenTest orchestrates DC discovery:
<syntaxhighlight lang="text">
ADPenTest DC Discovery Process:
1. Parse Target Domain
└─ Extract domain name, check format
2. Execute Discovery Methods (parallel)
├─ DNS SRV Records
│ └─ Query _ldap._tcp.dc._msdcs.domain
├─ LDAP RootDSE
│ └─ Anonymous LDAP query
├─ Port Scanning
│ └─ nmap common DC ports
└─ Subnet Scanning (if enabled)
└─ masscan/nmap on networks
3. Aggregate Results
├─ Combine all discoveries
├─ Remove duplicates
└─ Calculate confidence scores
4. Validate Discoveries
├─ Verify each DC
├─ Test connectivity
├─ Enumerate capabilities
└─ Identify roles
5. Report Results
├─ List discovered DCs
├─ Show confidence levels
├─ Display roles/capabilities
└─ Suggest next steps
</syntaxhighlight>
---
=== Practical DC Discovery Examples ===
==== Example 1: Simple Discovery ====
<syntaxhighlight lang="bash">
# Basic discovery
adpentest --target corp.local --discovery-only
# Output:
# Domain: corp.local
# Discovered Domain Controllers:
# 1. DC1.corp.local (192.168.1.10)
# - Confidence: 100%
# - OS: Windows Server 2022
# - Role: PDC Emulator
#
# 2. DC2.corp.local (192.168.1.11)
# - Confidence: 95%
# - OS: Windows Server 2019
# - Role: Global Catalog
</syntaxhighlight>
==== Example 2: Multi-Method Discovery ====
<syntaxhighlight lang="bash">
# Comprehensive discovery with all methods
adpentest --target corp.local \
--discovery-methods dns,ldap,port-scan,subnet-scan \
--network 192.168.1.0/24 \
--discovery-only
# Combines all methods for maximum coverage
</syntaxhighlight>
==== Example 3: Filter by Confidence ====
<syntaxhighlight lang="bash">
# Only high-confidence results
adpentest --target corp.local \
--discovery-only \
--min-confidence 90
# Only returns DCs with 90%+ confidence
</syntaxhighlight>
---
=== Troubleshooting DC Discovery ===
{| class="wikitable"
|-
! Problem !! Likely Cause !! Solution
|-
| No DCs discovered || DNS blocked || Try LDAP or port-scan methods
|-
| Incomplete DC list || WAF filtering || Use bypass techniques or expanded scope
|-
| Low confidence scores || Mixed results || Cross-validate with multiple methods
|-
| Timeout errors || Network latency || Increase timeout value
|-
| Authentication errors || Credentials invalid || Verify credentials, check LDAP access
|-
| "Domain not found" || Invalid domain name || Verify domain name spelling
|}
---
=== Knowledge Check ===
Test your DC discovery knowledge:
# Why is Domain Controller discovery critical in AD penetration testing?
# Name four DC discovery methods used by ADPenTest.
# What is a DNS SRV record and why is it useful for DC discovery?
# Explain what confidence scoring means in DC discovery.
# What are three common DC ports and their protocols?
# What is the purpose of a PDC Emulator?
# What is a Global Catalog server and what does it store?
# Name three WAF bypass techniques for DC discovery.
# How would you discover DCs in a firewalled environment?
# True or False: All discovered servers with common DC ports are definitely Domain Controllers.
{{Note|Answers: 1) DCs control auth, are high-value targets, control all AD data 2) DNS SRV, LDAP RootDSE, port scanning, subnet scanning 3) DNS record advertising Kerberos services; useful because all DCs register themselves 4) Confidence level that discovered server is actually a DC 5) 53 (DNS), 88 (Kerberos), 389 (LDAP), 445 (SMB), 3268 (Global Catalog) 6) Handles password changes, serves as time source 7) Holds forest-wide replicated objects, faster queries 8) Raw protocol tunneling, TCP fragmentation, DNS over HTTPS, header spoofing, timing-based evasion 9) Try LDAP/Kerberos methods, use DNS over HTTPS, slower requests, WAF bypass techniques 10) False - could be other servers; need confirmation}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Discover Domain Controllers in Your Lab'''
1. '''Identify Target Domain:'''
- Note your lab domain name (e.g., corp.local)
- Verify network access
2. '''DNS SRV Discovery:'''
- Query: `nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local`
- Record discovered DCs
- Note confidence (should be 100%)
3. '''LDAP Discovery:'''
- Query: `ldapsearch -x -H ldap://corp.local -b "" -s base "*"`
- Identify LDAP server
- Extract dnsHostName attribute
- Compare with DNS results
4. '''Port Scanning:'''
- Scan network for common DC ports: 53, 88, 389, 445, 3268
- Identify servers with multiple DC ports open
- Verify against DNS/LDAP results
5. '''ADPenTest Discovery:'''
- Run: `adpentest --target corp.local --discovery-only`
- Review discovered DCs
- Check confidence scores
- Compare with manual results
6. '''DC Information Gathering:'''
- Query each discovered DC
- Identify roles (PDC Emulator, GC, etc.)
- Check OS version
- Document findings
7. '''Validation:'''
- Verify all DCs discovered
- Confirm no false positives
- Document methodology used
- Create summary report
Success Criteria:
- All DCs in domain discovered
- High confidence scores
- Roles identified
- Cross-validated with multiple methods
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/forest-design-models Microsoft Learn: Forest Design]
* [https://attack.mitre.org/tactics/TA0007/ MITRE ATT&CK: Discovery]
* [https://nmap.org/ Nmap Documentation]
---
[[Category:Active Directory Security and Penetration Testing]]
[[Category:ADPenTest Framework]]
[[Category:Domain Controller Discovery]]
{{BookCat}}
skct5slkwtalj76zqiadezgi76xjt7o
4672134
4672117
2026-09-24T12:20:56Z
MathXplore
3097823
removed [[Category:Active Directory Security and Penetration Testing]] using [[Help:Gadget-HotCat|HotCat]]
4672134
wikitext
text/x-wiki
== Chapter 7: Domain Controller Discovery ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* Why Domain Controller discovery is critical in AD penetration testing
* Multiple DC discovery mechanisms
* How ADPenTest discovers Domain Controllers
* Confidence scoring and validation
* WAF bypass techniques for DC discovery
* How to identify DC roles and capabilities
* DNS-based discovery methods
* LDAP-based discovery methods
* Network-based discovery methods
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* Understanding of DNS and LDAP protocols
* Basic network reconnaissance knowledge
* Access to network where target domain resides
---
=== Why Domain Controller Discovery is Critical ===
Domain Controllers are the core of Active Directory infrastructure.
==== Strategic Importance ====
'''Domain Controllers are:'''
* '''Central authority''' - Manage all AD authentication and authorization
* '''Key targets''' - Compromise a DC often means full domain compromise
* '''High value''' - Contain master copies of all AD data
* '''Critical infrastructure''' - Used by all domain members
{{Important|Finding all Domain Controllers in a target domain is often the first major objective in AD penetration testing. Missing a DC means missing potential attack paths.}}
==== DC Compromise Impact ====
Compromising a Domain Controller grants:
✓ Full credentials of all domain users and computers
✓ Ability to modify AD objects (create accounts, change permissions)
✓ Access to all domain data and resources
✓ Ability to create persistent backdoors
✓ Control over all authentication in the domain
---
=== Domain Controller Discovery Mechanisms ===
ADPenTest uses multiple discovery methods for comprehensive coverage.
==== 1. DNS SRV Record Queries ====
Domain Controllers advertise themselves via DNS SRV records.
===== How It Works =====
Kerberos services are published as DNS SRV records:
<syntaxhighlight lang="bash">
# Query for Kerberos DC locators
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local
# Expected response shows all DCs:
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc1.corp.local
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc2.corp.local
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc3.corp.local
</syntaxhighlight>
===== Why This Works =====
* Public information (DNS is typically accessible)
* Comprehensive (all DCs register their SRV records)
* Accurate (DCs maintain their registrations)
* No credentials required
===== Limitations =====
* Requires DNS access
* Blocked by firewall rules
* Some domains restrict DNS queries
* May return stale records
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# ADPenTest automatically queries SRV records
adpentest --target corp.local --discovery-method dns
# View DNS-discovered DCs
adpentest --show-discovery --method dns
</syntaxhighlight>
==== 2. LDAP RootDSE Probes ====
LDAP protocol exposes directory information.
===== How It Works =====
Query LDAP root DSE (Directory Service Entry):
<syntaxhighlight lang="bash">
# Query LDAP RootDSE
ldapsearch -x -H ldap://corp.local -b "" -s base "*" dnsHostName
# Returns LDAP server information including:
# - dnsHostName (DC name)
# - dsServiceName (DC identifier)
# - currentTime (DC system time)
# - highestCommittedUSN (replication info)
</syntaxhighlight>
===== Why This Works =====
* Direct LDAP protocol information
* Reliable identification of LDAP servers
* Provides detailed server information
* No credentials required for anonymous queries
===== Limitations =====
* LDAP must be accessible (port 389/636)
* Some environments disable anonymous LDAP
* May not discover all DCs (if behind load balancer)
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# LDAP-based discovery
adpentest --target corp.local --discovery-method ldap
# Specify LDAP server
adpentest --target corp.local --ldap-server dc1.corp.local
</syntaxhighlight>
==== 3. Port Fingerprinting ====
Scan for common DC ports to identify servers.
===== Common Ports =====
{| class="wikitable"
|-
! Port !! Protocol !! Service !! Use
|-
| 53 || TCP/UDP || DNS || Domain Name Service
|-
| 88 || TCP/UDP || Kerberos || Authentication
|-
| 135 || TCP || RPC Endpoint Mapper || Remote Procedure Call
|-
| 389 || TCP || LDAP || Directory Access
|-
| 445 || TCP || SMB || File Sharing
|-
| 636 || TCP || LDAPS || Secure LDAP
|-
| 3268 || TCP || Global Catalog || Forest-wide queries
|-
| 3269 || TCP || Global Catalog SSL || Secure GC
|}
===== Port Scanning for DC Detection =====
<syntaxhighlight lang="bash">
# Scan for common DC ports
nmap -p 53,88,135,389,445,636,3268,3269 corp.local
# More aggressive scan
nmap -p 53,88,135,389,445,636,3268,3269 -sV corp.local
# High-speed scanning with masscan
masscan 192.168.1.0/24 -p 53,88,389,445,3268 --rate 1000
</syntaxhighlight>
===== Why This Works =====
* Identifies servers running DC services
* Works through some firewall restrictions
* Can probe specific IP ranges
* Detects servers that don't advertise via DNS
===== Limitations =====
* Time-consuming for large networks
* Firewall may block scans
* Doesn't definitively identify DCs
* May find non-DC servers running same ports
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# Port-based discovery
adpentest --target corp.local --discovery-method port-scan
# Scan specific network range
adpentest --target corp.local --network 192.168.1.0/24 --discovery-method port-scan
</syntaxhighlight>
==== 4. Subnet Scanning ====
Comprehensive scanning of target subnets.
===== How It Works =====
Scan entire subnets for hosts running DC services:
<syntaxhighlight lang="bash">
# Enumerate hosts on subnet
nmap -sn 192.168.1.0/24 # Host discovery
# Port scan enumerated hosts
nmap -p 53,88,389,445,3268 192.168.1.0/24
# SMB scanning for computer identification
crackmapexec smb 192.168.1.0/24 --shares
</syntaxhighlight>
===== Why This Works =====
* Comprehensive coverage
* Discovers all systems on network
* Identifies backup DCs
* Finds RODC (Read-Only Domain Controllers)
===== Limitations =====
* Very time-consuming
* Generates significant network traffic
* Easily detected by monitoring
* May violate authorization scope
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# Comprehensive subnet scanning
adpentest --target corp.local --subnet-scan 192.168.1.0/24 --scope-confirmed
# Multiple subnets
adpentest --target corp.local --subnets 192.168.1.0/24,192.168.2.0/24
</syntaxhighlight>
---
=== Confidence Scoring ===
ADPenTest assigns confidence scores to discovered DCs.
==== Scoring Methodology ====
Each discovery method contributes to confidence:
{| class="wikitable"
|-
! Discovery Method !! Confidence Level !! Evidence Type
|-
| DNS SRV Record || 100% || Definitive DC registration
|-
| LDAP RootDSE || 95% || Direct LDAP response
|-
| Kerberos KDC || 90% || Kerberos authentication service
|-
| Port Scanning || 75% || Multiple DC ports open
|-
| SMB Identification || 85% || SMB server banner
|-
| Zone Transfer || 100% || Full DNS zone data
|}
===== Composite Scoring =====
When multiple methods identify same server:
<syntaxhighlight lang="text">
DC1.corp.local:
├─ DNS SRV Record ✓ (100%)
├─ LDAP RootDSE ✓ (95%)
├─ Port Scan ✓ (75%)
└─ Composite Confidence: 98% [HIGH CONFIDENCE]
Server2.corp.local:
├─ Port Scan ✓ (75%)
└─ Composite Confidence: 75% [MEDIUM CONFIDENCE]
</syntaxhighlight>
==== Using Confidence Scores ====
<syntaxhighlight lang="bash">
# View DC discovery results with confidence
adpentest --show-discovery --confidence
# Filter by minimum confidence
adpentest --show-discovery --min-confidence 90
</syntaxhighlight>
{{Note|High-confidence results are more reliable for targeting. Low-confidence results need verification before attack planning.}}
---
=== DC Information Gathering ===
Once DCs are discovered, gather detailed information.
==== Domain Controller Roles ====
Different DCs may have different roles:
===== PDC Emulator =====
Primary Domain Controller Emulator:
* Handles password changes
* Serves as time source
* Manages time sync
<syntaxhighlight lang="bash">
# Find PDC Emulator
adpentest --find-pdc corp.local
</syntaxhighlight>
===== Global Catalog Server =====
Holds forest-wide information:
* Replicated objects from all domains
* Faster queries than full LDAP
* Typically highly available
===== RODC (Read-Only DC) =====
Read-only Domain Controller:
* Cannot write changes
* Useful for branch offices
* Filtered replication
==== Detailed DC Information ====
Gather comprehensive DC details:
<syntaxhighlight lang="bash">
# Get DC information
ldapsearch -x -H ldap://dc1.corp.local -b "" -s base "*" \
dnsHostName \
operatingSystem \
operatingSystemVersion \
serverReferenceBL \
msDS-DomainControllerType
# Results include:
# - Hostname
# - OS version
# - Domain role
# - RODC status
# - Replication partners
</syntaxhighlight>
==== DC Capabilities ====
Identify DC capabilities:
<syntaxhighlight lang="bash">
# Query DC capabilities
adpentest --enumerate-dc-caps corp.local
# Results show:
# - AD schema version (2003, 2008 R2, 2012, 2016, 2019, 2022)
# - Forest functional level
# - Domain functional level
# - Available features (ADCS, Exchange, etc.)
</syntaxhighlight>
---
=== WAF Bypass Techniques ===
When firewalls block standard DC discovery.
==== 1. Raw Protocol Tunneling ====
Use raw LDAP/Kerberos over TCP:
<syntaxhighlight lang="bash">
# Standard LDAP (may be blocked)
ldapsearch -x -H ldap://dc1.corp.local ...
# Raw LDAP over TCP (more likely to work)
ldapsearch -x -H ldap://dc1.corp.local:389 \
-E pr=1000/noprompt ...
</syntaxhighlight>
==== 2. TCP Fragmentation ====
Fragment packets to evade IDS/firewall:
<syntaxhighlight lang="bash">
# Fragmented LDAP queries
timeout 5 bash -c 'echo -n "timeout 5" | \
nc -w 5 dc1.corp.local 389' | xxd
</syntaxhighlight>
==== 3. DNS over HTTPS/TLS ====
Encrypted DNS to bypass restrictions:
<syntaxhighlight lang="bash">
# DNS over HTTPS
dig +https _ldap._tcp.dc._msdcs.corp.local
# DNS over TLS
dig +tls _ldap._tcp.dc._msdcs.corp.local
</syntaxhighlight>
==== 4. Header Spoofing ====
Modify request headers to bypass WAF:
<syntaxhighlight lang="bash">
# Spoofed HTTP headers
curl -H "X-Forwarded-For: 10.0.0.1" \
-H "User-Agent: Mozilla/5.0" \
ldap://dc1.corp.local
</syntaxhighlight>
==== 5. Timing-Based Evasion ====
Slow down requests to avoid rate limiting:
<syntaxhighlight lang="bash">
# Rate-limited LDAP queries
for i in {1..100}; do
ldapsearch -x -H ldap://dc1.corp.local ... &
sleep 0.5 # Slow rate
done
</syntaxhighlight>
{{Warning|WAF bypass techniques may be blocked or considered excessive. Always stay within authorized scope and rules of engagement.}}
---
=== ADPenTest DC Discovery Workflow ===
How ADPenTest orchestrates DC discovery:
<syntaxhighlight lang="text">
ADPenTest DC Discovery Process:
1. Parse Target Domain
└─ Extract domain name, check format
2. Execute Discovery Methods (parallel)
├─ DNS SRV Records
│ └─ Query _ldap._tcp.dc._msdcs.domain
├─ LDAP RootDSE
│ └─ Anonymous LDAP query
├─ Port Scanning
│ └─ nmap common DC ports
└─ Subnet Scanning (if enabled)
└─ masscan/nmap on networks
3. Aggregate Results
├─ Combine all discoveries
├─ Remove duplicates
└─ Calculate confidence scores
4. Validate Discoveries
├─ Verify each DC
├─ Test connectivity
├─ Enumerate capabilities
└─ Identify roles
5. Report Results
├─ List discovered DCs
├─ Show confidence levels
├─ Display roles/capabilities
└─ Suggest next steps
</syntaxhighlight>
---
=== Practical DC Discovery Examples ===
==== Example 1: Simple Discovery ====
<syntaxhighlight lang="bash">
# Basic discovery
adpentest --target corp.local --discovery-only
# Output:
# Domain: corp.local
# Discovered Domain Controllers:
# 1. DC1.corp.local (192.168.1.10)
# - Confidence: 100%
# - OS: Windows Server 2022
# - Role: PDC Emulator
#
# 2. DC2.corp.local (192.168.1.11)
# - Confidence: 95%
# - OS: Windows Server 2019
# - Role: Global Catalog
</syntaxhighlight>
==== Example 2: Multi-Method Discovery ====
<syntaxhighlight lang="bash">
# Comprehensive discovery with all methods
adpentest --target corp.local \
--discovery-methods dns,ldap,port-scan,subnet-scan \
--network 192.168.1.0/24 \
--discovery-only
# Combines all methods for maximum coverage
</syntaxhighlight>
==== Example 3: Filter by Confidence ====
<syntaxhighlight lang="bash">
# Only high-confidence results
adpentest --target corp.local \
--discovery-only \
--min-confidence 90
# Only returns DCs with 90%+ confidence
</syntaxhighlight>
---
=== Troubleshooting DC Discovery ===
{| class="wikitable"
|-
! Problem !! Likely Cause !! Solution
|-
| No DCs discovered || DNS blocked || Try LDAP or port-scan methods
|-
| Incomplete DC list || WAF filtering || Use bypass techniques or expanded scope
|-
| Low confidence scores || Mixed results || Cross-validate with multiple methods
|-
| Timeout errors || Network latency || Increase timeout value
|-
| Authentication errors || Credentials invalid || Verify credentials, check LDAP access
|-
| "Domain not found" || Invalid domain name || Verify domain name spelling
|}
---
=== Knowledge Check ===
Test your DC discovery knowledge:
# Why is Domain Controller discovery critical in AD penetration testing?
# Name four DC discovery methods used by ADPenTest.
# What is a DNS SRV record and why is it useful for DC discovery?
# Explain what confidence scoring means in DC discovery.
# What are three common DC ports and their protocols?
# What is the purpose of a PDC Emulator?
# What is a Global Catalog server and what does it store?
# Name three WAF bypass techniques for DC discovery.
# How would you discover DCs in a firewalled environment?
# True or False: All discovered servers with common DC ports are definitely Domain Controllers.
{{Note|Answers: 1) DCs control auth, are high-value targets, control all AD data 2) DNS SRV, LDAP RootDSE, port scanning, subnet scanning 3) DNS record advertising Kerberos services; useful because all DCs register themselves 4) Confidence level that discovered server is actually a DC 5) 53 (DNS), 88 (Kerberos), 389 (LDAP), 445 (SMB), 3268 (Global Catalog) 6) Handles password changes, serves as time source 7) Holds forest-wide replicated objects, faster queries 8) Raw protocol tunneling, TCP fragmentation, DNS over HTTPS, header spoofing, timing-based evasion 9) Try LDAP/Kerberos methods, use DNS over HTTPS, slower requests, WAF bypass techniques 10) False - could be other servers; need confirmation}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Discover Domain Controllers in Your Lab'''
1. '''Identify Target Domain:'''
- Note your lab domain name (e.g., corp.local)
- Verify network access
2. '''DNS SRV Discovery:'''
- Query: `nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local`
- Record discovered DCs
- Note confidence (should be 100%)
3. '''LDAP Discovery:'''
- Query: `ldapsearch -x -H ldap://corp.local -b "" -s base "*"`
- Identify LDAP server
- Extract dnsHostName attribute
- Compare with DNS results
4. '''Port Scanning:'''
- Scan network for common DC ports: 53, 88, 389, 445, 3268
- Identify servers with multiple DC ports open
- Verify against DNS/LDAP results
5. '''ADPenTest Discovery:'''
- Run: `adpentest --target corp.local --discovery-only`
- Review discovered DCs
- Check confidence scores
- Compare with manual results
6. '''DC Information Gathering:'''
- Query each discovered DC
- Identify roles (PDC Emulator, GC, etc.)
- Check OS version
- Document findings
7. '''Validation:'''
- Verify all DCs discovered
- Confirm no false positives
- Document methodology used
- Create summary report
Success Criteria:
- All DCs in domain discovered
- High confidence scores
- Roles identified
- Cross-validated with multiple methods
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/forest-design-models Microsoft Learn: Forest Design]
* [https://attack.mitre.org/tactics/TA0007/ MITRE ATT&CK: Discovery]
* [https://nmap.org/ Nmap Documentation]
---
[[Category:ADPenTest Framework]]
[[Category:Domain Controller Discovery]]
{{BookCat}}
a2bn2bvpxl8rn74uwyvt24rq5cwkvd1
4672153
4672134
2026-09-24T15:25:06Z
Kittycataclysm
3371989
flag
4672153
wikitext
text/x-wiki
{{AI-suspected|reason=typographical quirks, unformatted lists, broken refs, non-WB categories}}
== Chapter 7: Domain Controller Discovery ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* Why Domain Controller discovery is critical in AD penetration testing
* Multiple DC discovery mechanisms
* How ADPenTest discovers Domain Controllers
* Confidence scoring and validation
* WAF bypass techniques for DC discovery
* How to identify DC roles and capabilities
* DNS-based discovery methods
* LDAP-based discovery methods
* Network-based discovery methods
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 6 - Basic Usage|Chapter 6: Basic Usage]]
* Understanding of DNS and LDAP protocols
* Basic network reconnaissance knowledge
* Access to network where target domain resides
---
=== Why Domain Controller Discovery is Critical ===
Domain Controllers are the core of Active Directory infrastructure.
==== Strategic Importance ====
'''Domain Controllers are:'''
* '''Central authority''' - Manage all AD authentication and authorization
* '''Key targets''' - Compromise a DC often means full domain compromise
* '''High value''' - Contain master copies of all AD data
* '''Critical infrastructure''' - Used by all domain members
{{Important|Finding all Domain Controllers in a target domain is often the first major objective in AD penetration testing. Missing a DC means missing potential attack paths.}}
==== DC Compromise Impact ====
Compromising a Domain Controller grants:
✓ Full credentials of all domain users and computers
✓ Ability to modify AD objects (create accounts, change permissions)
✓ Access to all domain data and resources
✓ Ability to create persistent backdoors
✓ Control over all authentication in the domain
---
=== Domain Controller Discovery Mechanisms ===
ADPenTest uses multiple discovery methods for comprehensive coverage.
==== 1. DNS SRV Record Queries ====
Domain Controllers advertise themselves via DNS SRV records.
===== How It Works =====
Kerberos services are published as DNS SRV records:
<syntaxhighlight lang="bash">
# Query for Kerberos DC locators
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local
# Expected response shows all DCs:
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc1.corp.local
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc2.corp.local
_ldap._tcp.dc._msdcs.corp.local IN SRV 0 100 389 dc3.corp.local
</syntaxhighlight>
===== Why This Works =====
* Public information (DNS is typically accessible)
* Comprehensive (all DCs register their SRV records)
* Accurate (DCs maintain their registrations)
* No credentials required
===== Limitations =====
* Requires DNS access
* Blocked by firewall rules
* Some domains restrict DNS queries
* May return stale records
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# ADPenTest automatically queries SRV records
adpentest --target corp.local --discovery-method dns
# View DNS-discovered DCs
adpentest --show-discovery --method dns
</syntaxhighlight>
==== 2. LDAP RootDSE Probes ====
LDAP protocol exposes directory information.
===== How It Works =====
Query LDAP root DSE (Directory Service Entry):
<syntaxhighlight lang="bash">
# Query LDAP RootDSE
ldapsearch -x -H ldap://corp.local -b "" -s base "*" dnsHostName
# Returns LDAP server information including:
# - dnsHostName (DC name)
# - dsServiceName (DC identifier)
# - currentTime (DC system time)
# - highestCommittedUSN (replication info)
</syntaxhighlight>
===== Why This Works =====
* Direct LDAP protocol information
* Reliable identification of LDAP servers
* Provides detailed server information
* No credentials required for anonymous queries
===== Limitations =====
* LDAP must be accessible (port 389/636)
* Some environments disable anonymous LDAP
* May not discover all DCs (if behind load balancer)
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# LDAP-based discovery
adpentest --target corp.local --discovery-method ldap
# Specify LDAP server
adpentest --target corp.local --ldap-server dc1.corp.local
</syntaxhighlight>
==== 3. Port Fingerprinting ====
Scan for common DC ports to identify servers.
===== Common Ports =====
{| class="wikitable"
|-
! Port !! Protocol !! Service !! Use
|-
| 53 || TCP/UDP || DNS || Domain Name Service
|-
| 88 || TCP/UDP || Kerberos || Authentication
|-
| 135 || TCP || RPC Endpoint Mapper || Remote Procedure Call
|-
| 389 || TCP || LDAP || Directory Access
|-
| 445 || TCP || SMB || File Sharing
|-
| 636 || TCP || LDAPS || Secure LDAP
|-
| 3268 || TCP || Global Catalog || Forest-wide queries
|-
| 3269 || TCP || Global Catalog SSL || Secure GC
|}
===== Port Scanning for DC Detection =====
<syntaxhighlight lang="bash">
# Scan for common DC ports
nmap -p 53,88,135,389,445,636,3268,3269 corp.local
# More aggressive scan
nmap -p 53,88,135,389,445,636,3268,3269 -sV corp.local
# High-speed scanning with masscan
masscan 192.168.1.0/24 -p 53,88,389,445,3268 --rate 1000
</syntaxhighlight>
===== Why This Works =====
* Identifies servers running DC services
* Works through some firewall restrictions
* Can probe specific IP ranges
* Detects servers that don't advertise via DNS
===== Limitations =====
* Time-consuming for large networks
* Firewall may block scans
* Doesn't definitively identify DCs
* May find non-DC servers running same ports
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# Port-based discovery
adpentest --target corp.local --discovery-method port-scan
# Scan specific network range
adpentest --target corp.local --network 192.168.1.0/24 --discovery-method port-scan
</syntaxhighlight>
==== 4. Subnet Scanning ====
Comprehensive scanning of target subnets.
===== How It Works =====
Scan entire subnets for hosts running DC services:
<syntaxhighlight lang="bash">
# Enumerate hosts on subnet
nmap -sn 192.168.1.0/24 # Host discovery
# Port scan enumerated hosts
nmap -p 53,88,389,445,3268 192.168.1.0/24
# SMB scanning for computer identification
crackmapexec smb 192.168.1.0/24 --shares
</syntaxhighlight>
===== Why This Works =====
* Comprehensive coverage
* Discovers all systems on network
* Identifies backup DCs
* Finds RODC (Read-Only Domain Controllers)
===== Limitations =====
* Very time-consuming
* Generates significant network traffic
* Easily detected by monitoring
* May violate authorization scope
===== Using ADPenTest =====
<syntaxhighlight lang="bash">
# Comprehensive subnet scanning
adpentest --target corp.local --subnet-scan 192.168.1.0/24 --scope-confirmed
# Multiple subnets
adpentest --target corp.local --subnets 192.168.1.0/24,192.168.2.0/24
</syntaxhighlight>
---
=== Confidence Scoring ===
ADPenTest assigns confidence scores to discovered DCs.
==== Scoring Methodology ====
Each discovery method contributes to confidence:
{| class="wikitable"
|-
! Discovery Method !! Confidence Level !! Evidence Type
|-
| DNS SRV Record || 100% || Definitive DC registration
|-
| LDAP RootDSE || 95% || Direct LDAP response
|-
| Kerberos KDC || 90% || Kerberos authentication service
|-
| Port Scanning || 75% || Multiple DC ports open
|-
| SMB Identification || 85% || SMB server banner
|-
| Zone Transfer || 100% || Full DNS zone data
|}
===== Composite Scoring =====
When multiple methods identify same server:
<syntaxhighlight lang="text">
DC1.corp.local:
├─ DNS SRV Record ✓ (100%)
├─ LDAP RootDSE ✓ (95%)
├─ Port Scan ✓ (75%)
└─ Composite Confidence: 98% [HIGH CONFIDENCE]
Server2.corp.local:
├─ Port Scan ✓ (75%)
└─ Composite Confidence: 75% [MEDIUM CONFIDENCE]
</syntaxhighlight>
==== Using Confidence Scores ====
<syntaxhighlight lang="bash">
# View DC discovery results with confidence
adpentest --show-discovery --confidence
# Filter by minimum confidence
adpentest --show-discovery --min-confidence 90
</syntaxhighlight>
{{Note|High-confidence results are more reliable for targeting. Low-confidence results need verification before attack planning.}}
---
=== DC Information Gathering ===
Once DCs are discovered, gather detailed information.
==== Domain Controller Roles ====
Different DCs may have different roles:
===== PDC Emulator =====
Primary Domain Controller Emulator:
* Handles password changes
* Serves as time source
* Manages time sync
<syntaxhighlight lang="bash">
# Find PDC Emulator
adpentest --find-pdc corp.local
</syntaxhighlight>
===== Global Catalog Server =====
Holds forest-wide information:
* Replicated objects from all domains
* Faster queries than full LDAP
* Typically highly available
===== RODC (Read-Only DC) =====
Read-only Domain Controller:
* Cannot write changes
* Useful for branch offices
* Filtered replication
==== Detailed DC Information ====
Gather comprehensive DC details:
<syntaxhighlight lang="bash">
# Get DC information
ldapsearch -x -H ldap://dc1.corp.local -b "" -s base "*" \
dnsHostName \
operatingSystem \
operatingSystemVersion \
serverReferenceBL \
msDS-DomainControllerType
# Results include:
# - Hostname
# - OS version
# - Domain role
# - RODC status
# - Replication partners
</syntaxhighlight>
==== DC Capabilities ====
Identify DC capabilities:
<syntaxhighlight lang="bash">
# Query DC capabilities
adpentest --enumerate-dc-caps corp.local
# Results show:
# - AD schema version (2003, 2008 R2, 2012, 2016, 2019, 2022)
# - Forest functional level
# - Domain functional level
# - Available features (ADCS, Exchange, etc.)
</syntaxhighlight>
---
=== WAF Bypass Techniques ===
When firewalls block standard DC discovery.
==== 1. Raw Protocol Tunneling ====
Use raw LDAP/Kerberos over TCP:
<syntaxhighlight lang="bash">
# Standard LDAP (may be blocked)
ldapsearch -x -H ldap://dc1.corp.local ...
# Raw LDAP over TCP (more likely to work)
ldapsearch -x -H ldap://dc1.corp.local:389 \
-E pr=1000/noprompt ...
</syntaxhighlight>
==== 2. TCP Fragmentation ====
Fragment packets to evade IDS/firewall:
<syntaxhighlight lang="bash">
# Fragmented LDAP queries
timeout 5 bash -c 'echo -n "timeout 5" | \
nc -w 5 dc1.corp.local 389' | xxd
</syntaxhighlight>
==== 3. DNS over HTTPS/TLS ====
Encrypted DNS to bypass restrictions:
<syntaxhighlight lang="bash">
# DNS over HTTPS
dig +https _ldap._tcp.dc._msdcs.corp.local
# DNS over TLS
dig +tls _ldap._tcp.dc._msdcs.corp.local
</syntaxhighlight>
==== 4. Header Spoofing ====
Modify request headers to bypass WAF:
<syntaxhighlight lang="bash">
# Spoofed HTTP headers
curl -H "X-Forwarded-For: 10.0.0.1" \
-H "User-Agent: Mozilla/5.0" \
ldap://dc1.corp.local
</syntaxhighlight>
==== 5. Timing-Based Evasion ====
Slow down requests to avoid rate limiting:
<syntaxhighlight lang="bash">
# Rate-limited LDAP queries
for i in {1..100}; do
ldapsearch -x -H ldap://dc1.corp.local ... &
sleep 0.5 # Slow rate
done
</syntaxhighlight>
{{Warning|WAF bypass techniques may be blocked or considered excessive. Always stay within authorized scope and rules of engagement.}}
---
=== ADPenTest DC Discovery Workflow ===
How ADPenTest orchestrates DC discovery:
<syntaxhighlight lang="text">
ADPenTest DC Discovery Process:
1. Parse Target Domain
└─ Extract domain name, check format
2. Execute Discovery Methods (parallel)
├─ DNS SRV Records
│ └─ Query _ldap._tcp.dc._msdcs.domain
├─ LDAP RootDSE
│ └─ Anonymous LDAP query
├─ Port Scanning
│ └─ nmap common DC ports
└─ Subnet Scanning (if enabled)
└─ masscan/nmap on networks
3. Aggregate Results
├─ Combine all discoveries
├─ Remove duplicates
└─ Calculate confidence scores
4. Validate Discoveries
├─ Verify each DC
├─ Test connectivity
├─ Enumerate capabilities
└─ Identify roles
5. Report Results
├─ List discovered DCs
├─ Show confidence levels
├─ Display roles/capabilities
└─ Suggest next steps
</syntaxhighlight>
---
=== Practical DC Discovery Examples ===
==== Example 1: Simple Discovery ====
<syntaxhighlight lang="bash">
# Basic discovery
adpentest --target corp.local --discovery-only
# Output:
# Domain: corp.local
# Discovered Domain Controllers:
# 1. DC1.corp.local (192.168.1.10)
# - Confidence: 100%
# - OS: Windows Server 2022
# - Role: PDC Emulator
#
# 2. DC2.corp.local (192.168.1.11)
# - Confidence: 95%
# - OS: Windows Server 2019
# - Role: Global Catalog
</syntaxhighlight>
==== Example 2: Multi-Method Discovery ====
<syntaxhighlight lang="bash">
# Comprehensive discovery with all methods
adpentest --target corp.local \
--discovery-methods dns,ldap,port-scan,subnet-scan \
--network 192.168.1.0/24 \
--discovery-only
# Combines all methods for maximum coverage
</syntaxhighlight>
==== Example 3: Filter by Confidence ====
<syntaxhighlight lang="bash">
# Only high-confidence results
adpentest --target corp.local \
--discovery-only \
--min-confidence 90
# Only returns DCs with 90%+ confidence
</syntaxhighlight>
---
=== Troubleshooting DC Discovery ===
{| class="wikitable"
|-
! Problem !! Likely Cause !! Solution
|-
| No DCs discovered || DNS blocked || Try LDAP or port-scan methods
|-
| Incomplete DC list || WAF filtering || Use bypass techniques or expanded scope
|-
| Low confidence scores || Mixed results || Cross-validate with multiple methods
|-
| Timeout errors || Network latency || Increase timeout value
|-
| Authentication errors || Credentials invalid || Verify credentials, check LDAP access
|-
| "Domain not found" || Invalid domain name || Verify domain name spelling
|}
---
=== Knowledge Check ===
Test your DC discovery knowledge:
# Why is Domain Controller discovery critical in AD penetration testing?
# Name four DC discovery methods used by ADPenTest.
# What is a DNS SRV record and why is it useful for DC discovery?
# Explain what confidence scoring means in DC discovery.
# What are three common DC ports and their protocols?
# What is the purpose of a PDC Emulator?
# What is a Global Catalog server and what does it store?
# Name three WAF bypass techniques for DC discovery.
# How would you discover DCs in a firewalled environment?
# True or False: All discovered servers with common DC ports are definitely Domain Controllers.
{{Note|Answers: 1) DCs control auth, are high-value targets, control all AD data 2) DNS SRV, LDAP RootDSE, port scanning, subnet scanning 3) DNS record advertising Kerberos services; useful because all DCs register themselves 4) Confidence level that discovered server is actually a DC 5) 53 (DNS), 88 (Kerberos), 389 (LDAP), 445 (SMB), 3268 (Global Catalog) 6) Handles password changes, serves as time source 7) Holds forest-wide replicated objects, faster queries 8) Raw protocol tunneling, TCP fragmentation, DNS over HTTPS, header spoofing, timing-based evasion 9) Try LDAP/Kerberos methods, use DNS over HTTPS, slower requests, WAF bypass techniques 10) False - could be other servers; need confirmation}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Discover Domain Controllers in Your Lab'''
1. '''Identify Target Domain:'''
- Note your lab domain name (e.g., corp.local)
- Verify network access
2. '''DNS SRV Discovery:'''
- Query: `nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.local`
- Record discovered DCs
- Note confidence (should be 100%)
3. '''LDAP Discovery:'''
- Query: `ldapsearch -x -H ldap://corp.local -b "" -s base "*"`
- Identify LDAP server
- Extract dnsHostName attribute
- Compare with DNS results
4. '''Port Scanning:'''
- Scan network for common DC ports: 53, 88, 389, 445, 3268
- Identify servers with multiple DC ports open
- Verify against DNS/LDAP results
5. '''ADPenTest Discovery:'''
- Run: `adpentest --target corp.local --discovery-only`
- Review discovered DCs
- Check confidence scores
- Compare with manual results
6. '''DC Information Gathering:'''
- Query each discovered DC
- Identify roles (PDC Emulator, GC, etc.)
- Check OS version
- Document findings
7. '''Validation:'''
- Verify all DCs discovered
- Confirm no false positives
- Document methodology used
- Create summary report
Success Criteria:
- All DCs in domain discovered
- High confidence scores
- Roles identified
- Cross-validated with multiple methods
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration|Chapter 8: Reconnaissance and Enumeration]]
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/forest-design-models Microsoft Learn: Forest Design]
* [https://attack.mitre.org/tactics/TA0007/ MITRE ATT&CK: Discovery]
* [https://nmap.org/ Nmap Documentation]
---
[[Category:ADPenTest Framework]]
[[Category:Domain Controller Discovery]]
{{BookCat}}
5ge9khc3phepg4h3mjfs1h94gca1gwc
Active Directory Security and Penetration Testing/Chapter 8 - Reconnaissance and Enumeration
0
485830
4672116
4672037
2026-09-24T12:18:02Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672116
wikitext
text/x-wiki
== Chapter 8: Reconnaissance and Enumeration ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* The difference between reconnaissance and enumeration in AD testing
* SMB-based enumeration techniques
* LDAP query methods for AD discovery
* DNS enumeration for AD infrastructure
* User and group discovery techniques
* Computer and service discovery
* How to identify valuable targets
* How ADPenTest automates enumeration
* Common enumeration tools and their uses
* How to interpret enumeration results
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* Understanding of SMB, LDAP, and DNS protocols
* Basic Active Directory concepts from [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1]]
* Network connectivity to target domain
---
=== Reconnaissance vs. Enumeration ===
Two critical phases that often overlap.
==== Reconnaissance ====
'''Reconnaissance''' is gathering information about the target without direct interaction.
* '''Passive''' - No direct system contact
* '''External''' - Uses public information
* '''Low risk''' - Difficult to detect
* '''Examples:''' DNS queries, OSINT, public records
==== Enumeration ====
'''Enumeration''' is active probing to discover specific resources and information.
* '''Active''' - Direct system interaction
* '''Internal''' - Requires network access
* '''Higher risk''' - Can be detected
* '''Examples:''' LDAP queries, SMB scans, user listings
{{Note|Modern AD penetration testing combines reconnaissance and enumeration into a continuous discovery process. ADPenTest handles both seamlessly.}}
---
=== SMB Enumeration ===
Server Message Block (SMB) provides rich information about AD infrastructure.
==== SMB Protocol Basics ====
SMB (ports 445, 139) exposes:
* Domain information
* Computer names and details
* User and group information
* Printer and share information
* Session information
==== Null Session Enumeration ====
Anonymous SMB connections can reveal AD information.
===== Checking for Null Sessions =====
<syntaxhighlight lang="bash">
# Test null session access
smbclient -L //dc1.corp.local -N
# If successful, shows shares and computer info
# If blocked: "NT_STATUS_ACCESS_DENIED"
</syntaxhighlight>
===== Enumerating with Null Sessions =====
<syntaxhighlight lang="bash">
# List shares (null session)
smbclient -L //192.168.1.10 -N
# Enumerate users
rpcclient -U "" -N 192.168.1.10 -c "enumdomusers"
# Enumerate groups
rpcclient -U "" -N 192.168.1.10 -c "enumdomgroups"
# Get domain info
rpcclient -U "" -N 192.168.1.10 -c "querydominfo"
</syntaxhighlight>
===== Using CrackMapExec for SMB Enumeration =====
<syntaxhighlight lang="bash">
# Enum shares
crackmapexec smb 192.168.1.0/24 --shares
# Enum users
crackmapexec smb 192.168.1.10 -u '' -p '' --users
# Enum groups
crackmapexec smb 192.168.1.10 -u '' -p '' --groups
# Enum computers
crackmapexec smb 192.168.1.10 -u '' -p '' --computers
</syntaxhighlight>
{{Important|Many organizations disable null sessions. When available, they're extremely valuable for initial enumeration.}}
==== Share Enumeration ====
Discover accessible shares and their contents.
<syntaxhighlight lang="bash">
# List shares on server
net view \\dc1.corp.local
# Connect to share
smbclient \\\\dc1.corp.local\\share_name -U username
# Mount share (Linux)
mount -t cifs \\\\192.168.1.10\\share_name /mnt/share -o username=user
</syntaxhighlight>
===== Common Share Names to Probe =====
* <code>ADMIN$</code> - Administrative share
* <code>C$</code>, <code>D$</code> - Drive letters
* <code>SYSVOL</code> - Group Policy scripts
* <code>NETLOGON</code> - Logon scripts
* <code>Users</code> - User profiles
* <code>Documents</code> - Shared documents
{{Warning|Accessing shares without authorization is illegal. Only access shares you have explicit permission to enumerate.}}
==== Group Policy Discovery ====
Group Policy files stored on SYSVOL contain useful information.
<syntaxhighlight lang="bash">
# Connect to SYSVOL share
smbclient \\\\dc1.corp.local\\SYSVOL -U user
# List directory
dir
# Download GPO files
get Groups.xml
get gpsecurity.txt
</syntaxhighlight>
===== Sensitive Information in Group Policy =====
* Passwords in GPP (Group Policy Preferences)
* Scheduled task configurations
* Service account credentials
* Printer configurations
* Software deployment settings
{{Important|Group Policy files often contain credentials or other sensitive data. They should be carefully reviewed.}}
---
=== LDAP Enumeration ===
LDAP (Lightweight Directory Access Protocol) provides comprehensive AD information.
==== LDAP Basics ====
LDAP ports: 389 (clear), 636 (SSL)
LDAP allows querying:
* Users and their attributes
* Groups and memberships
* Computers and their properties
* Organizational structure
* Service accounts and SPNs
==== Anonymous LDAP Queries ====
Many systems allow anonymous LDAP access.
===== Basic LDAP Query =====
<syntaxhighlight lang="bash">
# Simple LDAP query (no authentication)
ldapsearch -x -H ldap://dc1.corp.local \
-b "DC=corp,DC=local" \
-s sub "(objectClass=*)"
</syntaxhighlight>
===== Query Parameters =====
* <code>-x</code> - Simple authentication (no Kerberos)
* <code>-H</code> - LDAP URL (ldap:// or ldaps://)
* <code>-b</code> - Search base (DN)
* <code>-s</code> - Search scope (base, one, sub, subordinate)
===== Search Scopes =====
* <code>base</code> - Search only the base object
* <code>one</code> - Search one level below base
* <code>sub</code> - Search recursively from base
* <code>subordinate</code> - Search all below base
==== User Enumeration ====
Query all users in the domain.
<syntaxhighlight lang="bash">
# Enumerate all users
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=user" \
sAMAccountName displayName mail
# Output shows:
# sAMAccountName: john.smith
# displayName: John Smith
# mail: john.smith@corp.local
</syntaxhighlight>
===== Useful User Attributes =====
{| class="wikitable"
|-
! Attribute !! Purpose !! Example
|-
| sAMAccountName || Username || john.smith
|-
| displayName || Full name || John Smith
|-
| mail || Email address || john.smith@corp.local
|-
| telephoneNumber || Phone || 555-1234
|-
| department || Department || Engineering
|-
| title || Job title || Senior Engineer
|-
| manager || Manager DN || CN=Jane Doe,...
|-
| memberOf || Groups || CN=Engineers,...
|-
| userAccountControl || Account status || 512 (enabled)
|-
| pwdLastSet || Password change date || Timestamp
|-
| lastLogon || Last logon time || Timestamp
|}
==== Group Enumeration ====
Query all groups and memberships.
<syntaxhighlight lang="bash">
# List all groups
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=group" \
sAMAccountName description
# Get group membership
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"sAMAccountName=Domain Admins" \
member
# Output shows all members of Domain Admins
</syntaxhighlight>
===== Privileged Groups to Identify =====
* <code>Domain Admins</code> - Full domain control
* <code>Enterprise Admins</code> - Forest-wide admin
* <code>Schema Admins</code> - Schema modifications
* <code>Account Operators</code> - User/computer management
* <code>Backup Operators</code> - Backup privileges
* <code>Server Operators</code> - Server management
* <code>Remote Desktop Users</code> - RDP access
{{Important|Identifying who is in privileged groups is critical for targeting high-value accounts.}}
==== Computer Enumeration ====
Discover computers in the domain.
<syntaxhighlight lang="bash">
# List all computers
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=computer" \
name operatingSystem dNSHostName
# Results show:
# name: WORKSTATION-01
# operatingSystem: Windows 10 Enterprise
# dNSHostName: workstation-01.corp.local
</syntaxhighlight>
===== Useful Computer Attributes =====
* <code>name</code> - Computer name
* <code>operatingSystem</code> - OS version
* <code>operatingSystemVersion</code> - OS build
* <code>dNSHostName</code> - Fully qualified name
* <code>pwdLastSet</code> - Last password change
* <code>lastLogon</code> - Last logon timestamp
* <code>enabled</code> - Account status
==== Service Principal Name (SPN) Enumeration ====
Discover services and applications.
<syntaxhighlight lang="bash">
# Find all SPNs
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"servicePrincipalName=*" \
sAMAccountName servicePrincipalName
# Results show:
# sAMAccountName: admin.service
# servicePrincipalName: HTTP/webserver.corp.local
# servicePrincipalName: HTTP/webserver
</syntaxhighlight>
===== Common Service Types =====
* <code>HTTP/</code> - Web services
* <code>MSSQLSvc/</code> - SQL Server
* <code>LDAP/</code> - LDAP services
* <code>Kerberos/</code> - Kerberos services
* <code>HOST/</code> - Computer accounts
* <code>RestrictedKrbHost/</code> - Restricted Kerberos
{{Note|SPNs are targets for Kerberoasting attacks. See [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9]] for details.}}
==== LDAP Filter Examples ====
Common LDAP filters for targeting:
<syntaxhighlight lang="bash">
# Disabled accounts
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(userAccountControl:1.2.840.113556.1.4.803:=2)"
# Accounts with no password expiry
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(|(userAccountControl:1.2.840.113556.1.4.803:=65536)(userAccountControl:1.2.840.113556.1.4.803:=262144))"
# Service accounts (common naming)
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(|(sAMAccountName=*service*)(sAMAccountName=*svc*))"
# Kerberoastable accounts
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(&(sAMAccountName!=krbtgt)(servicePrincipalName=*))"
</syntaxhighlight>
---
=== DNS Enumeration ===
Domain Name System reveals AD infrastructure.
==== Zone Transfers ====
Complete copy of DNS zone (if misconfigured).
<syntaxhighlight lang="bash">
# Attempt zone transfer
dig axfr @dns.corp.local corp.local
# If successful, shows all DNS records:
# corp.local. IN SOA ...
# dc1.corp.local. IN A 192.168.1.10
# dc2.corp.local. IN A 192.168.1.11
# etc.
</syntaxhighlight>
{{Warning|Zone transfers should not be allowed to unauthenticated users. Many organizations still have this misconfiguration.}}
==== SRV Record Queries ====
Service records reveal infrastructure.
<syntaxhighlight lang="bash">
# Kerberos services
dig SRV _kerberos._tcp.dc._msdcs.corp.local
dig SRV _ldap._tcp.dc._msdcs.corp.local
# Global Catalog
dig SRV _gc._tcp.corp.local
# LDAP
dig SRV _ldap._tcp.corp.local
# Kerberos Password Change
dig SRV _kpasswd._tcp.corp.local
</syntaxhighlight>
==== A Record Queries ====
Resolve services to IP addresses.
<syntaxhighlight lang="bash">
# Resolve domain
dig A corp.local
# Resolve DC
dig A dc1.corp.local
# Resolve services
dig A webserver.corp.local
dig A mailserver.corp.local
</syntaxhighlight>
==== Reverse DNS Lookups ====
Identify servers from IP addresses.
<syntaxhighlight lang="bash">
# Reverse lookup
dig -x 192.168.1.10
# Returns: dc1.corp.local
# Reverse zone transfer
dig axfr @dns.corp.local 1.168.192.in-addr.arpa
</syntaxhighlight>
---
=== Automated Enumeration Tools ===
==== ADPenTest Enumeration ====
Orchestrates all enumeration methods.
<syntaxhighlight lang="bash">
# Run enumeration phase
adpentest --target corp.local \
--phases enumeration \
--scope-confirmed
# Generates comprehensive report:
# - All users and groups
# - All computers
# - All services and SPNs
# - Permission analysis
# - Privilege mapping
</syntaxhighlight>
==== ldapdomaindump ====
Comprehensive LDAP enumeration tool.
<syntaxhighlight lang="bash">
# Full domain dump
ldapdomaindump corp.local \
-u 'CORP\username' \
-p 'password'
# Generates CSV files:
# - computers.csv
# - groups.csv
# - users.csv
# - policy.csv
# - memberships.csv
</syntaxhighlight>
==== Impacket Tools ====
Python-based AD tools.
<syntaxhighlight lang="bash">
# Get user information
python3 GetADUsers.py -all corp.local/username:password
# Get domain info
python3 GetDomainInfo.py corp.local/username:password
# Get group information
python3 GetNPUsers.py corp.local/username:password
</syntaxhighlight>
==== BloodHound ====
Attack path visualization.
<syntaxhighlight lang="bash">
# Collect data
python3 bloodhound.py -u 'username' -p 'password' \
-d corp.local -ns 192.168.1.10 \
-c All
# Generates JSON files for analysis
# Open in BloodHound GUI for visualization
</syntaxhighlight>
---
=== Building a Target Profile ===
Enumeration results reveal high-value targets.
==== User Targeting ====
Identify valuable user accounts:
<syntaxhighlight lang="text">
Target Profile for john.smith:
├─ Account Status: Enabled
├─ Last Logon: 2 days ago (recently active)
├─ Groups:
│ ├─ Domain Admins ⚠️ (HIGH PRIORITY)
│ ├─ Backup Operators
│ └─ Remote Desktop Users
├─ Services: None
├─ Password Expiry: No (never expires) ⚠️
└─ Risk Level: CRITICAL
→ Compromising this account = domain compromise
</syntaxhighlight>
==== Service Account Targeting ====
Identify service accounts for exploitation:
<syntaxhighlight lang="text">
Target Profile for admin.service:
├─ Account Type: Service Account
├─ Services:
│ ├─ HTTP/webserver.corp.local (Kerberoastable)
│ └─ HTTP/sqlserver.corp.local (Kerberoastable)
├─ Groups: Domain Users (minimal privileges)
├─ Password: Unknown
├─ Kerberoastable: YES ⚠️
└─ Attack Path: Kerberoast → Credential Recovery → Access
</syntaxhighlight>
==== Computer Targeting ====
Identify valuable systems:
<syntaxhighlight lang="text">
Target Profile for SERVER-01:
├─ OS: Windows Server 2022
├─ Active: YES (last logon: today)
├─ Services: SQL Server, IIS
├─ Users Logged In: Administrator, ServiceAccount
├─ Shares: ADMIN$, C$, SYSVOL
├─ Vulnerabilities: Unconstrained Delegation ⚠️
└─ Priority: HIGH
→ Compromising = access to database
</syntaxhighlight>
---
=== Enumeration Output Analysis ===
==== Interpreting Results ====
Useful metrics from enumeration:
{| class="wikitable"
|-
! Metric !! Indicates !! Concern Level
|-
| Null sessions allowed || SMB misconfiguration || HIGH
|-
| Anonymous LDAP access || LDAP misconfiguration || MEDIUM
|-
| Weak passwords || Policy misconfiguration || HIGH
|-
| Passwords never expire || Policy misconfiguration || HIGH
|-
| Service accounts in admin groups || Over-privileging || MEDIUM
|-
| Kerberoastable accounts || Vulnerable SPNs || MEDIUM
|-
| Disabled accounts || Stale/unused accounts || LOW
|-
| Recently modified GPO || Active testing/changes || MEDIUM
|}
==== Creating Enumeration Report ====
Document findings:
<syntaxhighlight lang="text">
Enumeration Summary Report
==========================
Domain: corp.local
Enumeration Date: 2025-09-24
Methodology: SMB, LDAP, DNS
USERS DISCOVERED
├─ Total: 1,247
├─ Enabled: 1,189
├─ Disabled: 58
├─ Service Accounts: 45
├─ Never Expires: 123 ⚠️
GROUPS DISCOVERED
├─ Total: 234
├─ Privileged Groups: 12
│ ├─ Domain Admins: 8 members
│ ├─ Enterprise Admins: 3 members
│ └─ Schema Admins: 2 members
COMPUTERS DISCOVERED
├─ Total: 456
├─ Domain Controllers: 3
├─ Servers: 67
├─ Workstations: 386
SERVICES DISCOVERED
├─ Total: 234
├─ Kerberoastable: 45 ⚠️
├─ HTTP Services: 89
├─ SQL Services: 23
└─ Other Services: 77
HIGH-VALUE TARGETS IDENTIFIED
├─ john.smith (Domain Admin, no password expiry)
├─ admin.service (Kerberoastable, high privileges)
└─ SERVER-01 (Unconstrained delegation, SQL services)
</syntaxhighlight>
---
=== Knowledge Check ===
Test your enumeration knowledge:
# What is the difference between reconnaissance and enumeration?
# Name three SMB enumeration techniques.
# What is LDAP and what information can it reveal?
# What is a Service Principal Name (SPN) and why is it important?
# How would you enumerate all users in a domain using LDAP?
# What are privileged groups and why should you identify them?
# What is a zone transfer and when is it useful?
# Name three enumeration tools used in AD penetration testing.
# How would you identify Kerberoastable accounts?
# True or False: Anonymous LDAP queries are always blocked.
{{Note|Answers: 1) Recon is passive, enumeration is active probing 2) Null sessions, share enumeration, group policy discovery 3) Directory protocol; users, groups, computers, services, SPNs 4) Service identifier; used for targeting and Kerberoasting 5) ldapsearch with objectClass=user filter 6) Admin/high privilege groups; compromising members = domain compromise 7) Complete DNS zone copy if misconfigured; reveals all infrastructure 8) ADPenTest, ldapdomaindump, crackmapexec, impacket, BloodHound 9) Query for servicePrincipalName attributes in LDAP 10) False - many systems allow anonymous LDAP}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Enumerate Your Lab Domain'''
1. '''Prepare Lab:'''
- Ensure connectivity to lab domain
- Have valid domain credentials ready
2. '''SMB Enumeration:'''
- Check for null sessions: `smbclient -L //dc1.corp.local -N`
- Enumerate users: `rpcclient -U "" -N dc1 -c "enumdomusers"`
- Try crackmapexec: `crackmapexec smb 192.168.1.10 --users`
3. '''LDAP Enumeration:'''
- List users: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "objectClass=user"`
- List groups: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "objectClass=group"`
- Find SPNs: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "servicePrincipalName=*"`
4. '''DNS Enumeration:'''
- Query A records: `dig A corp.local`
- Query SRV records: `dig SRV _ldap._tcp.dc._msdcs.corp.local`
- Attempt zone transfer: `dig axfr @dc1 corp.local`
5. '''Automated Tools:'''
- Run ldapdomaindump
- Run crackmapexec full scan
- Try ADPenTest enumeration: `adpentest --target corp.local --phases enumeration`
6. '''Analysis:'''
- Document users found
- Identify privileged accounts
- Find service accounts with SPNs
- Locate computers and services
- Create target profile for top 3 accounts
7. '''Reporting:'''
- Create enumeration summary
- Document high-value targets
- List potential attack paths
- Prioritize by risk level
Success Criteria:
- All users enumerated
- Privileged groups identified
- Service accounts located
- SPNs discovered
- Target profiles created
- At least 5 potential attack paths identified
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [[Active Directory Security and Penetration Testing/Chapter 11 - Privilege Escalation|Chapter 11: Privilege Escalation]]
* [[Active Directory Security and Penetration Testing/Chapter 14 - Scan Results and Reporting|Chapter 14: Scan Results and Reporting]]
* [https://www.offsec.com/metasploit-unleashed/smb-enumeration SMB Enumeration Guide]
* [https://book.hacktricks.xyz/windows-hardening/active-directory-methodology AD Methodology Reference]
* [https://bloodhound.readthedocs.io/ BloodHound Documentation]
---
[[Category:Active Directory Security and Penetration Testing]]
[[Category:Enumeration and Discovery]]
[[Category:Attack Vectors]]
{{BookCat}}
0l602bewuwg6a0k61rt0fvkwzn2gi1t
4672135
4672116
2026-09-24T12:21:11Z
MathXplore
3097823
removed [[Category:Active Directory Security and Penetration Testing]] using [[Help:Gadget-HotCat|HotCat]]
4672135
wikitext
text/x-wiki
== Chapter 8: Reconnaissance and Enumeration ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* The difference between reconnaissance and enumeration in AD testing
* SMB-based enumeration techniques
* LDAP query methods for AD discovery
* DNS enumeration for AD infrastructure
* User and group discovery techniques
* Computer and service discovery
* How to identify valuable targets
* How ADPenTest automates enumeration
* Common enumeration tools and their uses
* How to interpret enumeration results
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* Understanding of SMB, LDAP, and DNS protocols
* Basic Active Directory concepts from [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1]]
* Network connectivity to target domain
---
=== Reconnaissance vs. Enumeration ===
Two critical phases that often overlap.
==== Reconnaissance ====
'''Reconnaissance''' is gathering information about the target without direct interaction.
* '''Passive''' - No direct system contact
* '''External''' - Uses public information
* '''Low risk''' - Difficult to detect
* '''Examples:''' DNS queries, OSINT, public records
==== Enumeration ====
'''Enumeration''' is active probing to discover specific resources and information.
* '''Active''' - Direct system interaction
* '''Internal''' - Requires network access
* '''Higher risk''' - Can be detected
* '''Examples:''' LDAP queries, SMB scans, user listings
{{Note|Modern AD penetration testing combines reconnaissance and enumeration into a continuous discovery process. ADPenTest handles both seamlessly.}}
---
=== SMB Enumeration ===
Server Message Block (SMB) provides rich information about AD infrastructure.
==== SMB Protocol Basics ====
SMB (ports 445, 139) exposes:
* Domain information
* Computer names and details
* User and group information
* Printer and share information
* Session information
==== Null Session Enumeration ====
Anonymous SMB connections can reveal AD information.
===== Checking for Null Sessions =====
<syntaxhighlight lang="bash">
# Test null session access
smbclient -L //dc1.corp.local -N
# If successful, shows shares and computer info
# If blocked: "NT_STATUS_ACCESS_DENIED"
</syntaxhighlight>
===== Enumerating with Null Sessions =====
<syntaxhighlight lang="bash">
# List shares (null session)
smbclient -L //192.168.1.10 -N
# Enumerate users
rpcclient -U "" -N 192.168.1.10 -c "enumdomusers"
# Enumerate groups
rpcclient -U "" -N 192.168.1.10 -c "enumdomgroups"
# Get domain info
rpcclient -U "" -N 192.168.1.10 -c "querydominfo"
</syntaxhighlight>
===== Using CrackMapExec for SMB Enumeration =====
<syntaxhighlight lang="bash">
# Enum shares
crackmapexec smb 192.168.1.0/24 --shares
# Enum users
crackmapexec smb 192.168.1.10 -u '' -p '' --users
# Enum groups
crackmapexec smb 192.168.1.10 -u '' -p '' --groups
# Enum computers
crackmapexec smb 192.168.1.10 -u '' -p '' --computers
</syntaxhighlight>
{{Important|Many organizations disable null sessions. When available, they're extremely valuable for initial enumeration.}}
==== Share Enumeration ====
Discover accessible shares and their contents.
<syntaxhighlight lang="bash">
# List shares on server
net view \\dc1.corp.local
# Connect to share
smbclient \\\\dc1.corp.local\\share_name -U username
# Mount share (Linux)
mount -t cifs \\\\192.168.1.10\\share_name /mnt/share -o username=user
</syntaxhighlight>
===== Common Share Names to Probe =====
* <code>ADMIN$</code> - Administrative share
* <code>C$</code>, <code>D$</code> - Drive letters
* <code>SYSVOL</code> - Group Policy scripts
* <code>NETLOGON</code> - Logon scripts
* <code>Users</code> - User profiles
* <code>Documents</code> - Shared documents
{{Warning|Accessing shares without authorization is illegal. Only access shares you have explicit permission to enumerate.}}
==== Group Policy Discovery ====
Group Policy files stored on SYSVOL contain useful information.
<syntaxhighlight lang="bash">
# Connect to SYSVOL share
smbclient \\\\dc1.corp.local\\SYSVOL -U user
# List directory
dir
# Download GPO files
get Groups.xml
get gpsecurity.txt
</syntaxhighlight>
===== Sensitive Information in Group Policy =====
* Passwords in GPP (Group Policy Preferences)
* Scheduled task configurations
* Service account credentials
* Printer configurations
* Software deployment settings
{{Important|Group Policy files often contain credentials or other sensitive data. They should be carefully reviewed.}}
---
=== LDAP Enumeration ===
LDAP (Lightweight Directory Access Protocol) provides comprehensive AD information.
==== LDAP Basics ====
LDAP ports: 389 (clear), 636 (SSL)
LDAP allows querying:
* Users and their attributes
* Groups and memberships
* Computers and their properties
* Organizational structure
* Service accounts and SPNs
==== Anonymous LDAP Queries ====
Many systems allow anonymous LDAP access.
===== Basic LDAP Query =====
<syntaxhighlight lang="bash">
# Simple LDAP query (no authentication)
ldapsearch -x -H ldap://dc1.corp.local \
-b "DC=corp,DC=local" \
-s sub "(objectClass=*)"
</syntaxhighlight>
===== Query Parameters =====
* <code>-x</code> - Simple authentication (no Kerberos)
* <code>-H</code> - LDAP URL (ldap:// or ldaps://)
* <code>-b</code> - Search base (DN)
* <code>-s</code> - Search scope (base, one, sub, subordinate)
===== Search Scopes =====
* <code>base</code> - Search only the base object
* <code>one</code> - Search one level below base
* <code>sub</code> - Search recursively from base
* <code>subordinate</code> - Search all below base
==== User Enumeration ====
Query all users in the domain.
<syntaxhighlight lang="bash">
# Enumerate all users
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=user" \
sAMAccountName displayName mail
# Output shows:
# sAMAccountName: john.smith
# displayName: John Smith
# mail: john.smith@corp.local
</syntaxhighlight>
===== Useful User Attributes =====
{| class="wikitable"
|-
! Attribute !! Purpose !! Example
|-
| sAMAccountName || Username || john.smith
|-
| displayName || Full name || John Smith
|-
| mail || Email address || john.smith@corp.local
|-
| telephoneNumber || Phone || 555-1234
|-
| department || Department || Engineering
|-
| title || Job title || Senior Engineer
|-
| manager || Manager DN || CN=Jane Doe,...
|-
| memberOf || Groups || CN=Engineers,...
|-
| userAccountControl || Account status || 512 (enabled)
|-
| pwdLastSet || Password change date || Timestamp
|-
| lastLogon || Last logon time || Timestamp
|}
==== Group Enumeration ====
Query all groups and memberships.
<syntaxhighlight lang="bash">
# List all groups
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=group" \
sAMAccountName description
# Get group membership
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"sAMAccountName=Domain Admins" \
member
# Output shows all members of Domain Admins
</syntaxhighlight>
===== Privileged Groups to Identify =====
* <code>Domain Admins</code> - Full domain control
* <code>Enterprise Admins</code> - Forest-wide admin
* <code>Schema Admins</code> - Schema modifications
* <code>Account Operators</code> - User/computer management
* <code>Backup Operators</code> - Backup privileges
* <code>Server Operators</code> - Server management
* <code>Remote Desktop Users</code> - RDP access
{{Important|Identifying who is in privileged groups is critical for targeting high-value accounts.}}
==== Computer Enumeration ====
Discover computers in the domain.
<syntaxhighlight lang="bash">
# List all computers
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=computer" \
name operatingSystem dNSHostName
# Results show:
# name: WORKSTATION-01
# operatingSystem: Windows 10 Enterprise
# dNSHostName: workstation-01.corp.local
</syntaxhighlight>
===== Useful Computer Attributes =====
* <code>name</code> - Computer name
* <code>operatingSystem</code> - OS version
* <code>operatingSystemVersion</code> - OS build
* <code>dNSHostName</code> - Fully qualified name
* <code>pwdLastSet</code> - Last password change
* <code>lastLogon</code> - Last logon timestamp
* <code>enabled</code> - Account status
==== Service Principal Name (SPN) Enumeration ====
Discover services and applications.
<syntaxhighlight lang="bash">
# Find all SPNs
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"servicePrincipalName=*" \
sAMAccountName servicePrincipalName
# Results show:
# sAMAccountName: admin.service
# servicePrincipalName: HTTP/webserver.corp.local
# servicePrincipalName: HTTP/webserver
</syntaxhighlight>
===== Common Service Types =====
* <code>HTTP/</code> - Web services
* <code>MSSQLSvc/</code> - SQL Server
* <code>LDAP/</code> - LDAP services
* <code>Kerberos/</code> - Kerberos services
* <code>HOST/</code> - Computer accounts
* <code>RestrictedKrbHost/</code> - Restricted Kerberos
{{Note|SPNs are targets for Kerberoasting attacks. See [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9]] for details.}}
==== LDAP Filter Examples ====
Common LDAP filters for targeting:
<syntaxhighlight lang="bash">
# Disabled accounts
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(userAccountControl:1.2.840.113556.1.4.803:=2)"
# Accounts with no password expiry
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(|(userAccountControl:1.2.840.113556.1.4.803:=65536)(userAccountControl:1.2.840.113556.1.4.803:=262144))"
# Service accounts (common naming)
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(|(sAMAccountName=*service*)(sAMAccountName=*svc*))"
# Kerberoastable accounts
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(&(sAMAccountName!=krbtgt)(servicePrincipalName=*))"
</syntaxhighlight>
---
=== DNS Enumeration ===
Domain Name System reveals AD infrastructure.
==== Zone Transfers ====
Complete copy of DNS zone (if misconfigured).
<syntaxhighlight lang="bash">
# Attempt zone transfer
dig axfr @dns.corp.local corp.local
# If successful, shows all DNS records:
# corp.local. IN SOA ...
# dc1.corp.local. IN A 192.168.1.10
# dc2.corp.local. IN A 192.168.1.11
# etc.
</syntaxhighlight>
{{Warning|Zone transfers should not be allowed to unauthenticated users. Many organizations still have this misconfiguration.}}
==== SRV Record Queries ====
Service records reveal infrastructure.
<syntaxhighlight lang="bash">
# Kerberos services
dig SRV _kerberos._tcp.dc._msdcs.corp.local
dig SRV _ldap._tcp.dc._msdcs.corp.local
# Global Catalog
dig SRV _gc._tcp.corp.local
# LDAP
dig SRV _ldap._tcp.corp.local
# Kerberos Password Change
dig SRV _kpasswd._tcp.corp.local
</syntaxhighlight>
==== A Record Queries ====
Resolve services to IP addresses.
<syntaxhighlight lang="bash">
# Resolve domain
dig A corp.local
# Resolve DC
dig A dc1.corp.local
# Resolve services
dig A webserver.corp.local
dig A mailserver.corp.local
</syntaxhighlight>
==== Reverse DNS Lookups ====
Identify servers from IP addresses.
<syntaxhighlight lang="bash">
# Reverse lookup
dig -x 192.168.1.10
# Returns: dc1.corp.local
# Reverse zone transfer
dig axfr @dns.corp.local 1.168.192.in-addr.arpa
</syntaxhighlight>
---
=== Automated Enumeration Tools ===
==== ADPenTest Enumeration ====
Orchestrates all enumeration methods.
<syntaxhighlight lang="bash">
# Run enumeration phase
adpentest --target corp.local \
--phases enumeration \
--scope-confirmed
# Generates comprehensive report:
# - All users and groups
# - All computers
# - All services and SPNs
# - Permission analysis
# - Privilege mapping
</syntaxhighlight>
==== ldapdomaindump ====
Comprehensive LDAP enumeration tool.
<syntaxhighlight lang="bash">
# Full domain dump
ldapdomaindump corp.local \
-u 'CORP\username' \
-p 'password'
# Generates CSV files:
# - computers.csv
# - groups.csv
# - users.csv
# - policy.csv
# - memberships.csv
</syntaxhighlight>
==== Impacket Tools ====
Python-based AD tools.
<syntaxhighlight lang="bash">
# Get user information
python3 GetADUsers.py -all corp.local/username:password
# Get domain info
python3 GetDomainInfo.py corp.local/username:password
# Get group information
python3 GetNPUsers.py corp.local/username:password
</syntaxhighlight>
==== BloodHound ====
Attack path visualization.
<syntaxhighlight lang="bash">
# Collect data
python3 bloodhound.py -u 'username' -p 'password' \
-d corp.local -ns 192.168.1.10 \
-c All
# Generates JSON files for analysis
# Open in BloodHound GUI for visualization
</syntaxhighlight>
---
=== Building a Target Profile ===
Enumeration results reveal high-value targets.
==== User Targeting ====
Identify valuable user accounts:
<syntaxhighlight lang="text">
Target Profile for john.smith:
├─ Account Status: Enabled
├─ Last Logon: 2 days ago (recently active)
├─ Groups:
│ ├─ Domain Admins ⚠️ (HIGH PRIORITY)
│ ├─ Backup Operators
│ └─ Remote Desktop Users
├─ Services: None
├─ Password Expiry: No (never expires) ⚠️
└─ Risk Level: CRITICAL
→ Compromising this account = domain compromise
</syntaxhighlight>
==== Service Account Targeting ====
Identify service accounts for exploitation:
<syntaxhighlight lang="text">
Target Profile for admin.service:
├─ Account Type: Service Account
├─ Services:
│ ├─ HTTP/webserver.corp.local (Kerberoastable)
│ └─ HTTP/sqlserver.corp.local (Kerberoastable)
├─ Groups: Domain Users (minimal privileges)
├─ Password: Unknown
├─ Kerberoastable: YES ⚠️
└─ Attack Path: Kerberoast → Credential Recovery → Access
</syntaxhighlight>
==== Computer Targeting ====
Identify valuable systems:
<syntaxhighlight lang="text">
Target Profile for SERVER-01:
├─ OS: Windows Server 2022
├─ Active: YES (last logon: today)
├─ Services: SQL Server, IIS
├─ Users Logged In: Administrator, ServiceAccount
├─ Shares: ADMIN$, C$, SYSVOL
├─ Vulnerabilities: Unconstrained Delegation ⚠️
└─ Priority: HIGH
→ Compromising = access to database
</syntaxhighlight>
---
=== Enumeration Output Analysis ===
==== Interpreting Results ====
Useful metrics from enumeration:
{| class="wikitable"
|-
! Metric !! Indicates !! Concern Level
|-
| Null sessions allowed || SMB misconfiguration || HIGH
|-
| Anonymous LDAP access || LDAP misconfiguration || MEDIUM
|-
| Weak passwords || Policy misconfiguration || HIGH
|-
| Passwords never expire || Policy misconfiguration || HIGH
|-
| Service accounts in admin groups || Over-privileging || MEDIUM
|-
| Kerberoastable accounts || Vulnerable SPNs || MEDIUM
|-
| Disabled accounts || Stale/unused accounts || LOW
|-
| Recently modified GPO || Active testing/changes || MEDIUM
|}
==== Creating Enumeration Report ====
Document findings:
<syntaxhighlight lang="text">
Enumeration Summary Report
==========================
Domain: corp.local
Enumeration Date: 2025-09-24
Methodology: SMB, LDAP, DNS
USERS DISCOVERED
├─ Total: 1,247
├─ Enabled: 1,189
├─ Disabled: 58
├─ Service Accounts: 45
├─ Never Expires: 123 ⚠️
GROUPS DISCOVERED
├─ Total: 234
├─ Privileged Groups: 12
│ ├─ Domain Admins: 8 members
│ ├─ Enterprise Admins: 3 members
│ └─ Schema Admins: 2 members
COMPUTERS DISCOVERED
├─ Total: 456
├─ Domain Controllers: 3
├─ Servers: 67
├─ Workstations: 386
SERVICES DISCOVERED
├─ Total: 234
├─ Kerberoastable: 45 ⚠️
├─ HTTP Services: 89
├─ SQL Services: 23
└─ Other Services: 77
HIGH-VALUE TARGETS IDENTIFIED
├─ john.smith (Domain Admin, no password expiry)
├─ admin.service (Kerberoastable, high privileges)
└─ SERVER-01 (Unconstrained delegation, SQL services)
</syntaxhighlight>
---
=== Knowledge Check ===
Test your enumeration knowledge:
# What is the difference between reconnaissance and enumeration?
# Name three SMB enumeration techniques.
# What is LDAP and what information can it reveal?
# What is a Service Principal Name (SPN) and why is it important?
# How would you enumerate all users in a domain using LDAP?
# What are privileged groups and why should you identify them?
# What is a zone transfer and when is it useful?
# Name three enumeration tools used in AD penetration testing.
# How would you identify Kerberoastable accounts?
# True or False: Anonymous LDAP queries are always blocked.
{{Note|Answers: 1) Recon is passive, enumeration is active probing 2) Null sessions, share enumeration, group policy discovery 3) Directory protocol; users, groups, computers, services, SPNs 4) Service identifier; used for targeting and Kerberoasting 5) ldapsearch with objectClass=user filter 6) Admin/high privilege groups; compromising members = domain compromise 7) Complete DNS zone copy if misconfigured; reveals all infrastructure 8) ADPenTest, ldapdomaindump, crackmapexec, impacket, BloodHound 9) Query for servicePrincipalName attributes in LDAP 10) False - many systems allow anonymous LDAP}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Enumerate Your Lab Domain'''
1. '''Prepare Lab:'''
- Ensure connectivity to lab domain
- Have valid domain credentials ready
2. '''SMB Enumeration:'''
- Check for null sessions: `smbclient -L //dc1.corp.local -N`
- Enumerate users: `rpcclient -U "" -N dc1 -c "enumdomusers"`
- Try crackmapexec: `crackmapexec smb 192.168.1.10 --users`
3. '''LDAP Enumeration:'''
- List users: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "objectClass=user"`
- List groups: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "objectClass=group"`
- Find SPNs: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "servicePrincipalName=*"`
4. '''DNS Enumeration:'''
- Query A records: `dig A corp.local`
- Query SRV records: `dig SRV _ldap._tcp.dc._msdcs.corp.local`
- Attempt zone transfer: `dig axfr @dc1 corp.local`
5. '''Automated Tools:'''
- Run ldapdomaindump
- Run crackmapexec full scan
- Try ADPenTest enumeration: `adpentest --target corp.local --phases enumeration`
6. '''Analysis:'''
- Document users found
- Identify privileged accounts
- Find service accounts with SPNs
- Locate computers and services
- Create target profile for top 3 accounts
7. '''Reporting:'''
- Create enumeration summary
- Document high-value targets
- List potential attack paths
- Prioritize by risk level
Success Criteria:
- All users enumerated
- Privileged groups identified
- Service accounts located
- SPNs discovered
- Target profiles created
- At least 5 potential attack paths identified
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [[Active Directory Security and Penetration Testing/Chapter 11 - Privilege Escalation|Chapter 11: Privilege Escalation]]
* [[Active Directory Security and Penetration Testing/Chapter 14 - Scan Results and Reporting|Chapter 14: Scan Results and Reporting]]
* [https://www.offsec.com/metasploit-unleashed/smb-enumeration SMB Enumeration Guide]
* [https://book.hacktricks.xyz/windows-hardening/active-directory-methodology AD Methodology Reference]
* [https://bloodhound.readthedocs.io/ BloodHound Documentation]
---
[[Category:Enumeration and Discovery]]
[[Category:Attack Vectors]]
{{BookCat}}
n13lv60dwvn66speq356sr7yuycifrc
4672152
4672135
2026-09-24T15:23:57Z
Kittycataclysm
3371989
flag
4672152
wikitext
text/x-wiki
{{AI-suspected|reason=typographical quirks, broken refs, non-WB categories}}
== Chapter 8: Reconnaissance and Enumeration ==
=== Learning Objectives ===
By the end of this chapter, you will understand:
* The difference between reconnaissance and enumeration in AD testing
* SMB-based enumeration techniques
* LDAP query methods for AD discovery
* DNS enumeration for AD infrastructure
* User and group discovery techniques
* Computer and service discovery
* How to identify valuable targets
* How ADPenTest automates enumeration
* Common enumeration tools and their uses
* How to interpret enumeration results
=== Prerequisites ===
* Completion of [[Active Directory Security and Penetration Testing/Chapter 7 - Domain Controller Discovery|Chapter 7: Domain Controller Discovery]]
* Understanding of SMB, LDAP, and DNS protocols
* Basic Active Directory concepts from [[Active Directory Security and Penetration Testing/Chapter 1 - Active Directory Basics|Chapter 1]]
* Network connectivity to target domain
---
=== Reconnaissance vs. Enumeration ===
Two critical phases that often overlap.
==== Reconnaissance ====
'''Reconnaissance''' is gathering information about the target without direct interaction.
* '''Passive''' - No direct system contact
* '''External''' - Uses public information
* '''Low risk''' - Difficult to detect
* '''Examples:''' DNS queries, OSINT, public records
==== Enumeration ====
'''Enumeration''' is active probing to discover specific resources and information.
* '''Active''' - Direct system interaction
* '''Internal''' - Requires network access
* '''Higher risk''' - Can be detected
* '''Examples:''' LDAP queries, SMB scans, user listings
{{Note|Modern AD penetration testing combines reconnaissance and enumeration into a continuous discovery process. ADPenTest handles both seamlessly.}}
---
=== SMB Enumeration ===
Server Message Block (SMB) provides rich information about AD infrastructure.
==== SMB Protocol Basics ====
SMB (ports 445, 139) exposes:
* Domain information
* Computer names and details
* User and group information
* Printer and share information
* Session information
==== Null Session Enumeration ====
Anonymous SMB connections can reveal AD information.
===== Checking for Null Sessions =====
<syntaxhighlight lang="bash">
# Test null session access
smbclient -L //dc1.corp.local -N
# If successful, shows shares and computer info
# If blocked: "NT_STATUS_ACCESS_DENIED"
</syntaxhighlight>
===== Enumerating with Null Sessions =====
<syntaxhighlight lang="bash">
# List shares (null session)
smbclient -L //192.168.1.10 -N
# Enumerate users
rpcclient -U "" -N 192.168.1.10 -c "enumdomusers"
# Enumerate groups
rpcclient -U "" -N 192.168.1.10 -c "enumdomgroups"
# Get domain info
rpcclient -U "" -N 192.168.1.10 -c "querydominfo"
</syntaxhighlight>
===== Using CrackMapExec for SMB Enumeration =====
<syntaxhighlight lang="bash">
# Enum shares
crackmapexec smb 192.168.1.0/24 --shares
# Enum users
crackmapexec smb 192.168.1.10 -u '' -p '' --users
# Enum groups
crackmapexec smb 192.168.1.10 -u '' -p '' --groups
# Enum computers
crackmapexec smb 192.168.1.10 -u '' -p '' --computers
</syntaxhighlight>
{{Important|Many organizations disable null sessions. When available, they're extremely valuable for initial enumeration.}}
==== Share Enumeration ====
Discover accessible shares and their contents.
<syntaxhighlight lang="bash">
# List shares on server
net view \\dc1.corp.local
# Connect to share
smbclient \\\\dc1.corp.local\\share_name -U username
# Mount share (Linux)
mount -t cifs \\\\192.168.1.10\\share_name /mnt/share -o username=user
</syntaxhighlight>
===== Common Share Names to Probe =====
* <code>ADMIN$</code> - Administrative share
* <code>C$</code>, <code>D$</code> - Drive letters
* <code>SYSVOL</code> - Group Policy scripts
* <code>NETLOGON</code> - Logon scripts
* <code>Users</code> - User profiles
* <code>Documents</code> - Shared documents
{{Warning|Accessing shares without authorization is illegal. Only access shares you have explicit permission to enumerate.}}
==== Group Policy Discovery ====
Group Policy files stored on SYSVOL contain useful information.
<syntaxhighlight lang="bash">
# Connect to SYSVOL share
smbclient \\\\dc1.corp.local\\SYSVOL -U user
# List directory
dir
# Download GPO files
get Groups.xml
get gpsecurity.txt
</syntaxhighlight>
===== Sensitive Information in Group Policy =====
* Passwords in GPP (Group Policy Preferences)
* Scheduled task configurations
* Service account credentials
* Printer configurations
* Software deployment settings
{{Important|Group Policy files often contain credentials or other sensitive data. They should be carefully reviewed.}}
---
=== LDAP Enumeration ===
LDAP (Lightweight Directory Access Protocol) provides comprehensive AD information.
==== LDAP Basics ====
LDAP ports: 389 (clear), 636 (SSL)
LDAP allows querying:
* Users and their attributes
* Groups and memberships
* Computers and their properties
* Organizational structure
* Service accounts and SPNs
==== Anonymous LDAP Queries ====
Many systems allow anonymous LDAP access.
===== Basic LDAP Query =====
<syntaxhighlight lang="bash">
# Simple LDAP query (no authentication)
ldapsearch -x -H ldap://dc1.corp.local \
-b "DC=corp,DC=local" \
-s sub "(objectClass=*)"
</syntaxhighlight>
===== Query Parameters =====
* <code>-x</code> - Simple authentication (no Kerberos)
* <code>-H</code> - LDAP URL (ldap:// or ldaps://)
* <code>-b</code> - Search base (DN)
* <code>-s</code> - Search scope (base, one, sub, subordinate)
===== Search Scopes =====
* <code>base</code> - Search only the base object
* <code>one</code> - Search one level below base
* <code>sub</code> - Search recursively from base
* <code>subordinate</code> - Search all below base
==== User Enumeration ====
Query all users in the domain.
<syntaxhighlight lang="bash">
# Enumerate all users
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=user" \
sAMAccountName displayName mail
# Output shows:
# sAMAccountName: john.smith
# displayName: John Smith
# mail: john.smith@corp.local
</syntaxhighlight>
===== Useful User Attributes =====
{| class="wikitable"
|-
! Attribute !! Purpose !! Example
|-
| sAMAccountName || Username || john.smith
|-
| displayName || Full name || John Smith
|-
| mail || Email address || john.smith@corp.local
|-
| telephoneNumber || Phone || 555-1234
|-
| department || Department || Engineering
|-
| title || Job title || Senior Engineer
|-
| manager || Manager DN || CN=Jane Doe,...
|-
| memberOf || Groups || CN=Engineers,...
|-
| userAccountControl || Account status || 512 (enabled)
|-
| pwdLastSet || Password change date || Timestamp
|-
| lastLogon || Last logon time || Timestamp
|}
==== Group Enumeration ====
Query all groups and memberships.
<syntaxhighlight lang="bash">
# List all groups
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=group" \
sAMAccountName description
# Get group membership
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"sAMAccountName=Domain Admins" \
member
# Output shows all members of Domain Admins
</syntaxhighlight>
===== Privileged Groups to Identify =====
* <code>Domain Admins</code> - Full domain control
* <code>Enterprise Admins</code> - Forest-wide admin
* <code>Schema Admins</code> - Schema modifications
* <code>Account Operators</code> - User/computer management
* <code>Backup Operators</code> - Backup privileges
* <code>Server Operators</code> - Server management
* <code>Remote Desktop Users</code> - RDP access
{{Important|Identifying who is in privileged groups is critical for targeting high-value accounts.}}
==== Computer Enumeration ====
Discover computers in the domain.
<syntaxhighlight lang="bash">
# List all computers
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"objectClass=computer" \
name operatingSystem dNSHostName
# Results show:
# name: WORKSTATION-01
# operatingSystem: Windows 10 Enterprise
# dNSHostName: workstation-01.corp.local
</syntaxhighlight>
===== Useful Computer Attributes =====
* <code>name</code> - Computer name
* <code>operatingSystem</code> - OS version
* <code>operatingSystemVersion</code> - OS build
* <code>dNSHostName</code> - Fully qualified name
* <code>pwdLastSet</code> - Last password change
* <code>lastLogon</code> - Last logon timestamp
* <code>enabled</code> - Account status
==== Service Principal Name (SPN) Enumeration ====
Discover services and applications.
<syntaxhighlight lang="bash">
# Find all SPNs
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"servicePrincipalName=*" \
sAMAccountName servicePrincipalName
# Results show:
# sAMAccountName: admin.service
# servicePrincipalName: HTTP/webserver.corp.local
# servicePrincipalName: HTTP/webserver
</syntaxhighlight>
===== Common Service Types =====
* <code>HTTP/</code> - Web services
* <code>MSSQLSvc/</code> - SQL Server
* <code>LDAP/</code> - LDAP services
* <code>Kerberos/</code> - Kerberos services
* <code>HOST/</code> - Computer accounts
* <code>RestrictedKrbHost/</code> - Restricted Kerberos
{{Note|SPNs are targets for Kerberoasting attacks. See [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9]] for details.}}
==== LDAP Filter Examples ====
Common LDAP filters for targeting:
<syntaxhighlight lang="bash">
# Disabled accounts
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(userAccountControl:1.2.840.113556.1.4.803:=2)"
# Accounts with no password expiry
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(|(userAccountControl:1.2.840.113556.1.4.803:=65536)(userAccountControl:1.2.840.113556.1.4.803:=262144))"
# Service accounts (common naming)
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(|(sAMAccountName=*service*)(sAMAccountName=*svc*))"
# Kerberoastable accounts
ldapsearch -x -H ldap://corp.local \
-b "DC=corp,DC=local" \
"(&(sAMAccountName!=krbtgt)(servicePrincipalName=*))"
</syntaxhighlight>
---
=== DNS Enumeration ===
Domain Name System reveals AD infrastructure.
==== Zone Transfers ====
Complete copy of DNS zone (if misconfigured).
<syntaxhighlight lang="bash">
# Attempt zone transfer
dig axfr @dns.corp.local corp.local
# If successful, shows all DNS records:
# corp.local. IN SOA ...
# dc1.corp.local. IN A 192.168.1.10
# dc2.corp.local. IN A 192.168.1.11
# etc.
</syntaxhighlight>
{{Warning|Zone transfers should not be allowed to unauthenticated users. Many organizations still have this misconfiguration.}}
==== SRV Record Queries ====
Service records reveal infrastructure.
<syntaxhighlight lang="bash">
# Kerberos services
dig SRV _kerberos._tcp.dc._msdcs.corp.local
dig SRV _ldap._tcp.dc._msdcs.corp.local
# Global Catalog
dig SRV _gc._tcp.corp.local
# LDAP
dig SRV _ldap._tcp.corp.local
# Kerberos Password Change
dig SRV _kpasswd._tcp.corp.local
</syntaxhighlight>
==== A Record Queries ====
Resolve services to IP addresses.
<syntaxhighlight lang="bash">
# Resolve domain
dig A corp.local
# Resolve DC
dig A dc1.corp.local
# Resolve services
dig A webserver.corp.local
dig A mailserver.corp.local
</syntaxhighlight>
==== Reverse DNS Lookups ====
Identify servers from IP addresses.
<syntaxhighlight lang="bash">
# Reverse lookup
dig -x 192.168.1.10
# Returns: dc1.corp.local
# Reverse zone transfer
dig axfr @dns.corp.local 1.168.192.in-addr.arpa
</syntaxhighlight>
---
=== Automated Enumeration Tools ===
==== ADPenTest Enumeration ====
Orchestrates all enumeration methods.
<syntaxhighlight lang="bash">
# Run enumeration phase
adpentest --target corp.local \
--phases enumeration \
--scope-confirmed
# Generates comprehensive report:
# - All users and groups
# - All computers
# - All services and SPNs
# - Permission analysis
# - Privilege mapping
</syntaxhighlight>
==== ldapdomaindump ====
Comprehensive LDAP enumeration tool.
<syntaxhighlight lang="bash">
# Full domain dump
ldapdomaindump corp.local \
-u 'CORP\username' \
-p 'password'
# Generates CSV files:
# - computers.csv
# - groups.csv
# - users.csv
# - policy.csv
# - memberships.csv
</syntaxhighlight>
==== Impacket Tools ====
Python-based AD tools.
<syntaxhighlight lang="bash">
# Get user information
python3 GetADUsers.py -all corp.local/username:password
# Get domain info
python3 GetDomainInfo.py corp.local/username:password
# Get group information
python3 GetNPUsers.py corp.local/username:password
</syntaxhighlight>
==== BloodHound ====
Attack path visualization.
<syntaxhighlight lang="bash">
# Collect data
python3 bloodhound.py -u 'username' -p 'password' \
-d corp.local -ns 192.168.1.10 \
-c All
# Generates JSON files for analysis
# Open in BloodHound GUI for visualization
</syntaxhighlight>
---
=== Building a Target Profile ===
Enumeration results reveal high-value targets.
==== User Targeting ====
Identify valuable user accounts:
<syntaxhighlight lang="text">
Target Profile for john.smith:
├─ Account Status: Enabled
├─ Last Logon: 2 days ago (recently active)
├─ Groups:
│ ├─ Domain Admins ⚠️ (HIGH PRIORITY)
│ ├─ Backup Operators
│ └─ Remote Desktop Users
├─ Services: None
├─ Password Expiry: No (never expires) ⚠️
└─ Risk Level: CRITICAL
→ Compromising this account = domain compromise
</syntaxhighlight>
==== Service Account Targeting ====
Identify service accounts for exploitation:
<syntaxhighlight lang="text">
Target Profile for admin.service:
├─ Account Type: Service Account
├─ Services:
│ ├─ HTTP/webserver.corp.local (Kerberoastable)
│ └─ HTTP/sqlserver.corp.local (Kerberoastable)
├─ Groups: Domain Users (minimal privileges)
├─ Password: Unknown
├─ Kerberoastable: YES ⚠️
└─ Attack Path: Kerberoast → Credential Recovery → Access
</syntaxhighlight>
==== Computer Targeting ====
Identify valuable systems:
<syntaxhighlight lang="text">
Target Profile for SERVER-01:
├─ OS: Windows Server 2022
├─ Active: YES (last logon: today)
├─ Services: SQL Server, IIS
├─ Users Logged In: Administrator, ServiceAccount
├─ Shares: ADMIN$, C$, SYSVOL
├─ Vulnerabilities: Unconstrained Delegation ⚠️
└─ Priority: HIGH
→ Compromising = access to database
</syntaxhighlight>
---
=== Enumeration Output Analysis ===
==== Interpreting Results ====
Useful metrics from enumeration:
{| class="wikitable"
|-
! Metric !! Indicates !! Concern Level
|-
| Null sessions allowed || SMB misconfiguration || HIGH
|-
| Anonymous LDAP access || LDAP misconfiguration || MEDIUM
|-
| Weak passwords || Policy misconfiguration || HIGH
|-
| Passwords never expire || Policy misconfiguration || HIGH
|-
| Service accounts in admin groups || Over-privileging || MEDIUM
|-
| Kerberoastable accounts || Vulnerable SPNs || MEDIUM
|-
| Disabled accounts || Stale/unused accounts || LOW
|-
| Recently modified GPO || Active testing/changes || MEDIUM
|}
==== Creating Enumeration Report ====
Document findings:
<syntaxhighlight lang="text">
Enumeration Summary Report
==========================
Domain: corp.local
Enumeration Date: 2025-09-24
Methodology: SMB, LDAP, DNS
USERS DISCOVERED
├─ Total: 1,247
├─ Enabled: 1,189
├─ Disabled: 58
├─ Service Accounts: 45
├─ Never Expires: 123 ⚠️
GROUPS DISCOVERED
├─ Total: 234
├─ Privileged Groups: 12
│ ├─ Domain Admins: 8 members
│ ├─ Enterprise Admins: 3 members
│ └─ Schema Admins: 2 members
COMPUTERS DISCOVERED
├─ Total: 456
├─ Domain Controllers: 3
├─ Servers: 67
├─ Workstations: 386
SERVICES DISCOVERED
├─ Total: 234
├─ Kerberoastable: 45 ⚠️
├─ HTTP Services: 89
├─ SQL Services: 23
└─ Other Services: 77
HIGH-VALUE TARGETS IDENTIFIED
├─ john.smith (Domain Admin, no password expiry)
├─ admin.service (Kerberoastable, high privileges)
└─ SERVER-01 (Unconstrained delegation, SQL services)
</syntaxhighlight>
---
=== Knowledge Check ===
Test your enumeration knowledge:
# What is the difference between reconnaissance and enumeration?
# Name three SMB enumeration techniques.
# What is LDAP and what information can it reveal?
# What is a Service Principal Name (SPN) and why is it important?
# How would you enumerate all users in a domain using LDAP?
# What are privileged groups and why should you identify them?
# What is a zone transfer and when is it useful?
# Name three enumeration tools used in AD penetration testing.
# How would you identify Kerberoastable accounts?
# True or False: Anonymous LDAP queries are always blocked.
{{Note|Answers: 1) Recon is passive, enumeration is active probing 2) Null sessions, share enumeration, group policy discovery 3) Directory protocol; users, groups, computers, services, SPNs 4) Service identifier; used for targeting and Kerberoasting 5) ldapsearch with objectClass=user filter 6) Admin/high privilege groups; compromising members = domain compromise 7) Complete DNS zone copy if misconfigured; reveals all infrastructure 8) ADPenTest, ldapdomaindump, crackmapexec, impacket, BloodHound 9) Query for servicePrincipalName attributes in LDAP 10) False - many systems allow anonymous LDAP}}
---
=== Hands-On Exercise ===
{{Note|
'''Exercise: Enumerate Your Lab Domain'''
1. '''Prepare Lab:'''
- Ensure connectivity to lab domain
- Have valid domain credentials ready
2. '''SMB Enumeration:'''
- Check for null sessions: `smbclient -L //dc1.corp.local -N`
- Enumerate users: `rpcclient -U "" -N dc1 -c "enumdomusers"`
- Try crackmapexec: `crackmapexec smb 192.168.1.10 --users`
3. '''LDAP Enumeration:'''
- List users: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "objectClass=user"`
- List groups: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "objectClass=group"`
- Find SPNs: `ldapsearch -x -H ldap://corp.local -b "DC=corp,DC=local" "servicePrincipalName=*"`
4. '''DNS Enumeration:'''
- Query A records: `dig A corp.local`
- Query SRV records: `dig SRV _ldap._tcp.dc._msdcs.corp.local`
- Attempt zone transfer: `dig axfr @dc1 corp.local`
5. '''Automated Tools:'''
- Run ldapdomaindump
- Run crackmapexec full scan
- Try ADPenTest enumeration: `adpentest --target corp.local --phases enumeration`
6. '''Analysis:'''
- Document users found
- Identify privileged accounts
- Find service accounts with SPNs
- Locate computers and services
- Create target profile for top 3 accounts
7. '''Reporting:'''
- Create enumeration summary
- Document high-value targets
- List potential attack paths
- Prioritize by risk level
Success Criteria:
- All users enumerated
- Privileged groups identified
- Service accounts located
- SPNs discovered
- Target profiles created
- At least 5 potential attack paths identified
}}
---
=== Further Reading ===
* [[Active Directory Security and Penetration Testing/Chapter 9 - Kerberos Attacks|Chapter 9: Kerberos Attacks]]
* [[Active Directory Security and Penetration Testing/Chapter 11 - Privilege Escalation|Chapter 11: Privilege Escalation]]
* [[Active Directory Security and Penetration Testing/Chapter 14 - Scan Results and Reporting|Chapter 14: Scan Results and Reporting]]
* [https://www.offsec.com/metasploit-unleashed/smb-enumeration SMB Enumeration Guide]
* [https://book.hacktricks.xyz/windows-hardening/active-directory-methodology AD Methodology Reference]
* [https://bloodhound.readthedocs.io/ BloodHound Documentation]
---
[[Category:Enumeration and Discovery]]
[[Category:Attack Vectors]]
{{BookCat}}
h051yymb9de0sxfjet2dmkms617f2rj
Category:Book:Active Directory Security and Penetration Testing
14
485835
4672127
2026-09-24T12:19:25Z
MathXplore
3097823
Created page with "{{book category header}}"
4672127
wikitext
text/x-wiki
{{book category header}}
drhpcp9jwec04s7btc7g0ncqauz34hf
User talk:Seobavswellness12390
3
485836
4672138
2026-09-24T12:22:27Z
MathXplore
3097823
Notifying author of speedy deletion nomination
4672138
wikitext
text/x-wiki
== I have added a tag to a page you created ==
Hi! I'm MathXplore, and I recently reviewed your page, [[:User:Seobavswellness12390/sandbox]]. 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 [[User talk:Seobavswellness12390/sandbox|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:MathXplore|let me know]]. Thank you! <!-- Substituted from User:JJPMaster/CurateThisPage/authorMsg --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:22, 24 September 2026 (UTC)
jym6y3t766d3oiywpm1l99uatddv42d
User:Sisterian
2
485837
4672150
2026-09-24T15:20:44Z
Sisterian
3123918
Created a user page
4672150
wikitext
text/x-wiki
Sisterian, also known as Timothy Arthur Walsh is a Ugandan Wikimedian.
qhj02r5kmmujkvl0caafsqzewtx4g0j
4672151
4672150
2026-09-24T15:22:17Z
Sisterian
3123918
added [[Category:Ugandan Wikimedian]] using [[Help:Gadget-HotCat|HotCat]]
4672151
wikitext
text/x-wiki
Sisterian, also known as Timothy Arthur Walsh is a Ugandan Wikimedian.
[[Category:Ugandan Wikimedian]]
4ct2xj3jfphyirb460gl25i2jggbul4
User talk:נתנאל שטרן
3
485838
4672165
2026-09-24T15:32:21Z
Kittycataclysm
3371989
Notifying author about page tagging
4672165
wikitext
text/x-wiki
==[[:Active Directory Security and Penetration Testing]]==
{{tmbox|type=delete|text='''נתנאל שטרן, please [[Wikibooks:Requests for deletion#Active Directory Security and Penetration Testing|share your thoughts]] about whether to [[WB:WIW|keep]] or [[WB:DP|delete]] "[[:Active Directory Security and Penetration Testing|Active Directory Security and Penetration Testing]]".'''<br />You are being notified because you have contributed to this work. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 15:32, 24 September 2026 (UTC)}}
h0ps4d1p2ehr33jchv1novjujaa0s3x
4672174
4672165
2026-09-24T15:42:23Z
Kittycataclysm
3371989
/* Generative LLM use */ new section
4672174
wikitext
text/x-wiki
==[[:Active Directory Security and Penetration Testing]]==
{{tmbox|type=delete|text='''נתנאל שטרן, please [[Wikibooks:Requests for deletion#Active Directory Security and Penetration Testing|share your thoughts]] about whether to [[WB:WIW|keep]] or [[WB:DP|delete]] "[[:Active Directory Security and Penetration Testing|Active Directory Security and Penetration Testing]]".'''<br />You are being notified because you have contributed to this work. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 15:32, 24 September 2026 (UTC)}}
== Generative LLM use ==
Hi @[[User:נתנאל שטרן|נתנאל שטרן]]. I had to delete some of your contributions due to evidence of generative LLM use, and I suspect many of your other contributions will have to be deleted for the same reasons. Please note that using LLMs in this way is [[Wikibooks:Artificial intelligence|prohibited by WB policy]]—you are welcome to continue contributing without using generative AI. Let me know if you have any questions! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 15:42, 24 September 2026 (UTC)
qsxl664bd3t5ggr5s3hw97o90piatgg
User:Sisterian/sandbox/Games For Adults
2
485839
4672173
2026-09-24T15:37:15Z
Sisterian
3123918
created a book with chapters
4672173
wikitext
text/x-wiki
== Games For Adults ==
== Chapter 1 ==
=== Introduction to Games ===
After you have successfully installed the OpenProject package, you can now perform the initial configuration of OpenProject, using the wizard that ships with the OpenProject package.After you have successfully installed the OpenProject package, you can now perform the initial configuration of OpenProject, using the wizard that ships with the OpenProject package.
After you have successfully installed the OpenProject package, you can now perform the initial configuration of OpenProject, using the wizard that ships with the OpenProject package.
=== Types of Games ===
== Chapter 2 ==
== Chapter 3 ==
== Chapter 4 ==
===== Conclusion =====
3fsysjy3rc0jnbz0mv7fuo1hsqc8kvo
Weekly News Around the World!
0
485840
4672176
2026-09-24T15:46:08Z
ActStuffOGWiki
3624203
I made it
4672176
wikitext
text/x-wiki
''Note: These are '''updated weekly''', but not exactly. [[User:ActStuffOGWiki|The editor]] is actually a human and not a machine. Therefore, there '''may be inaccuracies''' or the editor '''may miss to update this'''. If you [https://en.wikibooks.org/w/index.php?title=Weekly_News_Around_the_World!&veaction=edit can help], please do!''
gchka80cly39r9p6eero7g6ysv3a7rh
4672179
4672176
2026-09-24T16:38:12Z
ActStuffOGWiki
3624203
4672179
wikitext
text/x-wiki
''Note: These are '''updated weekly''', but not exactly. [[User:ActStuffOGWiki|The main editor]] is actually a human and not a machine. Therefore, there '''may be inaccuracies,''' or the editor '''may miss to update this'''. If you [https://en.wikibooks.org/w/index.php?title=Weekly_News_Around_the_World!&veaction=edit can help], please do!''
== General Information ==
* This news is for the '''last week of [[wikipedia:September|September]]''', i.e., '''21st - 25th September''' '''2026'''.
* Made by [[User:ActStuffOGWiki|'''ActStuffOGWiki''']] on '''24th and 25th September''' 2026.
== September 21st (2026) ==
=== Politics ===
On September 21, 2026, international tensions remained high as U.S. President Donald Trump warned that he had entered a “deciding mode” regarding the ongoing war with Iran, warning that major developments would occur if Tehran failed to change its behavior. Hundreds of thousands of people rallied across Iran as the war and economic pressures continued to squeeze the country, while Iran’s military stated it had received information suggesting that the U.S. decided to resume strikes against the Islamic Republic. Meanwhile, Russia warned that new U.S. sanctions legislation would harm Trump’s peace efforts, which adds another layer of complexity of the geopolitical landscape.
=== Artificial Intelligence ===
Microsoft announced a major expansion of its AI-ready infrastructure in India, basically establishing the India South Central region in Hyderabad as a strategic hub for Asia and the Global South. At the Microsoft AI Infrastructure Summit, Microsoft outlined how it was turning India’s frontier AI ambition into capability at scale, bringing AI-ready infrastructure and a resilient three-zone architecture to the region.
== September 22 (2026) ==
=== United Nations General Assembly ===
September 22, 2026, saw world leaders gather in New York for the United Nations General Assembly, with U.S. President Donald Trump delivering a speech in which he threatened to “annihilate” Iran if a deal to end the war was not reached soon. Trump’s address kickstarted a quick week of diplomacy in New York, including discussions about the Iran war, and he also predicted the demise of Cuba’s government while touting the “spoils” of oil won from assaulting Venezuela. Ukrainian President Volodymyr Zelenskyy called for continued pressure on Russia at the UN General Assembly, questioning Russia’s willingness to end the war and portraying Vladimir Putin as a leader who continues to expand conflict rather than seek peace.
French President Emmanuel Macron, giving his last speech to the UN’s signature annual diplomatic gathering as president, railed against the humanitarian situation in Gaza while calling for a moratorium on strikes against civilian and energy targets in the Ukraine-Russia war. The U.N. Refugee Agency warned that up to 230,000 people could be displaced if fighting continued between Saudi-backed Yemeni government forces and Iran-backed Houthi militias in Yemen.
=== Media ===
Four of the nation’s major TV networks which are ABC, CBS, Fox News, and NBC, suspended their coverage of President Trump after he expelled CNN from the White House TV press pool, marking a significant escalation in tensions between the administration and the media. A judge later ordered that the Trump administration restore journalists’ access to the White House, granting a two-week temporary restraining order to CNN, MS NOW, and Politico.
=== Related to India ===
In India, the Kottappuzha river flash flood death toll rose to six in Kerala, with five other people, all tourists from the same district, killed in the flash flood on Sunday. Tamil Nadu Chief Minister C Joseph Vijay expanded the Perunthalaivar Kamarajar Breakfast Scheme to students of Classes 6 to 8 in government and government-aided schools, bringing an additional 15.30 lakh students under the programme. The Indian women’s cricket team grabbed India’s first gold in Asian Games 2026, while Indian Foreign Minister Subrahmanyam Jaishankar urged multilateralism at UNGA in New York.
== September 23 (2026) ==
=== International Diplomacy ===
On September 23, 2026, U.S. and Iranian officials held talks in New York shortly after President Trump threatened in his U.N. address that he may “annihilate” Iran if a deal to end the war was not reached soon on 22nd September. President Trump signed a deal with the leaders of Greenland and Denmark to pave the way for a larger U.S. military presence on the Arctic island, ending a monthslong standoff that had soured Washington’s relations with European allies. Turkish President Recep Tayyip Erdogan called on UN member states to press Israel for Gaza’s reconstruction, while the US, Denmark, and Greenland signed a security agreement.
=== Technology ===
Zoho launched an AI interface called Zia Chat and entered vertical SaaS with seven industry applications, which marks a significant expansion of the company’s AI capabilities. Social security pension was released to 33.85 lakh beneficiaries in Tamil Nadu, while TVK questioned MK Stalin’s silence on the Veeramani POCSO case. Indian equity benchmarks opened flat, with Sensex gaining 160 points at the open and Nifty up 50 points, before closing with Sensex up 297 po0ints and Nifty gaining 117.
== September 24 (2026) ==
=== Natural Disasters ===
Hurricane Polo brought heavy rain and strong waves across Mexico’s Pacific coast, while Tropical Storm Nolo approached Hawaii with the potential for catastrophic flooding. The U.S. National Hurricane Center warned that heavy rains could cause life-threatening flooding and landslides on Mexico’s Pacific Coast. In Yemen, government-aligned forces said they had repelled Houthi attacks along several fronts in the southwestern governorate of Taiz as heavy fighting continued in the Arab world’s poorest country.
=== Legal and Media Development ===
A judge ordered that the Trump administration restore journalists’ access to the White House, granting a two-week temporary restraining order to CNN, MS NOW, and Politico just after midnight. This ruling came after four major TV networks suspended their coverage of President Trump following his expulsion of CNN from the White House TV press pool. Tom Cruise shared insights from his acting and producing career at BAFTA: A Life in Pictures, supported by Samsung, at BAFTA’s 195 Piccadilly headquarters in Londo.
=== Air Force ===
The Indian Air Force announced that the second edition of the multinational air exercise TARANG SHAKTI 2026 would be conducted from September 26 to October 12 at Air Force Station, Jodhpur and adjoining air bases. This exercise would bring together air forces from multiple nations for joint training and cooperation. In Delhi, police investigated an alleged gang-rape of a minor in a posh neighborhood, while India’s foreign minister was at the UNGA.
j9y78aj40fgllbkoqqzsvzeytzt6n89
4672211
4672179
2026-09-24T20:52:06Z
Kittycataclysm
3371989
flag
4672211
wikitext
text/x-wiki
{{Qr-scope|reason=Seems out of scope, since we are not a news site}}
''Note: These are '''updated weekly''', but not exactly. [[User:ActStuffOGWiki|The main editor]] is actually a human and not a machine. Therefore, there '''may be inaccuracies,''' or the editor '''may miss to update this'''. If you [https://en.wikibooks.org/w/index.php?title=Weekly_News_Around_the_World!&veaction=edit can help], please do!''
== General Information ==
* This news is for the '''last week of [[wikipedia:September|September]]''', i.e., '''21st - 25th September''' '''2026'''.
* Made by [[User:ActStuffOGWiki|'''ActStuffOGWiki''']] on '''24th and 25th September''' 2026.
== September 21st (2026) ==
=== Politics ===
On September 21, 2026, international tensions remained high as U.S. President Donald Trump warned that he had entered a “deciding mode” regarding the ongoing war with Iran, warning that major developments would occur if Tehran failed to change its behavior. Hundreds of thousands of people rallied across Iran as the war and economic pressures continued to squeeze the country, while Iran’s military stated it had received information suggesting that the U.S. decided to resume strikes against the Islamic Republic. Meanwhile, Russia warned that new U.S. sanctions legislation would harm Trump’s peace efforts, which adds another layer of complexity of the geopolitical landscape.
=== Artificial Intelligence ===
Microsoft announced a major expansion of its AI-ready infrastructure in India, basically establishing the India South Central region in Hyderabad as a strategic hub for Asia and the Global South. At the Microsoft AI Infrastructure Summit, Microsoft outlined how it was turning India’s frontier AI ambition into capability at scale, bringing AI-ready infrastructure and a resilient three-zone architecture to the region.
== September 22 (2026) ==
=== United Nations General Assembly ===
September 22, 2026, saw world leaders gather in New York for the United Nations General Assembly, with U.S. President Donald Trump delivering a speech in which he threatened to “annihilate” Iran if a deal to end the war was not reached soon. Trump’s address kickstarted a quick week of diplomacy in New York, including discussions about the Iran war, and he also predicted the demise of Cuba’s government while touting the “spoils” of oil won from assaulting Venezuela. Ukrainian President Volodymyr Zelenskyy called for continued pressure on Russia at the UN General Assembly, questioning Russia’s willingness to end the war and portraying Vladimir Putin as a leader who continues to expand conflict rather than seek peace.
French President Emmanuel Macron, giving his last speech to the UN’s signature annual diplomatic gathering as president, railed against the humanitarian situation in Gaza while calling for a moratorium on strikes against civilian and energy targets in the Ukraine-Russia war. The U.N. Refugee Agency warned that up to 230,000 people could be displaced if fighting continued between Saudi-backed Yemeni government forces and Iran-backed Houthi militias in Yemen.
=== Media ===
Four of the nation’s major TV networks which are ABC, CBS, Fox News, and NBC, suspended their coverage of President Trump after he expelled CNN from the White House TV press pool, marking a significant escalation in tensions between the administration and the media. A judge later ordered that the Trump administration restore journalists’ access to the White House, granting a two-week temporary restraining order to CNN, MS NOW, and Politico.
=== Related to India ===
In India, the Kottappuzha river flash flood death toll rose to six in Kerala, with five other people, all tourists from the same district, killed in the flash flood on Sunday. Tamil Nadu Chief Minister C Joseph Vijay expanded the Perunthalaivar Kamarajar Breakfast Scheme to students of Classes 6 to 8 in government and government-aided schools, bringing an additional 15.30 lakh students under the programme. The Indian women’s cricket team grabbed India’s first gold in Asian Games 2026, while Indian Foreign Minister Subrahmanyam Jaishankar urged multilateralism at UNGA in New York.
== September 23 (2026) ==
=== International Diplomacy ===
On September 23, 2026, U.S. and Iranian officials held talks in New York shortly after President Trump threatened in his U.N. address that he may “annihilate” Iran if a deal to end the war was not reached soon on 22nd September. President Trump signed a deal with the leaders of Greenland and Denmark to pave the way for a larger U.S. military presence on the Arctic island, ending a monthslong standoff that had soured Washington’s relations with European allies. Turkish President Recep Tayyip Erdogan called on UN member states to press Israel for Gaza’s reconstruction, while the US, Denmark, and Greenland signed a security agreement.
=== Technology ===
Zoho launched an AI interface called Zia Chat and entered vertical SaaS with seven industry applications, which marks a significant expansion of the company’s AI capabilities. Social security pension was released to 33.85 lakh beneficiaries in Tamil Nadu, while TVK questioned MK Stalin’s silence on the Veeramani POCSO case. Indian equity benchmarks opened flat, with Sensex gaining 160 points at the open and Nifty up 50 points, before closing with Sensex up 297 po0ints and Nifty gaining 117.
== September 24 (2026) ==
=== Natural Disasters ===
Hurricane Polo brought heavy rain and strong waves across Mexico’s Pacific coast, while Tropical Storm Nolo approached Hawaii with the potential for catastrophic flooding. The U.S. National Hurricane Center warned that heavy rains could cause life-threatening flooding and landslides on Mexico’s Pacific Coast. In Yemen, government-aligned forces said they had repelled Houthi attacks along several fronts in the southwestern governorate of Taiz as heavy fighting continued in the Arab world’s poorest country.
=== Legal and Media Development ===
A judge ordered that the Trump administration restore journalists’ access to the White House, granting a two-week temporary restraining order to CNN, MS NOW, and Politico just after midnight. This ruling came after four major TV networks suspended their coverage of President Trump following his expulsion of CNN from the White House TV press pool. Tom Cruise shared insights from his acting and producing career at BAFTA: A Life in Pictures, supported by Samsung, at BAFTA’s 195 Piccadilly headquarters in Londo.
=== Air Force ===
The Indian Air Force announced that the second edition of the multinational air exercise TARANG SHAKTI 2026 would be conducted from September 26 to October 12 at Air Force Station, Jodhpur and adjoining air bases. This exercise would bring together air forces from multiple nations for joint training and cooperation. In Delhi, police investigated an alleged gang-rape of a minor in a posh neighborhood, while India’s foreign minister was at the UNGA.
62be62effujpgk6bvi5j2opykxf6rad
Wikibooks:Reading room/Administrative Assistance/Header
4
485841
4672203
2026-09-24T18:35:15Z
Codename Noreste
3441010
Creating a separate header.
4672203
wikitext
text/x-wiki
<includeonly>__NEWSECTIONLINK__ {{TOC left}} [[Category:Reading room]]</includeonly> {{Discussion Rooms}}
{{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}}
{{shortcut|WB:AA|WB:AN}}
Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup.
You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention).
For general questions or assistance that doesn't require an administrator, please use the [[Wikibooks:Reading room/General|general reading room]].
lkln8jzcv2yp8ge3k3zml7fuvg3bilf
4672204
4672203
2026-09-24T18:35:32Z
Codename Noreste
3441010
Protected "[[Wikibooks:Reading room/Administrative Assistance/Header]]": High-impact page ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only administrators] (indefinite))
4672203
wikitext
text/x-wiki
<includeonly>__NEWSECTIONLINK__ {{TOC left}} [[Category:Reading room]]</includeonly> {{Discussion Rooms}}
{{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}}
{{shortcut|WB:AA|WB:AN}}
Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup.
You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention).
For general questions or assistance that doesn't require an administrator, please use the [[Wikibooks:Reading room/General|general reading room]].
lkln8jzcv2yp8ge3k3zml7fuvg3bilf
Infrastructure Policy Casebook/HS2
0
485842
4672224
2026-09-24T22:15:38Z
~2026-51607-94
3626790
Intro - for the in class exercise
4672224
wikitext
text/x-wiki
This is my introduction!
9w6rgu107hchmcj55onxc00z8zx9158
4672227
4672224
2026-09-24T22:19:54Z
Jfischm
3626791
train pic
4672227
wikitext
text/x-wiki
This is my introduction!
[[File:Pacific National freight train Virginia, SA.jpg|thumb|This is a train]]
6zlrruu8875ribh32ybe0xibh4ao9i5
4672231
4672227
2026-09-24T22:32:06Z
Mattj3ttgmu
3626787
I added a photo and introductory sentence.
4672231
wikitext
text/x-wiki
[[File:England's high speed rail map (as from Oct 2022) - not UK.svg|thumb|UK HS2 Map]]
This is my introduction!
[[File:Pacific National freight train Virginia, SA.jpg|thumb|This is a train]]Testing intro paragraph about the history of High Speed Rail Phase 2, commonly referred to as "HS2".
d798vccf0p2z13fnzn4tx9x8uklpgev
4672235
4672231
2026-09-24T22:39:50Z
Jfischm
3626791
additional train picture
4672235
wikitext
text/x-wiki
[[File:England's high speed rail map (as from Oct 2022) - not UK.svg|thumb|UK HS2 Map]]
[[File:Trains at the sidings at Tonbridge.jpg|left|thumb|ALSO A TRAIN]]
This is my introduction!
[[File:Pacific National freight train Virginia, SA.jpg|thumb|This is a train]]Testing intro paragraph about the history of High Speed Rail Phase 2, commonly referred to as "HS2".
mvk70pfnoax3vtnfnpn9h7yma4edhxa
4672243
4672235
2026-09-24T22:51:50Z
Jfischm
3626791
map
4672243
wikitext
text/x-wiki
<mapframe latitude="53.074228" longitude="-1.779785" zoom="5" width="200" height="229">{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
[ -1.893849, 52.438877 ],
[ -0.012561, 51.375017 ],
[ 0.676017, 52.280963 ],
[ -1.824746, 52.400531 ]
]
}
},
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [ -1.106934, 53.006646 ]
}
}
]
}</mapframe>[[File:England's high speed rail map (as from Oct 2022) - not UK.svg|thumb|UK HS2 Map]]
[[File:Trains at the sidings at Tonbridge.jpg|thumb|ALSO A TRAIN]]
This is my introduction!
[[File:Pacific National freight train Virginia, SA.jpg|thumb|This is a train]]Testing intro paragraph about the history of High Speed Rail Phase 2, commonly referred to as "HS2".
9gczgmr090q8vqkpoup1cqmfnzxh9ij
4672244
4672243
2026-09-24T22:53:09Z
Mattj3ttgmu
3626787
Added an image
4672244
wikitext
text/x-wiki
<mapframe latitude="53.074228" longitude="-1.779785" zoom="5" width="200" height="229">{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
[ -1.893849, 52.438877 ],
[ -0.012561, 51.375017 ],
[ 0.676017, 52.280963 ],
[ -1.824746, 52.400531 ]
]
}
},
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [ -1.106934, 53.006646 ]
}
}
]
}</mapframe>[[File:England's high speed rail map (as from Oct 2022) - not UK.svg|thumb|UK HS2 Map]]
[[File:Trains at the sidings at Tonbridge.jpg|thumb|ALSO A TRAIN]]
[[File:STOP HS2 Poster.jpg|thumb|Poster protesting HS2]]
This is my introduction!
[[File:Pacific National freight train Virginia, SA.jpg|thumb|This is a train]]Testing intro paragraph about the history of High Speed Rail Phase 2, commonly referred to as "HS2".
9wzrlxlj9w2smm1h5471g49d0xjo5ld
4672255
4672244
2026-09-25T02:24:07Z
Ziv
3267536
([[c:GR|GR]]) [[c:COM:Duplicate|Duplicate]]: [[File:STOP HS2 Poster.jpg]] → [[File:GOC Rickmansworth & Harefield 098- Hillingdon against HS2 (23451913891).jpg]] Exact or scaled-down duplicate: [[c::File:GOC Rickmansworth & Harefield 098- Hillingdon against HS2 (23451913891).jpg]]
4672255
wikitext
text/x-wiki
<mapframe latitude="53.074228" longitude="-1.779785" zoom="5" width="200" height="229">{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
[ -1.893849, 52.438877 ],
[ -0.012561, 51.375017 ],
[ 0.676017, 52.280963 ],
[ -1.824746, 52.400531 ]
]
}
},
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [ -1.106934, 53.006646 ]
}
}
]
}</mapframe>[[File:England's high speed rail map (as from Oct 2022) - not UK.svg|thumb|UK HS2 Map]]
[[File:Trains at the sidings at Tonbridge.jpg|thumb|ALSO A TRAIN]]
[[File:GOC Rickmansworth & Harefield 098- Hillingdon against HS2 (23451913891).jpg|thumb|Poster protesting HS2]]
This is my introduction!
[[File:Pacific National freight train Virginia, SA.jpg|thumb|This is a train]]Testing intro paragraph about the history of High Speed Rail Phase 2, commonly referred to as "HS2".
bmiqjkewqxvibb04f1l3zy7218xl5t4
4672298
4672255
2026-09-25T10:11:08Z
TechVindicator
3626296
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672298
wikitext
text/x-wiki
<mapframe latitude="53.074228" longitude="-1.779785" zoom="5" width="200" height="229">{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
[ -1.893849, 52.438877 ],
[ -0.012561, 51.375017 ],
[ 0.676017, 52.280963 ],
[ -1.824746, 52.400531 ]
]
}
},
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [ -1.106934, 53.006646 ]
}
}
]
}</mapframe>[[File:England's high speed rail map (as from Oct 2022) - not UK.svg|thumb|UK HS2 Map]]
[[File:Trains at the sidings at Tonbridge.jpg|thumb|ALSO A TRAIN]]
[[File:GOC Rickmansworth & Harefield 098- Hillingdon against HS2 (23451913891).jpg|thumb|Poster protesting HS2]]
This is my introduction!
[[File:Pacific National freight train Virginia, SA.jpg|thumb|This is a train]]Testing intro paragraph about the history of High Speed Rail Phase 2, commonly referred to as "HS2".
{{BookCat}}
sd35v7g0thmofczgv33pbcmzoscpjax
Infrastructure Policy Casebook/NYC Subway Accessibility
0
485843
4672225
2026-09-24T22:19:12Z
Tytus1
3626788
test
4672225
wikitext
text/x-wiki
Introduction
49ahif9bkddp0u5yetttbi2wk043fti
4672228
4672225
2026-09-24T22:27:30Z
Swathanan
3626792
4672228
wikitext
text/x-wiki
Introduction
Accessibility Improvements to the NYC Subway
69judqwdvzwetiu3hp55ek5mon1q5jl
4672230
4672228
2026-09-24T22:30:17Z
Tytus1
3626788
4672230
wikitext
text/x-wiki
== Accessibility Improvements to the NYC Subway ==
[[File:Long Island City New York May 2015 panorama 3.jpg|thumb|694x694px]]
fni4o6yaef4yc5so1yinl851vksjyzg
4672237
4672230
2026-09-24T22:44:52Z
~2026-51552-58
3626794
4672237
wikitext
text/x-wiki
== Accessibility Improvements to the NYC Subway ==
=== Table 1 ===
{| class="wikitable"
|+
!
!
!
!
|-
|
|
|
|
|-
|
|
|
|
|-
|
|
|
|
|}
jkz8tzunjbnfilgbcsymz249q6hyw2k
4672238
4672237
2026-09-24T22:45:24Z
~2026-51552-58
3626794
4672238
wikitext
text/x-wiki
== Accessibility Improvements to the NYC Subway ==
=== Table 1 ===
=== Table 3 ===
=== Table 4 ===
=== Table 5 ===
{| class="wikitable"
|+
!
!
!
!
|-
|
|
|
|
|-
|
|
|
|
|-
|
|
|
|
|}
owgnbprfhxfng9ejcklf09whf8ux1kc
4672240
4672238
2026-09-24T22:45:54Z
~2026-51552-58
3626794
4672240
wikitext
text/x-wiki
== Accessibility Improvements to the NYC Subway ==
=== Table 1 ===
==== Table 3 ====
=== Table 4 ===
=== Table 5 ===
== NEXT ==
== NEXT II ==
{| class="wikitable"
|+
!
!
!
!
|-
|
|
|
|
|-
|
|
|
|
|-
|
|
|
|
|}
g9e6qgzj3sckf7ctcakdn7dv0f7jbz3
4672241
4672240
2026-09-24T22:46:22Z
~2026-51552-58
3626794
4672241
wikitext
text/x-wiki
== Accessibility Improvements to the NYC Subway ==
=== Table 1 ===
==== Table 3 ====
== NEXT ==
=== Table 4 ===
=== Table 5 ===
== NEXT II ==
{| class="wikitable"
|+
!
!
!
!
|-
|
|
|
|
|-
|
|
|
|
|-
|
|
|
|
|}
czrgiopebzy32mrpxw2yaieho0c44va
4672242
4672241
2026-09-24T22:46:54Z
~2026-51552-58
3626794
4672242
wikitext
text/x-wiki
== Accessibility Improvements to the NYC Subway ==
=== Table 1 ===
==== Table 3 ====
== NEXT ==
=== Table 4 ===
=== Table 5 ===
== NEXT II ==
== Last test ==
{| class="wikitable"
|+
!
!
!
!
|-
|
|
|
|
|-
|
|
|
|
|-
|
|
|
|
|}
9vphfluekdqwczi78smodngq3id71nf
4672299
4672242
2026-09-25T10:11:20Z
TechVindicator
3626296
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672299
wikitext
text/x-wiki
== Accessibility Improvements to the NYC Subway ==
=== Table 1 ===
==== Table 3 ====
== NEXT ==
=== Table 4 ===
=== Table 5 ===
== NEXT II ==
== Last test ==
{| class="wikitable"
|+
!
!
!
!
|-
|
|
|
|
|-
|
|
|
|
|-
|
|
|
|
|}
{{BookCat}}
5cg4l60z9tnqhowrb4bvxh5kbi44cua
Infrastructure Policy Casebook/Steel River Energy Center
0
485844
4672226
2026-09-24T22:19:32Z
37L4R58
3626786
Tested out publishing functionality by creating mock headers and paragraph text.
4672226
wikitext
text/x-wiki
== Introduction ==
This is my introduction.
== Background ==
Background information will go here.
9bal5gxn212a9n72pjg45j5il8498h2
4672229
4672226
2026-09-24T22:29:05Z
37L4R58
3626786
Added a map to the published page for trial purposes.
4672229
wikitext
text/x-wiki
== Introduction ==
This is my introduction.
== Background ==
Background information will go here.
<mapframe latitude="35.61708323548322" longitude="-90.01261369750496" zoom="10" width="300" height="269" text="A regional map of the project site location." align="center" />
cqzufye8mypw2o8q8hoopdu508nhe0r
4672232
4672229
2026-09-24T22:33:18Z
37L4R58
3626786
Added a citation to a claim.
4672232
wikitext
text/x-wiki
== Introduction ==
This is my introduction. Steel River Energy Center is the United State's largest solar project<ref>{{Cite web |last=Creek |first=Cypress |title=Cypress Creek and Google Break Ground on America's Largest Solar Project |url=https://cypresscreekenergy.com/news/steel-river-groundbreaking/ |access-date=2026-09-24 |website=Cypress Creek |language=en-US}}</ref>.
== Background ==
Background information will go here.
<mapframe latitude="35.61708323548322" longitude="-90.01261369750496" zoom="10" width="300" height="269" text="A regional map of the project site location." align="center" />
59zpit7jso4os1wtlcb6d6ieiy5ka38
4672234
4672232
2026-09-24T22:39:19Z
37L4R58
3626786
Added an image.
4672234
wikitext
text/x-wiki
== Introduction ==
This is my introduction. Steel River Energy Center is the United State's largest solar project<ref>{{Cite web |last=Creek |first=Cypress |title=Cypress Creek and Google Break Ground on America's Largest Solar Project |url=https://cypresscreekenergy.com/news/steel-river-groundbreaking/ |access-date=2026-09-24 |website=Cypress Creek |language=en-US}}</ref>.
== Background ==
Background information will go here.
<mapframe latitude="35.61708323548322" longitude="-90.01261369750496" zoom="10" width="300" height="269" text="A regional map of the project site location." align="center" />This is a test for inserting an image.
[[File:Microsoft Data Center Middenmeer, the Netherlands - 2.jpg|alt=A data center in the Netherlands|thumb|A data center in the Netherlands ]]
2pyk9rw04q0tcxb1z2blbbih0f14zcu
4672239
4672234
2026-09-24T22:45:25Z
37L4R58
3626786
Added an image.
4672239
wikitext
text/x-wiki
== Introduction ==
This is my introduction. Steel River Energy Center is the United State's largest solar project<ref>{{Cite web |last=Creek |first=Cypress |title=Cypress Creek and Google Break Ground on America's Largest Solar Project |url=https://cypresscreekenergy.com/news/steel-river-groundbreaking/ |access-date=2026-09-24 |website=Cypress Creek |language=en-US}}</ref>.
== Background ==
Background information will go here.
<mapframe latitude="35.61708323548322" longitude="-90.01261369750496" zoom="10" width="300" height="269" text="A regional map of the project site location." align="center" />
[[File:Datacenter Equinix AM3 & AM4 Amsterdam Uploaded 2026.jpg|alt=A data center.|thumb|A data center. ]]
This is a test for inserting an image.
[[File:Microsoft Data Center Middenmeer, the Netherlands - 2.jpg|alt=A data center in the Netherlands|thumb|A data center in the Netherlands ]]
3k0j0j5vi3zj1l0nvz4zg9gu78e9qu4
4672300
4672239
2026-09-25T10:11:49Z
TechVindicator
3626296
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672300
wikitext
text/x-wiki
== Introduction ==
This is my introduction. Steel River Energy Center is the United State's largest solar project<ref>{{Cite web |last=Creek |first=Cypress |title=Cypress Creek and Google Break Ground on America's Largest Solar Project |url=https://cypresscreekenergy.com/news/steel-river-groundbreaking/ |access-date=2026-09-24 |website=Cypress Creek |language=en-US}}</ref>.
== Background ==
Background information will go here.
<mapframe latitude="35.61708323548322" longitude="-90.01261369750496" zoom="10" width="300" height="269" text="A regional map of the project site location." align="center" />
[[File:Datacenter Equinix AM3 & AM4 Amsterdam Uploaded 2026.jpg|alt=A data center.|thumb|A data center. ]]
This is a test for inserting an image.
[[File:Microsoft Data Center Middenmeer, the Netherlands - 2.jpg|alt=A data center in the Netherlands|thumb|A data center in the Netherlands ]]
{{BookCat}}
nzuk1ati1ryrn18695evfx09lpt9omw
Infrastructure Policy Casebook/Colorado River
0
485845
4672245
2026-09-24T22:53:36Z
Emrodri1
3626789
Beginning formatting
4672245
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
=== Decision Documents ===
==== Environmental Impact Statement and Record of Decision ====
Final Environmental Impact Statement (EIS) issued on July 31, 2026... <ref>{{Cite web |last=Bureau of Reclamation |date=July 31, 2026 |title=Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead – Final Environmental Impact Statement |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/index.html}}</ref>
==== 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...
== Impacts ==
fksl9qjuw3bhrub15rxmcz8zxzw777k
4672297
4672245
2026-09-25T10:10:56Z
TechVindicator
3626296
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4672297
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
=== Decision Documents ===
==== Environmental Impact Statement and Record of Decision ====
Final Environmental Impact Statement (EIS) issued on July 31, 2026... <ref>{{Cite web |last=Bureau of Reclamation |date=July 31, 2026 |title=Post-2026 Operational Guidelines and Strategies for Lake Powell and Lake Mead – Final Environmental Impact Statement |url=https://www.usbr.gov/ColoradoRiverBasin/post2026/final-eis/index.html}}</ref>
==== 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...
== Impacts ==
{{BookCat}}
7jwxxz38q0muvigro23224adguxmr8w
Cookbook talk:Family Pizza
103
485846
4672254
2026-09-25T02:02:30Z
Kittycataclysm
3371989
/* Recipe Questions */ new section
4672254
wikitext
text/x-wiki
== Recipe Questions ==
@[[User:TechVindicator|TechVindicator]] thanks for the recipe! I have a few questions about it:
* What kind of flour—all-purpose?
* How much is a sachet of yeast in this case?
Thank you! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 02:02, 25 September 2026 (UTC)
3md98rq9uem99tf90hwuv957wi88l4m
4672259
4672254
2026-09-25T04:28:18Z
TechVindicator
3626296
reply
4672259
wikitext
text/x-wiki
== Recipe Questions ==
@[[User:TechVindicator|TechVindicator]] thanks for the recipe! I have a few questions about it:
* What kind of flour—all-purpose?
* How much is a sachet of yeast in this case?
Thank you! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 02:02, 25 September 2026 (UTC)
:* I do not know exactly what kind of flour it is, as the original French version only mentions flour.
:*A sachet of yeast contains 7g of yeast, I think. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]])
hvti6n55y1e2gv31q1kld12370rgqsz
4672260
4672259
2026-09-25T04:29:05Z
TechVindicator
3626296
signature
4672260
wikitext
text/x-wiki
== Recipe Questions ==
@[[User:TechVindicator|TechVindicator]] thanks for the recipe! I have a few questions about it:
* What kind of flour—all-purpose?
* How much is a sachet of yeast in this case?
Thank you! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 02:02, 25 September 2026 (UTC)
:* I do not know exactly what kind of flour it is, as the original French version only mentions flour.
:*A sachet of yeast contains 7g of yeast, I think. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:28, 25 September 2026 (UTC)
f46eierzecdg0jnulo87p5qqzf6zdyb
Modern Greek/Vocab Church
0
485847
4672256
2026-09-25T02:47:30Z
It-is-Truly-Meet
3624460
Created page with "= Vocab: Church = Eastern Orthodoxy is by far the largest religious denomination in Greece. [[Image:Christ Pantocrator mosaic from Hagia Sophia 2744 x 2900 pixels 3.1 MB.jpg|thumb|200px|εικόνα του Χριστού]] [[Image:Greek Orthodox Church Ma alot Tarshiha Avney Moreshet c37ca447.jpg|thumb|200px|ένας ιερέας με θυμιατό]] [[Image:Proskomidē - Table of Oblation - 2019.jpg|thumb|200px|πίνακας της προσκομιδής]] {| {{Mo..."
4672256
wikitext
text/x-wiki
= Vocab: Church =
Eastern Orthodoxy is by far the largest religious denomination in Greece.
[[Image:Christ Pantocrator mosaic from Hagia Sophia 2744 x 2900 pixels 3.1 MB.jpg|thumb|200px|εικόνα του Χριστού]]
[[Image:Greek Orthodox Church Ma alot Tarshiha Avney Moreshet c37ca447.jpg|thumb|200px|ένας ιερέας με θυμιατό]]
[[Image:Proskomidē - Table of Oblation - 2019.jpg|thumb|200px|πίνακας της προσκομιδής]]
{| {{Modern Greek/table|Vocab|Church|Η εκκλησία}}
|η μονή||the monastery
|-
| η εικόνα||icon
|-
| άγιος||holy, saintly
|-
|Χριστιανός||Christian
|-
| η ψυχή||soul
|-
| ο Θεός||God
|-
| ο Ιησούς||Jesus
|-
| φιλάνθρωπος||benevolent (lit: friend of man)
|-
|η Αγία Τριάδα||the Holy Trinity
|-
|το Άγιο Πνεύμα||the Holy Spirit
|-
| η Θεοτόκος||the Theotokos (lit: God-bearer)
|-
| η Παναγία||Panagia (lit: all-holy; syn: Θεοτόκος)
|-
| το θυμιατό||censer
|-
| το λιβάνι||incense
|-
| η Βίβλος||Bible
|-
| η Θεία Ευχαριστία||Divine Eucharist
|-
| ισχυρός||mighty
|-
| αθάνατος||immortal
|-
|ο σταυρός||cross
|}
{| {{Modern Greek/table|Vocab|Parts of an Orthodox Church|Μέρη ορθόδοξης εκκλησίας}}
|
|}
{| {{Modern Greek/table|Vocab|The Passions|Τα πάθη}}
|αμαρτία||sin
|-
|ο διάβολος||the devil
|-
|η οργή||wrath
|-
|η απληστία||greed
|-
|η υπερηφάνεια||pride
|-
|ο φθόνος||envy
|-
|η οκνηρία||sloth
|-
|η λαγνεία||lust
|-
|η λαιμαργία||gluttony
|-
|η νηστεία||fasting
|-
|η συγχώρεση||forgiveness
|-
|η μετάνοια||repentance
|-
|το βάσανο||torment
|-
|η θλίψη||sorrow
|-
|ο θάνατος||death
|}
''Όποιος θέλει να με ακολουθήσει, ας απαρνηθεί τον εαυτό του, ας σηκώσει το σταυρό του κι ας με ακολουθεί.''
{| {{Modern Greek/table|Vocab|Verbs on Orthodoxy|Ρήματα για την Ορθοδοξία}}
|δέχομαι||accept
|-
|αρνούμαι||deny
|-
|λατρεύω||worship
|-
|πιστεύω||believe
|-
|ευλογώ||bless
|-
|προσεύχομαι||pray
|-
|νηστεύω||fast (from food)
|-
|λειτουργώ||perform (the Divine Liturgy)
|-
|χρίω||anoint
|-
|κάνω μετανοίες||perform prostrations
|-
|μετανοώ||repent
|}
Examples:
{| {{Modern Greek/Table|Examples}}
|
|}
<br>{{Modern Greek}}
{{BookCat}}
6serhfjo4n11980ni4sjqaj6phwqo41
Cookbook:Pasta with Budget Bolognese Sauce
102
485848
4672262
2026-09-25T04:41:49Z
TechVindicator
3626296
Create. This is translated text from nlwikibooks, from the original at [[nl:Kookboek/Pasta met budgetbolognese]] version 426838. This content has been translated and adapted to English.
4672262
wikitext
text/x-wiki
{{recipe summary
| servings = 3
| time = 20 minutes
| difficulty = 2
| image =
| energy =
| note =
}}
{{recipe}}
'''Pasta with budget bolognese''' is a pasta dish with bolognese sauce for people on a tight budget.
==Ingredients==
*360g pasta, preferably spaghetti
*2 onions
*2 tomatoes
*1 garlic clove
*1 x 400g tin peeled tomatoes
*300g frozen hamburgers
*Olive oil
*(preferably black) pepper and salt
== Equipment ==
* Saucepan, to cook the pasta
* Frying pan, to make the sauce.
* Food processor
==Method==
#Cook the pasta according to the pack instructions.
#Cut the thawed hamburgers into pieces and grind the pieces in the food processor until minced
#Finely chop the onions and the garlic and chop the fresh tomatoes into pieces
#Chop the peeled tomatoes to small pieces, or puree the tomatoes in a food processor.
#Heat the oil in a pan, and sauté the garlic and onion.
#Add the minced hamburgers, and fry for a minute, stirring constantly.
#Add the contents of the peeled tomatoes
#Carefully, heat the sauce for a few minutes.
#Stir in the tomato pieces and let them warm up for a bit.
#Season the sauce with the salt and the pepper.
#Spread the sauce over the pasta and serve.
3gv5lo8o6tmux1qj4fmhv4ex93kugck
4672263
4672262
2026-09-25T04:41:59Z
TechVindicator
3626296
added [[Category:Pasta recipe]] using [[Help:Gadget-HotCat|HotCat]]
4672263
wikitext
text/x-wiki
{{recipe summary
| servings = 3
| time = 20 minutes
| difficulty = 2
| image =
| energy =
| note =
}}
{{recipe}}
'''Pasta with budget bolognese''' is a pasta dish with bolognese sauce for people on a tight budget.
==Ingredients==
*360g pasta, preferably spaghetti
*2 onions
*2 tomatoes
*1 garlic clove
*1 x 400g tin peeled tomatoes
*300g frozen hamburgers
*Olive oil
*(preferably black) pepper and salt
== Equipment ==
* Saucepan, to cook the pasta
* Frying pan, to make the sauce.
* Food processor
==Method==
#Cook the pasta according to the pack instructions.
#Cut the thawed hamburgers into pieces and grind the pieces in the food processor until minced
#Finely chop the onions and the garlic and chop the fresh tomatoes into pieces
#Chop the peeled tomatoes to small pieces, or puree the tomatoes in a food processor.
#Heat the oil in a pan, and sauté the garlic and onion.
#Add the minced hamburgers, and fry for a minute, stirring constantly.
#Add the contents of the peeled tomatoes
#Carefully, heat the sauce for a few minutes.
#Stir in the tomato pieces and let them warm up for a bit.
#Season the sauce with the salt and the pepper.
#Spread the sauce over the pasta and serve.
[[Category:Pasta recipe]]
5ya85zp5ptiplms6mqx8cn0wi6s2bmy
4672264
4672263
2026-09-25T04:42:06Z
TechVindicator
3626296
removed [[Category:Pasta recipe]]; added [[Category:Recipes using pasta and noodles]] using [[Help:Gadget-HotCat|HotCat]]
4672264
wikitext
text/x-wiki
{{recipe summary
| servings = 3
| time = 20 minutes
| difficulty = 2
| image =
| energy =
| note =
}}
{{recipe}}
'''Pasta with budget bolognese''' is a pasta dish with bolognese sauce for people on a tight budget.
==Ingredients==
*360g pasta, preferably spaghetti
*2 onions
*2 tomatoes
*1 garlic clove
*1 x 400g tin peeled tomatoes
*300g frozen hamburgers
*Olive oil
*(preferably black) pepper and salt
== Equipment ==
* Saucepan, to cook the pasta
* Frying pan, to make the sauce.
* Food processor
==Method==
#Cook the pasta according to the pack instructions.
#Cut the thawed hamburgers into pieces and grind the pieces in the food processor until minced
#Finely chop the onions and the garlic and chop the fresh tomatoes into pieces
#Chop the peeled tomatoes to small pieces, or puree the tomatoes in a food processor.
#Heat the oil in a pan, and sauté the garlic and onion.
#Add the minced hamburgers, and fry for a minute, stirring constantly.
#Add the contents of the peeled tomatoes
#Carefully, heat the sauce for a few minutes.
#Stir in the tomato pieces and let them warm up for a bit.
#Season the sauce with the salt and the pepper.
#Spread the sauce over the pasta and serve.
[[Category:Recipes using pasta and noodles]]
80yods56xrvlc85t8t1kf0ukpe3lbrl
4672265
4672264
2026-09-25T05:46:51Z
TechVindicator
3626296
/* Method */ +
4672265
wikitext
text/x-wiki
{{recipe summary
| servings = 3
| time = 20 minutes
| difficulty = 2
| image =
| energy =
| note =
}}
{{recipe}}
'''Pasta with budget bolognese''' is a pasta dish with bolognese sauce for people on a tight budget.
==Ingredients==
*360g pasta, preferably spaghetti
*2 onions
*2 tomatoes
*1 garlic clove
*1 x 400g tin peeled tomatoes
*300g frozen hamburgers
*Olive oil
*(preferably black) pepper and salt
== Equipment ==
* Saucepan, to cook the pasta
* Frying pan, to make the sauce.
* Food processor
==Method==
#Cook the pasta according to the pack instructions.
#Cut the thawed hamburgers into pieces and grind the pieces in the food processor until minced
#Finely chop the onions and the garlic and chop the fresh tomatoes into pieces
#Chop the peeled tomatoes to small pieces, or puree the tomatoes in a food processor.
#Heat the oil in a pan, and sauté the garlic and onion.
#Add the minced hamburgers, and fry for a minute, stirring constantly.
#Add the contents of the peeled tomatoes
#Carefully, heat the sauce for a few minutes.
#Stir in the tomato pieces and let them warm up for a bit.
#Season the sauce with salt, pepper and mixed herbs.
#Spread the sauce over the pasta and serve.
[[Category:Recipes using pasta and noodles]]
1klrg31kn27vwdb7p1zpk4z7q2njpxi
4672266
4672265
2026-09-25T05:47:16Z
TechVindicator
3626296
/* Ingredients */ +mixed herbs
4672266
wikitext
text/x-wiki
{{recipe summary
| servings = 3
| time = 20 minutes
| difficulty = 2
| image =
| energy =
| note =
}}
{{recipe}}
'''Pasta with budget bolognese''' is a pasta dish with bolognese sauce for people on a tight budget.
==Ingredients==
*360g pasta, preferably spaghetti
*2 onions
*2 tomatoes
*1 garlic clove
*1 x 400g tin peeled tomatoes
*300g frozen hamburgers
*Olive oil
*(preferably black) pepper and salt
*Mixed herbs
== Equipment ==
* Saucepan, to cook the pasta
* Frying pan, to make the sauce.
* Food processor
==Method==
#Cook the pasta according to the pack instructions.
#Cut the thawed hamburgers into pieces and grind the pieces in the food processor until minced
#Finely chop the onions and the garlic and chop the fresh tomatoes into pieces
#Chop the peeled tomatoes to small pieces, or puree the tomatoes in a food processor.
#Heat the oil in a pan, and sauté the garlic and onion.
#Add the minced hamburgers, and fry for a minute, stirring constantly.
#Add the contents of the peeled tomatoes
#Carefully, heat the sauce for a few minutes.
#Stir in the tomato pieces and let them warm up for a bit.
#Season the sauce with salt, pepper and mixed herbs.
#Spread the sauce over the pasta and serve.
[[Category:Recipes using pasta and noodles]]
d6xv2dg927eqgz1wxj84bbtlw2jsou1
4672267
4672266
2026-09-25T05:48:59Z
TechVindicator
3626296
minor vocabulary fixes
4672267
wikitext
text/x-wiki
{{recipe summary
| servings = 3
| time = 20 minutes
| difficulty = 2
| image =
| energy =
| note =
}}
{{recipe}}
<br>
'''Pasta with budget bolognese''' is a pasta dish with bolognese sauce for people on a tight budget.
==Ingredients==
*360g pasta, preferably spaghetti
*2 onions
*2 tomatoes
*1 garlic clove
*1 x 400g tin peeled tomatoes
*300g frozen hamburgers
*Olive oil
*(preferably black) pepper and salt
* Italian mixed herbs
== Equipment ==
* Saucepan, to cook the pasta
* Frying pan, to make the sauce.
* Food processor
==Method==
#Cook the pasta according to the pack instructions.
#Cut the thawed hamburgers into pieces and grind the pieces in the food processor until minced
#Finely chop the onions and the garlic and chop the fresh tomatoes into pieces
#Chop the peeled tomatoes to small pieces, or puree the tomatoes in a food processor.
#Heat the oil in a pan, and sauté the garlic and onion.
#Add the minced hamburgers, and fry for a minute, stirring constantly.
#Add the contents of the peeled tomatoes
#Carefully, heat the sauce for a few minutes.
#Stir in the tomato pieces and let them warm up for a bit.
#Season the sauce with salt, pepper and the Italian mixed herbs.
#Spread the sauce over the pasta and serve.
[[Category:Recipes using pasta and noodles]]
0iq8n2bl3ydtjx65m4v7i8vxlq8lhs0
4672295
4672267
2026-09-25T10:06:14Z
TechVindicator
3626296
+[[Category:Recipes using mixed herbs]]; +[[Category:Recipes using olive oil]]; +[[Category:Recipes using tomato]] using [[Help:Gadget-HotCat|HotCat]]
4672295
wikitext
text/x-wiki
{{recipe summary
| servings = 3
| time = 20 minutes
| difficulty = 2
| image =
| energy =
| note =
}}
{{recipe}}
<br>
'''Pasta with budget bolognese''' is a pasta dish with bolognese sauce for people on a tight budget.
==Ingredients==
*360g pasta, preferably spaghetti
*2 onions
*2 tomatoes
*1 garlic clove
*1 x 400g tin peeled tomatoes
*300g frozen hamburgers
*Olive oil
*(preferably black) pepper and salt
* Italian mixed herbs
== Equipment ==
* Saucepan, to cook the pasta
* Frying pan, to make the sauce.
* Food processor
==Method==
#Cook the pasta according to the pack instructions.
#Cut the thawed hamburgers into pieces and grind the pieces in the food processor until minced
#Finely chop the onions and the garlic and chop the fresh tomatoes into pieces
#Chop the peeled tomatoes to small pieces, or puree the tomatoes in a food processor.
#Heat the oil in a pan, and sauté the garlic and onion.
#Add the minced hamburgers, and fry for a minute, stirring constantly.
#Add the contents of the peeled tomatoes
#Carefully, heat the sauce for a few minutes.
#Stir in the tomato pieces and let them warm up for a bit.
#Season the sauce with salt, pepper and the Italian mixed herbs.
#Spread the sauce over the pasta and serve.
[[Category:Recipes using pasta and noodles]]
[[Category:Recipes using mixed herbs]]
[[Category:Recipes using olive oil]]
[[Category:Recipes using tomato]]
9hmq55t8mqowl1wpso4bp5uirosst7v
User talk:Tytus1
3
485849
4672268
2026-09-25T05:49:51Z
TechVindicator
3626296
Welcoming user with {{Classwelcome}}
4672268
wikitext
text/x-wiki
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Using]] Wikibooks for class projects
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* It appears that you are editing as part of a class project so please read [[Using_Wikibooks/Class_Project_Guidelines|Using Wikibooks: Class Project Guidelines]] as soon as possible.
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally.
[[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 05:49, 25 September 2026 (UTC)
2qpp56lnhf6zzj4sm7n46b7uc1b8q39
User talk:Jfischm
3
485850
4672269
2026-09-25T05:50:55Z
TechVindicator
3626296
Welcoming user with {{Classwelcome}}
4672269
wikitext
text/x-wiki
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Using]] Wikibooks for class projects
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* It appears that you are editing as part of a class project so please read [[Using_Wikibooks/Class_Project_Guidelines|Using Wikibooks: Class Project Guidelines]] as soon as possible.
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally.
[[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 05:50, 25 September 2026 (UTC)
5qo4e4abr8zqbmkc599oi8v90jr4heo
User talk:Mattj3ttgmu
3
485851
4672270
2026-09-25T05:51:24Z
TechVindicator
3626296
Welcoming user with {{Classwelcome}}
4672270
wikitext
text/x-wiki
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Using]] Wikibooks for class projects
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* It appears that you are editing as part of a class project so please read [[Using_Wikibooks/Class_Project_Guidelines|Using Wikibooks: Class Project Guidelines]] as soon as possible.
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally.
[[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 05:51, 25 September 2026 (UTC)
fkle5796ezvej2j8a026crmzim4d7o4
User talk:Emrodri1
3
485852
4672271
2026-09-25T05:51:51Z
TechVindicator
3626296
Welcoming user with {{Classwelcome}}
4672271
wikitext
text/x-wiki
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Using]] Wikibooks for class projects
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* It appears that you are editing as part of a class project so please read [[Using_Wikibooks/Class_Project_Guidelines|Using Wikibooks: Class Project Guidelines]] as soon as possible.
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally.
[[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 05:51, 25 September 2026 (UTC)
fkle5796ezvej2j8a026crmzim4d7o4
User talk:Swathanan
3
485853
4672272
2026-09-25T05:52:41Z
TechVindicator
3626296
Welcoming user with {{Classwelcome}}
4672272
wikitext
text/x-wiki
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Using]] Wikibooks for class projects
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* It appears that you are editing as part of a class project so please read [[Using_Wikibooks/Class_Project_Guidelines|Using Wikibooks: Class Project Guidelines]] as soon as possible.
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally.
[[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 05:52, 25 September 2026 (UTC)
g9qrbmjukf8snoupuu9ap0e65g2g1ge
User talk:37L4R58
3
485854
4672273
2026-09-25T06:02:07Z
TechVindicator
3626296
Welcoming user with {{Classwelcome}}
4672273
wikitext
text/x-wiki
{| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;"
! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Using]] Wikibooks for class projects
|-
| style="padding:5px;" |
* Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]].
* It appears that you are editing as part of a class project so please read [[Using_Wikibooks/Class_Project_Guidelines|Using Wikibooks: Class Project Guidelines]] as soon as possible.
* To sign your name (on discussion pages), use four tildes, like this: ~~~~
* Learn how to [[Using Wikibooks|use Wikibooks]] and learn more about the community.
* [[WB:CCO|Explore]], [[Wikibooks:Be bold|be bold]], and have fun!
|}
Come introduce yourself in the [[Wikibooks:Reading room/General|general reading room]] or your project in the [[Wikibooks:Reading room/Projects|project reading room]]. If you have any questions, you can ask in the [[Wikibooks:Reading room/Assistance|assistance reading room]] or contact me personally.
[[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 06:02, 25 September 2026 (UTC)
4v53ui6r6bkyv7o77kra85xm3v25lyc
User talk:Matovu Trevor
3
485855
4672292
2026-09-25T09:59:57Z
TechVindicator
3626296
/* This page */ new section
4672292
wikitext
text/x-wiki
== [[User:Matovu Trevor/sandbox|This page]] ==
Hello Matovu, I have checked with AI detectors over a part of your page and they have said that this page has been made with the use of GenAI. I do not know whether this is true; so, when you made the page, did you use ChatGPT or another AI? [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 09:59, 25 September 2026 (UTC)
bu3ms4dzel9w4okyy33oe2b09gj2lav
Category:Book:Infrastructure Policy Casebook
14
485856
4672301
2026-09-25T10:14:05Z
TechVindicator
3626296
Create.
4672301
wikitext
text/x-wiki
{{book category header}}
{{BookCat}}
ptt9drnitry3svbos36hzjb54f56f99