AI App Q

AI App Q — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Dyme (company)

    Dyme (company)

    Dyme is a Dutch fintech start-up and subscription management app that allows users to cancel and renegotiate their recurring costs. In 2019, Dyme was the first independent Dutch company to receive a PSD2 licence from the Netherlands' central bank (DNB). == History == Dyme was founded in 2018 by Joran Iedema, David Knap, David Schogt and Wouter Florijn. The four had previously founded Cycleswap, a bicycle rental platform launched in 2015 and sold to the American platform Spinlister in 2016. The company gained notability in the Netherlands in 2020 when it appeared on Dutch television in Dragons Den, where Pieter Schoen made a €750,000 bid in an attempt to acquire 51.01% of the company. Dyme's Joran Iedema rejected the deal. == Recognition == Wired described Dyme as one of the "hottest start-ups in Europe" in 2021. As of 2021, the company reportedly had 350,000 registered users in the Netherlands and Great Britain.

    Read more →
  • Loab

    Loab

    Loab ( LOBE) is a fictional character that artist and writer Steph Maj Swanson claimed to have discovered with a text-to-image AI model in April 2022. In a viral Twitter thread, Swanson described the images of Loab as an unexpectedly emergent property of the software, saying they discovered them when asking the model to produce something "as different from the prompt as possible". == History == The Sweden-based artist Steph Maj Swanson said that they first generated these images in April 2022 by using the algorithmic technique of "negative prompt weights" accessing latent space. The initial prompt - 'Brando::-1', requesting the opposite of actor Marlon Brando - generated a "skyline logo" with the cryptic lettering "DIGITA PNTICS". Attempting to generate the opposite of this image using the prompt "DIGITA PNTICS skyline logo::-1" yielded what Swanson described as "off-putting images, all of the same devastated-looking older woman with defined triangles of rosacea(?) on her cheeks". Swanson nicknamed the character "Loab", after one of the generated images resembled an album cover that included the printed word "loab". Swanson says that using the image as a prompt for further images produced increasingly violent and gory results. Swanson speculated that something about the image could be "adjacent to extremely gory and macabre imagery in the distribution of the AI's world knowledge". Swanson says that when they combined images of Loab with other pictures, the subsequent results consistently return an image including Loab, regardless of how much distortion they added to the prompts to try and remove her visage. Swanson speculated that the latent space region of the AI map that Loab is located in, in addition to being near gruesome imagery, must be isolated enough that any combinations with other images could only use Loab from her area and no related images due to its isolation. After enough crossbreeding of images and dilution attempts, Swanson was able to eventually generate images without Loab, but found that crossbreeding those diluted images would also eventually lead to a version of Loab to reappear in the resulting images. Swanson has said that "for various reasons" they declined to disclose the software used to create the images. Loab has been referred to as the "first AI-generated cryptid" and as such has gone viral. Despite hyping up the cryptid nature of the discovery in their wording, Swanson admitted that "Loab isn't really haunted, of course", but noted that the mythos that has sprung up around the AI-generated character has gone beyond their initial involvement. Swanson speculated that people sharing pictures and memes of Loab would lead future AIs to use those images as a part of their latent space maps, making her an innate part of the internet landscape, with Swanson adding "If we want to get rid of her, it's already too late." == Response == There has been discussion of whether the Loab series of images are "a legitimate quirk of AI art software, or a cleverly disguised creepypasta." Smithsonian magazine has written that "Loab sparked some lengthy ethical conversations around visual aesthetics, art and technology," and some have criticized the labeling of a woman with rosacea as a horror image, considering this to be "stigmatizing disability". Swanson responded that if the AI map is combining Loab with violent imagery, then that is a "social bias" in the data being used for the image modeling software. The Atlantic writer Stephen Marche described Loab as a "form of expression that has never existed before" whose authorship is unclear and that exists as an "emanation of the collective imagistic heritage, the unconscious visual mind". Laurens Verhagen in de Volkskrant commented that rather than showing that there are "dark horror creatures hidden deep within AI", the existence of Loab instead implies that our current "understanding of AI is limited". Mhairi Aitken at the Alan Turing Institute stated that rather than a "creepy" emergent property, output results like Loab were representative of the "limitations of AI image-generator models" and was more concerned about the urban legends that are born from such "boring" innocuous things and how easily "other people take these things seriously". Carly Cassella for ScienceAlert described Loab as a "modern day tronie" (a style of Dutch painting) that is not representative of an actual person, but just a concept or idea, similar but distinct from works like the Girl With A Pearl Earring. Wired's Joel Warner argued that Loab was only the beginning and that, with AI text generators such as ChatGPT becoming more commonplace, a "linguistic version of Loab" would emerge in that space as well and begin creating ideas through "intentional prompts" or otherwise that will be as disturbing as The 120 Days of Sodom.

    Read more →
  • Content-based image retrieval

    Content-based image retrieval

    Content-based image retrieval, also known as query by image content (QBIC) and content-based visual information retrieval (CBVIR), is the application of computer vision techniques to the image retrieval problem, that is, the problem of searching for digital images in large databases (see this survey for a scientific overview of the CBIR field). Content-based image retrieval is opposed to traditional concept-based approaches (see Concept-based image indexing). "Content-based" means that the search analyzes the contents of the image rather than the metadata such as keywords, tags, or descriptions associated with the image. The term "content" in this context might refer to colors, shapes, textures, or any other information that can be derived from the image itself. CBIR is desirable because searches that rely purely on metadata are dependent on annotation quality and completeness. == Comparison with metadata searching == An image meta search requires humans to have manually annotated images by entering keywords or metadata in a large database, which can be time-consuming and may not capture the keywords desired to describe the image. The evaluation of the effectiveness of keyword image search is subjective and has not been well-defined. In the same regard, CBIR systems have similar challenges in defining success. "Keywords also limit the scope of queries to the set of predetermined criteria." and, "having been set up" are less reliable than using the content itself. == History == The term "content-based image retrieval" seems to have originated in 1992 when it was used by Japanese Electrotechnical Laboratory engineer Toshikazu Kato to describe experiments into automatic retrieval of images from a database, based on the colors and shapes present. Since then, the term has been used to describe the process of retrieving desired images from a large collection on the basis of syntactical image features. The techniques, tools, and algorithms that are used originate from fields such as statistics, pattern recognition, signal processing, and computer vision. === QBIC - Query By Image Content === The earliest commercial CBIR system was developed by IBM and was called QBIC (Query By Image Content). Recent network- and graph-based approaches have presented a simple and attractive alternative to existing methods. While the storing of multiple images as part of a single entity preceded the term BLOB (Binary Large OBject), the ability to fully search by content, rather than by description, had to await IBM's QBIC. === VisualRank === == Technical progress == The interest in CBIR has grown because of the limitations inherent in metadata-based systems, as well as the large range of possible uses for efficient image retrieval. Textual information about images can be easily searched using existing technology, but this requires humans to manually describe each image in the database. This can be impractical for very large databases or for images that are generated automatically, e.g. those from surveillance cameras. It is also possible to miss images that use different synonyms in their descriptions. Systems based on categorizing images in semantic classes like "cat" as a subclass of "animal" can avoid the miscategorization problem, but will require more effort by a user to find images that might be "cats", but are only classified as an "animal". Many standards have been developed to categorize images, but all still face scaling and miscategorization issues. Initial CBIR systems were developed to search databases based on image color, texture, and shape properties. After these systems were developed, the need for user-friendly interfaces became apparent. Therefore, efforts in the CBIR field started to include human-centered design that tried to meet the needs of the user performing the search. This typically means inclusion of: query methods that may allow descriptive semantics, queries that may involve user feedback, systems that may include machine learning, and systems that may understand user satisfaction levels. == Techniques == Many CBIR systems have been developed, but as of 2006, the problem of retrieving images on the basis of their pixel content remains largely unsolved. Different query techniques and implementations of CBIR make use of different types of user queries. === Query By Example === QBE (Query By Example) is a query technique that involves providing the CBIR system with an example image that it will then base its search upon. The underlying search algorithms may vary depending on the application, but result images should all share common elements with the provided example. Options for providing example images to the system include: A preexisting image may be supplied by the user or chosen from a random set. The user draws a rough approximation of the image they are looking for, for example with blobs of color or general shapes. This query technique removes the difficulties that can arise when trying to describe images with words. === Semantic retrieval === Semantic retrieval starts with a user making a request like "find pictures of Abraham Lincoln". This type of open-ended task is very difficult for computers to perform - Lincoln may not always be facing the camera or in the same pose. Many CBIR systems therefore generally make use of lower-level features like texture, color, and shape. These features are either used in combination with interfaces that allow easier input of the criteria or with databases that have already been trained to match features (such as faces, fingerprints, or shape matching). However, in general, image retrieval requires human feedback in order to identify higher-level concepts. === Relevance feedback (human interaction) === Combining CBIR search techniques available with the wide range of potential users and their intent can be a difficult task. An aspect of making CBIR successful relies entirely on the ability to understand the user intent. CBIR systems can make use of relevance feedback, where the user progressively refines the search results by marking images in the results as "relevant", "not relevant", or "neutral" to the search query, then repeating the search with the new information. Examples of this type of interface have been developed. === Iterative/machine learning === Machine learning and application of iterative techniques are becoming more common in CBIR. === Other query methods === Other query methods include browsing for example images, navigating customized/hierarchical categories, querying by image region (rather than the entire image), querying by multiple example images, querying by visual sketch, querying by direct specification of image features, and multimodal queries (e.g. combining touch, voice, etc.) == Content comparison using image distance measures == The most common method for comparing two images in content-based image retrieval (typically an example image and an image from the database) is using an image distance measure. An image distance measure compares the similarity of two images in various dimensions such as color, texture, shape, and others. For example, a distance of 0 signifies an exact match with the query, with respect to the dimensions that were considered. As one may intuitively gather, a value greater than 0 indicates various degrees of similarities between the images. Search results then can be sorted based on their distance to the queried image. Many measures of image distance (Similarity Models) have been developed. === Color === Computing distance measures based on color similarity is achieved by computing a color histogram for each image that identifies the proportion of pixels within an image holding specific values. Examining images based on the colors they contain is one of the most widely used techniques because it can be completed without regard to image size or orientation. However, research has also attempted to segment color proportion by region and by spatial relationship among several color regions. === Texture === Texture measures look for visual patterns in images and how they are spatially defined. Textures are represented by texels which are then placed into a number of sets, depending on how many textures are detected in the image. These sets not only define the texture, but also where in the image the texture is located. Texture is a difficult concept to represent. The identification of specific textures in an image is achieved primarily by modeling texture as a two-dimensional gray level variation. The relative brightness of pairs of pixels is computed such that degree of contrast, regularity, coarseness and directionality may be estimated. The problem is in identifying patterns of co-pixel variation and associating them with particular classes of textures such as silky, or rough. Other methods of classifying textures include: Co-occurrence matrix Laws texture energy Wavelet transform Orthogonal transforms (discrete Chebyshev moments) =

    Read more →
  • Conference on Artificial General Intelligence

    Conference on Artificial General Intelligence

    The Conference on Artificial General Intelligence (AGI) is a meeting of researchers in the field of artificial general intelligence (AGI) organized by the AGI Society steered by Marcus Hutter and Ben Goertzel. It has been held annually since 2008. The conference was initiated by the 2006 Bethesda Artificial General Intelligence Workshop and has since been hosted at various international venues. == Locations and history == AGI-2026 San Francisco State University, California, USA AGI-2025 Reykjavík University, Reykjavík, Iceland AGI-2024 University of Washington, Seattle, Washington, USA AGI-2023 KTH Royal Institute of Technology, Stockholm, Sweden AGI-2022 The Crocodile, Seattle, Washington, USA AGI-2021 Computer History Museum, Mountain View, California, USA AGI-2020 Virtual Conference AGI-2019 Sheraton Shenzhen Futian, Shenzhen, China AGI-2018 Czech Technical University, Prague, Czech Republic AGI-2017 ibis Melbourne, Melbourne, Australia AGI-2016 The New School, New York, New York, USA AGI-2015 Berlin-Brandenburg Academy of Sciences and Humanities, Berlin, Germany AGI-2014 Université Laval, Quebec City, Canada (sponsored by the Cognitive Science Society and the AAAI) AGI-2013 Peking University, Beijing, China (sponsored by the Cognitive Science Society and the AAAI) AGI-2012 University of Oxford, Oxford, United Kingdom (sponsored by the Future of Humanity Institute and Ray Kurzweil) AGI-2011 Google Headquarters, Mountain View, California, USA (sponsored by Google, AAAI, and Ray Kurzweil) AGI-2010 University of Lugano, Lugano, Switzerland (In Memoriam Ray Solomonoff and sponsored by AAAI and Ray Kurzweil) AGI-2009 Crowne Plaza Crystal City, Arlington, Virginia, USA (sponsored by AAAI and Ray Kurzweil) AGI-2008 University of Memphis, Tennessee, USA (sponsored by AAAI) == Notable speakers == The conference has attracted many speakers over the years including Turing Award winners Yoshua Bengio and Richard S. Sutton as well as Ben Goertzel, Marcus Hutter, Jürgen Schmidhuber, Gary Marcus, John E. Laird, Peter Norvig, Joscha Bach, François Chollet, John L. Pollock, Bill Hibbard, Hugo de Garis, Stan Franklin, Steve Omohundro, Randal A. Koene, Ernst Dickmanns, Margaret Boden, David Hanson, Roman Yampolskly, Selmer Bringsjord, Kristinn R. Thórisson and Nick Bostrom.

    Read more →
  • Scikit-learn

    Scikit-learn

    scikit-learn (formerly scikits.learn and also known as sklearn) is a free and open-source machine learning library for the Python programming language. It features various classification, regression and clustering algorithms including support-vector machines, random forests, gradient boosting, k-means and DBSCAN, and is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy. Scikit-learn is a NumFOCUS fiscally sponsored project. == Overview == The scikit-learn project started as scikits.learn, a Google Summer of Code project by French data scientist David Cournapeau. The name of the project derives from its role as a "scientific toolkit for machine learning", originally developed and distributed as a third-party extension to SciPy. The original codebase was later rewritten by other developers. In 2010, contributors Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort and Vincent Michel, from the French Institute for Research in Computer Science and Automation in Saclay, France, took leadership of the project and released the first public version of the library on February 1, 2010. In November 2012, scikit-learn as well as scikit-image were described as two of the "well-maintained and popular" scikits libraries. In 2019, it was noted that scikit-learn is one of the most popular machine learning libraries on GitHub. At that time, the project had over 1,400 contributors and the documentation received 42 million visits in 2018. According to a 2022 Kaggle survey of nearly 24,000 respondents from 173 countries, scikit-learn was identified as the most widely used machine learning framework. == Features == Large catalogue of well-established machine learning algorithms and data pre-processing methods (i.e. feature engineering) Utility methods for common data-science tasks, such as splitting data into train and test sets, cross-validation and grid search Consistent way of running machine learning models (estimator.fit() and estimator.predict()), which libraries can implement Declarative way of structuring a data science process (the Pipeline), including data pre-processing and model fitting == Examples == Fitting a random forest classifier: == Implementation == scikit-learn is largely written in Python, and uses NumPy extensively for high-performance linear algebra and array operations. Furthermore, some core algorithms are written in Cython to improve performance. Support vector machines are implemented by a Cython wrapper around LIBSVM; logistic regression and linear support vector machines by a similar wrapper around LIBLINEAR. In such cases, extending these methods with Python may not be possible. scikit-learn integrates well with many other Python libraries, such as Matplotlib and plotly for plotting, NumPy for array vectorization, Pandas dataframes, SciPy, and many more. == History == scikit-learn was initially developed by David Cournapeau as a Google Summer of Code project in 2007. Later that year, Matthieu Brucher joined the project and started to use it as a part of his thesis work. In 2010, INRIA, the French Institute for Research in Computer Science and Automation, got involved and the first public release (v0.1 beta) was published in late January 2010. The project released its first stable version, 1.0.0, on September 24, 2021. The release was the result of over 2,100 merged pull requests, approximately 800 of which were dedicated to improving documentation. Development continues to focus on bug fixes, efficiency and feature expansion. The latest version, 1.8, was released on December 10, 2025. This update introduced native Array API support, enabling the library to perform GPU computations by directly using PyTorch and CuPy arrays. This version also included bug fixes, improvements and new features, such as efficiency improvements to the fit time of linear models. == Applications == Scikit-learn is widely used across industries for a variety of machine learning tasks such as classification, regression, clustering, and model selection. The following are real-world applications of the library: === Finance and Insurance === AXA uses scikit-learn to speed up the compensation process for car accidents and to detect insurance fraud. Zopa, a peer-to-peer lending platform, employs scikit-learn for credit risk modelling, fraud detection, marketing segmentation, and loan pricing. BNP Paribas Cardif uses scikit-learn to improve the dispatching of incoming mail and manage internal model risk governance through pipelines that reduce operational and overfitting risks. J.P. Morgan reports broad usage of scikit-learn across the bank for classification tasks and predictive analytics in financial decision-making. === Retail and E-Commerce === Booking.com uses scikit-learn for hotel and destination recommendation systems, fraudulent reservation detection, and workforce scheduling for customer support agents. HowAboutWe uses it to predict user engagement and preferences on a dating platform. Lovely leverages the library to understand user behaviour and detect fraudulent activity on its platform. Data Publica uses it for customer segmentation based on the success of past partnerships. Otto Group integrates scikit-learn throughout its data science stack, particularly in logistics optimization and product recommendations. === Media, Marketing, and Social Platforms === Spotify applies scikit-learn in its recommendation systems. Betaworks uses the library for both recommendation systems (e.g., for Digg) and dynamic subspace clustering applied to weather forecasting data. PeerIndex used scikit-learn for missing data imputation, tweet classification, and community clustering in social media analytics. Bestofmedia Group employs it for spam detection and ad click prediction. Machinalis utilizes scikit-learn for click-through rate prediction and relational information extraction for content classification and advertising optimization. Change.org applies scikit-learn for targeted email outreach based on user behaviour. === Technology === AWeber uses scikit-learn to extract features from emails and build pipelines for managing large-scale email campaigns. Solido applies it to semiconductor design tasks such as rare-event estimation and worst-case verification using statistical learning. Evernote, Dataiku, and other tech companies employ scikit-learn in prototyping and production workflows due to its consistent API and integration with the Python ecosystem. === Academia === Télécom ParisTech integrates scikit-learn in hands-on coursework and assignments as part of its machine learning curriculum. == Awards == 2019 Inria-French Academy of Sciences-Dassault Systèmes Innovation Prize: Awarded in recognition of scikit-learn's impact as a major free software breakthrough in machine learning and its role in the digital transformation of science and industry. 2022 Open Science Award for Open Source Research Software: Awarded by the French Ministry of Higher Education and Research as part of the second National Plan for Open Science. The project was recognized in the "Community" category for its technical quality, its large international contributor network, and the quality of its documentation.

    Read more →
  • Opposition to AI data centers

    Opposition to AI data centers

    Since 2024, dozens of local community-led protest campaigns have emerged in opposition to AI data centers. == Motivations == Organized opposition to AI data centers has been driven by concerns about energy use, energy costs, noise pollution, air pollution, and water waste. Opposition sentiment is widespread with a Gallup poll conducted in March 2026 showing that 70% of respondents oppose the construction of new AI data centers in their neighborhood. == Impact == In 2025, local opposition to AI data centers led to the delay or cancellation of projects totalling US$156 billion. == Specific protests and outcomes in the United States == According to Data Center Watch, there are has been a wave of dozens of protests against AI data centers since 2022. Below is a non-exhaustive list of some notable examples. === Goodyear and Buckeye, Arizona: Tract AI Data Center Proposal === In Goodyear and Buckeye, Arizona, a $14 billion project by developer Tract was withdrawn after local authorities blocked necessary rezoning in response to pressure from resident organizers. Opponest stiff resistance due to concerns over building heights, noise pollution, and the potential strain on local utilities. However, the company announced a revised project near the Buckeye airport in August 2024, with the backing of local officials and the mayor. === Peculiar, Missouri: Diode Ventures Harper Road Technology Park Proposal === In Peculiar, Missouri, residents from the group "Peaceful Peculiar" organized to stop a data center proposal from Diode Ventures called Harper Road Technology Park. Citing concerns around noise and light pollution, health, environmental impacts, jobs, property values, and energy use, organizers attended local planning and zoning meetings in large numbers and lobbied councilors to reject the proposal. Ultimately, the city council unanimously rejected the proposal in September 2024. === Chesterton, Indiana: Provident Realty Advisors Proposal === In Chesterton, Indiana, the Texas-based company Provident Reality Advisors applied for a $1.3 billion construction of a data center complex on the Brassie Golf Club property. Provident Realty Advisors wanted to purchase the 200 acres owned by PPM Chesterton LLC in 2024 order to build a data center complex, with eight buildings and an end user of a hyperscaler. The Town Council of Chesterton released a statement saying that they would never support this project, at least not at the scale and location it was planned for. They cited fears of added noise for locals, electrical or water management concerns, the intrusiveness of a data center built next to houses, and more. Provident released a statement shortly after rescinding their plan, because it was clear than the town of Chesterton would not support them. === Cascade Locks, Oregon: Roundhouse Digital Infrastructure Proposal === Startup data center developer Roundhouse Digital Infrastructure had planned to build out a 10-megawatt data center using a vacant industrial building and nearby 10-acre site in the Port of Cascade Locks, Oregon. After significant organized community opposition, the project was abandoned. === Forth Worth, Texas: WUSF 5 Rock Creek East Proposal === In September 2024, the City Council of Fort Worth, Texas approved a zoning change that would allow construction of a data center. In responses, neighbors mounted opposition citing concerns about traffic, light pollution, energy consumption, water use, and noise issues if the data center were to be built. In response to extensive public comments opposing a tax break for the data center, a city councilor withdrew his motion to approve the tax break. As of April, 2026, the future of the project is still uncertain. === Santa Clara, California: GI Partners Proposal === GI partners sought to build a new AI data center in Santa Clara, California, which is already home to many data centers, by acquiring a conditional permit use that would have allowed the developer to knock down a property and replace it with a data center. To obtain this permit they were required to go before members of the Planning Commission. Ultimately, the project was delayed with the Planning Commission requiring GI partners to do more public outreach. === Virginia === ==== Richmond: DC Blox Proposal ==== After residents organized to lobby the municipal government to block the proposal to avoid noise pollution and higher energy use, commissioners denied the company's permit. ==== Catlett Station: Headwaters Site Proposal ==== In Catlett, Virginia, developer Headwaters proposed construction of a data center complex just north of the town in 2020. In response, a residents' organization called "Protect Catlett" was formed to oppose the project. Arguments against the data center involved its impacts on water and power availability, its noise as a residential disturbance, and its destruction of historic and community heritage buildings. Arguments in favor cited job creation and $20 million in local tax revenue if the project were to go through. Protect Catlett utilized town halls and public comments to mobilize opposition to the project. They also dedicated time to educating other residents about the project's negative impacts and canvassing door-to-door in order to garner even more opposition to the project. Ultimately, after fervent opposition from most town residents, the project was canceled by the town and the developer. ==== Culpeper County: Culpeper Acquisitions Proposal ==== Culpeper Acquisitions, LLC, proposed a massive $12 billion data center project in Culpeper County, Virginia, designed to feature 4.6 million square feet of space across nine multi-story buildings. Coalition to Save Culpeper (C2SC) is an activist organization formed to resist the development of the project. C2SC has been active on many fronts including, messaging on social media, reaching out to local officials, and organizing meetings to bring community members with aligned interests together. Ultimately, the project was delayed due to unanimous denial by the Culpeper County Planning Commission on June 12, 2024, which was driven by intense opposition from C2SC. C2SC was successful in their mission largely because they were able to get so many people from the community behind it, and put enough pressure on local officials to take action. ==== Midlothian: Province Group Proposal ==== In late October 2025, the Powhatan County Board of Supervisors in Virginia voted unanimously to approve the $3 billion data center, despite the county's Planning Commission having unanimously recommended denial several days earlier. The reasoning behind their support for the center is that it will generate substantial tax revenue, reducing the county's reliance on residential property taxes. This appeal of lowering residential property taxes is the major selling point for the center's development. The developer, California-based Province Group, incentivized the Board by being agreeable to its conditions for building the center. The center is still on track for development, but faces local resistance, though little information is available on specific groups opposing it. ==== Warrenton: Amazon Proposal ==== Citizens for Farquier County (CFFC) advocates to "preserve the natural, historic and agricultural resources" of their county. Historically, this has meant opposing the building of a dam or lights in front of fast food stores. This group has recently mobilized in opposition of a plan to build data centers for Amazon. They first filed a suit to stop the construction in 2023 and it has been in litigation ever since. The case hinges on opposition to a 2021 zoning amendment which allowed data centers to be built in town. CFFC's lawyer, Dale Mullen, argues that this amendment violates state law, which requires such amendments to state their "public purpose". They argue that the permit for the Amazon data center was "void from the beginning". The CFFC also organized to vote out town council members who approved the first data center and were up for reelection, replacing them with candidates who opposed the data center. In May 2025, after attending town council meetings to speak out against the data center, the planning commission voted 4–1 to remove the zoning amendment allowing data center construction in town, citing public opposition. Currently, CFFC is advocating along with Piedmont Environmental Group, for phasing out data center tax breaks at the state level. ==== France: Marseille opposition ==== In France, local opposition materialised in response to proposed data centre developments, especially in and around the city of Marseille. Opposition came from activists, such as "Clouds Were Under Our Feet" group, residents ,and local politicians. Issues raised related to energy use, environmental impact, and limited local benefits (such as the creation of a few jobs only). == Legislation in the United States == Legal limits and moratoriums on the construction of new d

    Read more →
  • Google AI Studio

    Google AI Studio

    Google AI Studio is a web-based integrated development environment developed by Google for prototyping applications using generative AI models. Released in December 2023 alongside the Gemini API, the platform provides access to Google's Gemini family of models and related tools for image, video, and audio generation. The service targets both developers and non-technical users for testing prompts and generating code for the Gemini API. == History == Google launched AI Studio on December 13, 2023, as the successor to Google MakerSuite. MakerSuite, introduced at Google I/O in May 2023, had provided similar functionality for Google's PaLM language models. The AI Studio was launched alongside the public release of the Gemini API. == Features == AI Studio's interface consists of a central prompt area and a settings panel for model selection and parameter adjustment. The platform supports chat prompts for multi-turn conversations and includes system instructions for defining model behavior, tone, or specific rules. Users can employ zero-shot and few-shot prompting techniques to guide the model's output format. The platform processes various media types including video, audio, and documents, and can generate images through Imagen models, videos through Veo models, and audio through text-to-speech functionality. Additional tools include real-time streaming for screen sharing and live analysis, code execution in a sandboxed Python environment, grounding with Google Search for current information, URL context for analyzing specific web pages, and a thinking mode for complex reasoning tasks. == Available models == The platform provides access to several Google AI models including the Gemini language models, Imagen for image generation, Veo for video generation, LearnLM for educational applications, and Gemma, Google's open-source model family. == Privacy and data usage == Google AI Studio's data handling differs between free and paid users. For free tier users, Google uses submitted prompts, uploaded files, and generated responses to improve its products and services, with human reviewers potentially reading and annotating the data after disconnection from user accounts. Google advises against submitting sensitive information on the free tier. Users who enable Google Cloud Billing are considered paid service users, and their data is not used for product improvement. Data is processed according to Google's Data Processing Addendum and retained temporarily for abuse monitoring. == Availability == The platform is available at no cost, with API usage subject to a free tier with daily and per-minute rate limits. Access is restricted to users aged 18 and older in specific countries and territories. The service was initially unavailable in the United Kingdom and European Economic Area due to regulatory concerns, which drew user complaints. == Reception == Reviews have noted the platform's accessibility and integration with Gemini models, with features such as real-time screen sharing and large context windows cited as notable capabilities. However, reviewers have raised concerns about the privacy implications for free tier users, whose data is used for model training. Some users have reported inconsistent performance with features like screen streaming and issues with folder uploads for large datasets. The initial geographic restrictions were a point of criticism among developers in affected regions.

    Read more →
  • Combs method

    Combs method

    The Combs method is a rule base reduction method of writing fuzzy logic rules described by William E. Combs in 1997. It is designed to prevent combinatorial explosion in fuzzy logic rules. The Combs method takes advantage of the logical equality ( ( p ∧ q ) ⇒ r ) ⟺ ( ( p ⇒ r ) ∨ ( q ⇒ r ) ) {\displaystyle ((p\land q)\Rightarrow r)\iff ((p\Rightarrow r)\lor (q\Rightarrow r))} . == Equality proof == The simplest proof of given equality involves usage of truth tables: == Combinatorial explosion == Suppose we have a fuzzy system that considers N variables at a time, each of which can fit into at least one of S sets. The number of rules necessary to cover all the cases in a traditional fuzzy system is S N {\displaystyle S^{N}} , whereas the Combs method would need only S × N {\displaystyle S\times N} rules. For example, if we have five sets and five variables to consider to produce one output, covering all the cases would require 3125 rules in a traditional system, while the Combs method would require only 25 rules, taming the combinatorial explosion that occurs when more inputs or more sets are added to the system. This article will focus on the Combs method itself. To learn more about the way rules are traditionally formed, see fuzzy logic and fuzzy associative matrix. == Example == Suppose we were designing an artificial personality system that determined how friendly the personality is supposed to be towards a person in a strategic video game. The personality would consider its own fear, trust, and love in the other person. A set of rules in the Combs system might look like this: The table translates to: [IF Fear IS Unafraid THEN Friendship IS Enemies OR IF Fear IS ModerateFear THEN Friendship IS Neutral OR IF Fear IS Afraid THEN Friendship IS GoodFriends ] OR [IF Trust IS Distrusting THEN Friendship IS Enemies OR IF Trust IS ModerateTrust THEN Friendship IS Neutral OR IF Trust IS Trusting THEN Friendship IS GoodFriends] OR [IF Love IS Unloving THEN Friendship IS Enemies OR IF Love IS ModerateLove THEN Friendship IS Neutral OR IF Love IS Loving THEN Friendship IS GoodFriends] In this case, because the table follows a straightforward pattern in the output, it could be rewritten as: Each column of the table maps to the output provided in the last row. To obtain the output of the system, we just average the outputs of each rule for that output. For example, to calculate how much the computer is Enemies with the player, we take the average of how much the computer is Unafraid, Distrusting, and Unloving of the player. When all three averages are obtained, the result can then be defuzzified by any of the traditional means.

    Read more →
  • Seq2seq

    Seq2seq

    Seq2seq is a family of machine learning approaches used for natural language processing. Originally developed by Lê Viết Quốc, a Vietnamese computer scientist and a machine learning pioneer at Google Brain, this framework has become foundational in many modern AI systems. Applications include language translation, image captioning, conversational models, speech recognition, and text summarization. Seq2seq uses sequence transformation: it turns one sequence into another sequence. == History == One naturally wonders if the problem of translation could conceivably be treated as a problem in cryptography. When I look at an article in Russian, I say: 'This is really written in English, but it has been coded in some strange symbols. I will now proceed to decode. seq2seq is an approach to machine translation (or more generally, sequence transduction) with roots in information theory, where communication is understood as an encode-transmit-decode process, and machine translation can be studied as a special case of communication. This viewpoint was elaborated, for example, in the noisy channel model of machine translation. In practice, seq2seq maps an input sequence into a real-numerical vector by using a neural network (the encoder), and then maps it back to an output sequence using another neural network (the decoder). The idea of encoder-decoder sequence transduction had been developed in the early 2010s. The papers most commonly cited as the originators that produced seq2seq are two papers from 2014. In the seq2seq as proposed by them, both the encoder and the decoder were LSTMs. This had the "bottleneck" problem, since the encoding vector has a fixed size, so for long input sequences, information would tend to be lost, as they are difficult to fit into the fixed-length encoding vector. The attention mechanism, proposed in 2014, resolved the bottleneck problem. They called their model RNNsearch, as it "emulates searching through a source sentence during decoding a translation". A problem with seq2seq models at this point was that recurrent neural networks are difficult to parallelize. The 2017 publication of Transformers resolved the problem by replacing the encoding RNN with self-attention Transformer blocks ("encoder blocks"), and the decoding RNN with cross-attention causally-masked Transformer blocks ("decoder blocks"). === Priority dispute === One of the papers cited as the originator for seq2seq is (Sutskever et al 2014), published at Google Brain while they were on Google's machine translation project. The research allowed Google to overhaul Google Translate into Google Neural Machine Translation in 2016. Tomáš Mikolov claims to have developed the idea (before joining Google Brain) of using a "neural language model on pairs of sentences... and then [generating] translation after seeing the first sentence"—which he equates with seq2seq machine translation, and to have mentioned the idea to Ilya Sutskever and Quoc Le (while at Google Brain), who failed to acknowledge him in their paper. Mikolov had worked on RNNLM (using RNN for language modelling) for his PhD thesis, and is more notable for developing word2vec. == Architecture == The main reference for this section is. === Encoder === The encoder is responsible for processing the input sequence and capturing its essential information, which is stored as the hidden state of the network and, in a model with attention mechanism, a context vector. The context vector is the weighted sum of the input hidden states and is generated for every time instance in the output sequences. === Decoder === The decoder takes the context vector and hidden states from the encoder and generates the final output sequence. The decoder operates in an autoregressive manner, producing one element of the output sequence at a time. At each step, it considers the previously generated elements, the context vector, and the input sequence information to make predictions for the next element in the output sequence. Specifically, in a model with attention mechanism, the context vector and the hidden state are concatenated together to form an attention hidden vector, which is used as an input for the decoder. The seq2seq method developed in the early 2010s uses two neural networks: an encoder network converts an input sentence into numerical vectors, and a decoder network converts those vectors to sentences in the target language. The Attention mechanism was grafted onto this structure in 2014 and is shown below. Later it was refined into the encoder-decoder Transformer architecture of 2017. === Training vs prediction === There is a subtle difference between training and prediction. During training time, both the input and the output sequences are known. During prediction time, only the input sequence is known, and the output sequence must be decoded by the network itself. Specifically, consider an input sequence x 1 : n {\displaystyle x_{1:n}} and output sequence y 1 : m {\displaystyle y_{1:m}} . The encoder would process the input x 1 : n {\displaystyle x_{1:n}} step by step. After that, the decoder would take the output from the encoder, as well as the as input, and produce a prediction y ^ 1 {\displaystyle {\hat {y}}_{1}} . Now, the question is: what should be input to the decoder in the next step? A standard method for training is "teacher forcing". In teacher forcing, no matter what is output by the decoder, the next input to the decoder is always the reference. That is, even if y ^ 1 ≠ y 1 {\displaystyle {\hat {y}}_{1}\neq y_{1}} , the next input to the decoder is still y 1 {\displaystyle y_{1}} , and so on. During prediction time, the "teacher" y 1 : m {\displaystyle y_{1:m}} would be unavailable. Therefore, the input to the decoder must be y ^ 1 {\displaystyle {\hat {y}}_{1}} , then y ^ 2 {\displaystyle {\hat {y}}_{2}} , and so on. It is found that if a model is trained purely by teacher forcing, its performance would degrade during prediction time, since generation based on the model's own output is different from generation based on the teacher's output. This is called exposure bias or a train/test distribution shift. A 2015 paper recommends that, during training, randomly switch between teacher forcing and no teacher forcing. === Attention for seq2seq === The attention mechanism is an enhancement introduced by Bahdanau et al. in 2014 to address limitations in the basic Seq2Seq architecture where a longer input sequence results in the hidden state output of the encoder becoming irrelevant for the decoder. It enables the model to selectively focus on different parts of the input sequence during the decoding process. At each decoder step, an alignment model calculates the attention score using the current decoder state and all of the attention hidden vectors as input. An alignment model is another neural network model that is trained jointly with the seq2seq model used to calculate how well an input, represented by the hidden state, matches with the previous output, represented by attention hidden state. A softmax function is then applied to the attention score to get the attention weight. In some models, the encoder states are directly fed into an activation function, removing the need for alignment model. An activation function receives one decoder state and one encoder state and returns a scalar value of their relevance. Consider the seq2seq language English-to-French translation task. To be concrete, let us consider the translation of "the zone of international control ", which should translate to "la zone de contrôle international ". Here, we use the special token as a control character to delimit the end of input for both the encoder and the decoder. An input sequence of text x 0 , x 1 , … {\displaystyle x_{0},x_{1},\dots } is processed by a neural network (which can be an LSTM, a Transformer encoder, or some other network) into a sequence of real-valued vectors h 0 , h 1 , … {\displaystyle h_{0},h_{1},\dots } , where h {\displaystyle h} stands for "hidden vector". After the encoder has finished processing, the decoder starts operating over the hidden vectors, to produce an output sequence y 0 , y 1 , … {\displaystyle y_{0},y_{1},\dots } , autoregressively. That is, it always takes as input both the hidden vectors produced by the encoder, and what the decoder itself has produced before, to produce the next output word: ( h 0 , h 1 , … {\displaystyle h_{0},h_{1},\dots } , "") → "la" ( h 0 , h 1 , … {\displaystyle h_{0},h_{1},\dots } , " la") → "la zone" ( h 0 , h 1 , … {\displaystyle h_{0},h_{1},\dots } , " la zone") → "la zone de" ... ( h 0 , h 1 , … {\displaystyle h_{0},h_{1},\dots } , " la zone de contrôle international") → "la zone de contrôle international " Here, we use the special token as a control character to delimit the start of input for the decoder. The decoding terminates as soon as "" appears in the decoder output. ==

    Read more →
  • International Olympiad in Artificial Intelligence

    International Olympiad in Artificial Intelligence

    The International Olympiad in Artificial Intelligence (IOAI) is an annual International Science Olympiad in the field of artificial intelligence (AI) for secondary education students under the age of 20. The first IOAI was held in Burgas, Bulgaria, in 2024. Each country or territory may send up to two teams, each consisting of up to four students supported by one leader. Participants are selected through a multi-stage National Olympiad in Artificial Intelligence (NOAI) and/or a Regional Olympiad such as the NAOAI or APOAI. Participants at the IOAI compete on an individual basis. As of 2025, there were 61 countries and territories participating in the IOAI. Three hundred students participated in IOAI 2025. As of 2026, 130 countries and territories are accredited for participation in the IOAI. == Competition Structure == The IOAI consists of three contests: the Individual Contest, the Team Challenge, and the GAITE contest. Medals are awarded based solely on the Individual Contest. === Individual Contest === The Individual Contest is the main competition of the IOAI in which contestants compete individually on separate computers and are not permitted to communicate during the contest. Medals are awarded solely on the basis of the total score from the two-day Individual Contest. The Individual Contest consists of two on-site contest days (six hours per day), preceded by an at-home practice round and an on-site practice session. In IOAI 2025, three at-home problems were released for preparation approximately one month before the on-site contest. Results from this at-home round do not affect final results. The first on-site contest day (Individual Contest 1) comprises three tasks as extensions and continuations of the at-home tasks, while the second day (Individual Contest 2) comprises two or three tasks which are novel and different from the at-home tasks. The Individual Contest tasks span various AI domains such as machine learning, natural language processing, and computer vision. The IOAI 2025 contest rules describe tasks as requiring typical machine-learning workflows, including writing code, fitting models on training data, and running inference on test data, using identical local machines and GPU resources (minimum 24 GB RAM). Tasks, datasets, and submissions are handled through a contest platform (Bohrium), including a web-based Jupyter notebook environment for GPU access. Internet access is restricted to a whitelist of documentation sites and an integrated compact large language model accessible within the platform. The use of external APIs are prohibited unless a task explicitly allows them. In IOAI 2025, each contest task was scored up to 100 points and could include multiple subtasks. Scores are normalized using a baseline solution and a maximum score derived from either a Scientific Committee solution or the best contestant submission. Contestants can view only their own scores during the contest; a live scoreboard may be available publicly outside the contest hall but is not permitted to be viewed by contestants during the contest. For non-English-speaking teams, the IOAI hold a translation session beginning three hours before each contest day in which team leaders review and may amend machine-translated task statements; translations must match the English original and are published after the contest. The IOAI committee also enforces quarantine restrictions during these translation sessions, where neither contestants or team leaders may not use cell phones, laptops, and other communication devices. === Team Challenge === The Team Challenge is a team-based component of the IOAI. The results of this part do not affect the distribution of medals. The IOAI 2025 rules describe it as a “creative and AI-oriented challenge” in which a team's contestants sit together and cooperate, with the format varying by year. In IOAI 2024, teams worked with existing AI image and video generation tools to produce a visual result. In IOAI 2025, teams were assigned to program a robot to complete various tasks. === GAITE Contest === The GAITE (Global AI Talent Empowerment) contest is a simplified version of the individual contest with a separate scoreboard, where participants may ask for hints. It is designed for countries and territories with limited International Science Olympiads history, and it awards alternative prizes instead of medals. == Awards Distribution == The top 50% of the participants in the individual contest receive gold, silver and bronze medals in ratio of 1:2:3, respectively. The top three individuals receive honorary trophies. As in other International Science Olympiads, if an individual is in the top 50% on one of the days, but does not receive a medal, they receive an honorary mention during the awards ceremony. The GAITE contest has similar cutoff logic, but receives a reward instead of a medal. The top three teams in the Team Challenge receive trophies. == National selection and regional competitions == National delegations are selected through country-level qualification processes referred to as National Olympiads in Artificial Intelligence (NOAI) or equivalent, which are widely known for their low success rates. Although the total number of participants worldwide is not published, available data indicate exceptionally competitive national pools; for example, Brazil reports over 716,000 competitors, while Russia reports more than 72,000. In addition, Regional Olympiads (for example, APOAI or NAOAI) provide continent-level competition and preparation platforms in most regions. === National Selection (National Olympiads in Artificial Intelligence) === Participating countries and territories select their students for the IOAI through a National Olympiad in Artificial Intelligence (NOAI) or an equivalent process. The names of these selection processes differ by country, but almost all of them (excluding newer countries participating in the GAITE contest) have in common that the process comprises multiple and/or extremely rigorous selection stages. United States / Canada – The USA–North America AI Olympiad (USAAIO) is a three-round process including an invitational in-person round and a subsequent selection camp, after which a national delegation is selected for IOAI. Russia – The Russian Olympiad in Artificial Intelligence is organized as a multi-stage process (training, qualification, main round, final). Organizers reported 72,316 registrations for the training round and 52,260 registrations for the qualifying round in one season, with tasks spanning mathematics, algorithms/programming, and machine learning; 977 students were disqualified following plagiarism checks. Japan – Japan's national selection consists of multiple stages, beginning with the Japan Olympiad in Artificial Intelligence (JOAI), a large-scale Kaggle-style competition. High-performing participants advance through additional assessment stages, including written solution reports and technical interviews. From this process, eight students are selected for the APOAI team, with four ultimately chosen to represent Japan at the IOAI. Brazil – Brazil's National Olympiad in Artificial Intelligence (ONIA) is conducted as a large competition which consists of progressive rounds of evaluation. It identifies 28 top students from over 716,000 competitors, four of which are selected for the IOAI. The competition is held in four phases across two cycles, including a two-step third phase and a final training-and-evaluation phase that selects a four-student national team. Singapore – Singapore's national Olympiad consists of two rounds: an online preliminary round (300 MCQs in 3 hours) selects the top 150 performers to advance to the final assessment, which includes both theory questions and Python programming tasks. Additional training and selection may follow the finals for top performers. Poland – The Polish AI Olympiad adopts a two-stage structure: an open online first stage (at-home tasks) and a second-stage competitive camp with 30 selected participants competing for a four-person IOAI team. France – The Olympiades Françaises d'Intelligence Artificielle (OFIA), organized by France-IOI, follow a three-stage structure consisting of an open online qualification round, a second selection round, and a multi-day national training camp and final in Paris. Bangladesh – The Bangladesh AI Olympiad (BdAIO) selects competitors in three rounds: the online preliminary round, the national finals, and the team selection camp. In 2025, 406 participants competed in the national finals. Norway – The Norwrgian AI Olympiad (NOKI) is a three-stage selection system; however, unlike other countries, its first two rounds are shared with the Norwegian Informatics Olympiad. The national Olympiad reports 1,180 participants in the first round. Hong Kong – The national Olympiad reported more than 800 preliminary-round entrants, narrowing through multiple rounds to 25 finalists, with a subsequent

    Read more →
  • Question (short story)

    Question (short story)

    "Question" is a science fiction short story by American writer Isaac Asimov. The story first appeared in the March 1955 issue of Computers and Automation (thought to be the first computer magazine), and was reprinted in the April 30, 1957, issue of Science World. It is the first of a loosely connected series of stories concerning a fictional supercomputer called Multivac. The story concerns two technicians who are servicing Multivac, and their argument over whether or not the machine is truly intelligent and able to think. Multivac, however, supplies the answer on its own. After the reprint, another author, Robert Sherman Townes, noticed the climax in the last sentence was very similar to one of his own stories, "Problem for Emmy" (Startling Stories, June 1952), and wrote to Asimov about it. After searching in his library, Asimov did find the original story and, although he did not recall having read it, admitted that the endings were pretty similar. He then replied to Townes, apologizing and promising the story would never again be published, and it never was. Asimov mentioned "Question" in an editorial called "Plagiarism" which appeared in the August 1985 issue of Asimov's Science Fiction (although he did not mention Townes' name or the title of either story). "Plagiarism" was reprinted in Asimov's collection Gold (1995).

    Read more →
  • Fuzzy classification

    Fuzzy classification

    Fuzzy classification is the process of grouping elements into fuzzy sets whose membership functions are defined by the truth value of a fuzzy propositional function. A fuzzy propositional function is analogous to an expression containing one or more variables, such that when values are assigned to these variables, the expression becomes a fuzzy proposition. Accordingly, fuzzy classification is the process of grouping individuals having the same characteristics into a fuzzy set. A fuzzy classification corresponds to a membership function μ C ~ : P F ~ × U → T ~ {\textstyle \mu _{\tilde {C}}:{\tilde {PF}}\times U\to {\tilde {T}}} that indicates the degree to which an individual i ∈ U {\textstyle i\in U} is a member of the fuzzy class C ~ {\textstyle {\tilde {C}}} , given its fuzzy classification predicate Π ~ C ~ ∈ P F ~ {\textstyle {\tilde {\Pi }}_{\tilde {C}}\in {\tilde {PF}}} . Here, T ~ {\textstyle {\tilde {T}}} is the set of fuzzy truth values, i.e., the unit interval [ 0 , 1 ] {\textstyle [0,1]} . The fuzzy classification predicate Π ~ C ~ ( i ) {\textstyle {\tilde {\Pi }}_{\tilde {C}}(i)} corresponds to the fuzzy restriction " i {\textstyle i} is a member of C ~ {\textstyle {\tilde {C}}} ". == Classification == Intuitively, a class is a set that is defined by a certain property, and all objects having that property are elements of that class. The process of classification evaluates for a given set of objects whether they fulfill the classification property, and consequentially are a member of the corresponding class. However, this intuitive concept has some logical subtleties that need clarification. A class logic is a logical system which supports set construction using logical predicates with the class operator { ⋅ | ⋅ } {\textstyle \{\cdot |\cdot \}} . A class C = { i | Π ( i ) } {\displaystyle C=\{i|\Pi (i)\}} is defined as a set C of individuals i satisfying a classification predicate Π which is a propositional function. The domain of the class operator { .| .} is the set of variables V and the set of propositional functions PF, and the range is the powerset of this universe P(U) that is, the set of possible subsets: { ⋅ | ⋅ } : V × P F → P ( U ) {\displaystyle \{\cdot |\cdot \}:V\times PF\rightarrow P(U)} Here is an explanation of the logical elements that constitute this definition: An individual is a real object of reference. A universe of discourse is the set of all possible individuals considered. A variable V :→ R {\textstyle V:\rightarrow R} is a function which maps into a predefined range R without any given function arguments: a zero-place function. A propositional function is "an expression containing one or more undetermined constituents, such that, when values are assigned to these constituents, the expression becomes a proposition". In contrast, classification is the process of grouping individuals having the same characteristics into a set. A classification corresponds to a membership function μ that indicates whether an individual is a member of a class, given its classification predicate Π. μ : P F × U → T {\displaystyle \mu :PF\times U\rightarrow T} The membership function maps from the set of propositional functions PF and the universe of discourse U into the set of truth values T. The membership μ of individual i in Class C is defined by the truth value τ of the classification predicate Π. μ C ( i ) := τ ( Π ( i ) ) {\displaystyle \mu C(i):=\tau (\Pi (i))} In classical logic the truth values are certain. Therefore a classification is crisp, since the truth values are either exactly true or exactly false.

    Read more →
  • Comparison of color models in computer graphics

    Comparison of color models in computer graphics

    This article provides introductory information about the RGB, HSV, and HSL color models from a computer graphics (web pages, images) perspective. An introduction to colors is also provided to support the main discussion. == Basics of color == === Primary colors and hue === First, "color" refers to the human brain's subjective interpretation of combinations of a narrow band of wavelengths of light. For this reason, the definition of "color" is not based on a strict set of physical phenomena. Therefore, even basic concepts like "primary colors" are not clearly defined. For example, traditional "Painter's Colors" use red, blue, and yellow as the primary colors, "Printer's Colors" use cyan, yellow, and magenta, and "Light Colors" use red, green, and blue. "Light colors", more formally known as additive colors, are formed by combining red, green, and blue light. This article refers to additive colors and refers to red, green, and blue as the primary colors. Hue is a term describing a pure color, that is, a color not modified by tinting or shading (see below). In additive colors, hues are formed by combining two primary colors. When two primary colors are combined in equal intensities, the result is a "secondary color". === Color wheel === A color wheel is a tool that provides a visual representation of the relationships between all possible hues. The primary colors are arranged around a circle at equal (120 degree) intervals. (Warning: Color wheels frequently depict "Painter's Colors" primary colors, which leads to a different set of hues than additive colors.) The illustration shows a simple color wheel based on the additive colors. Note that the position (top, right) of the starting color, typically red, is arbitrary, as is the order of green and blue (clockwise, counter-clockwise). The illustration also shows the secondary colors, yellow, cyan, and magenta, located halfway between (60 degrees) the primary colors. == Complementary color == The complement of a hue is the hue that is opposite it (180 degrees) on the color wheel. Using additive colors, mixing a hue and its complement in equal amounts produces white. === Tints and shades === The following discussion uses an illustration involving three projectors pointing to the same spot on a screen. Each projector is capable of generating one hue. The "intensities" of each projector are "matched" and can be equally adjusted from zero to full. (Note: "Intensity" is used here in the same sense as the RGB color model. The subject of matching, or "gamma correction", is beyond the level of this article.) A shade is produced by "dimming" a maximum chroma color. Painters refer to this as "adding black". In our illustration, one projector is set to full intensity, a second is set to some intensity between zero and full, and third is set to zero. "Dimming" is accomplished by decreasing each projector's intensity setting to the same fraction of its start setting. In the shade example, with any fully shaded hue, that all three projectors are set to zero intensity, resulting in black. A tint is produced by "lightening" a maximum chroma color. Painters refer to this as "adding white". In our illustration, one projector is set to full intensity, a second is set to some intensity between zero and full, and third is set to zero. "Lightening" is accomplished by increasing each projector's intensity setting by the same fraction from its start setting to full. In the tinting example, note that the third projector is now contributing. When the hue is fully lightened, all three projectors are each at full intensity, and the result is white. Note an attribute of the total intensity in the additive model. If full intensity for one projector is 1, then a primary color has a combined intensity of 1. A secondary color has a total intensity of 2. White has a total intensity of 3. Tinting, or "adding white", increases the total intensity of the hue. While this is simply a fact, the HSL model will take this fact into account in its design. === Tones === Tone is a general term, typically used by painters, to refer to the effects of reducing the "colorfulness" of a maximum chroma color; painters refer to it as "adding gray". Note that gray is not a color or even a single concept but refers to all the range of values between black and white where all three primary colors are equally represented. The general term is provided as more specific terms have conflicting definitions in different color models. Thus, shading takes a hue toward black, tinting takes a hue towards white, and tones cover the range between. == Choosing a color model == No one color model is necessarily "better" than another. Typically, the choice of a color model is dictated by external factors, such as a graphics tool or the need to specify colors according to the CSS2 or CSS3 standard. The following discussion only describes how the models function, centered on the concepts of hue, shade, tint, and tone. === RGB === The RGB model's approach to colors is important because: It directly reflects the physical properties of "Truecolor" displays As of 2011, most graphic cards define pixel values in terms of the colors red, green, and blue. The typical range of intensity values for each color, 0–255, is based on taking a binary number with 32 bits and breaking it up into four bytes of 8 bits each. 8 bits can hold a value from 0 to 255. The fourth byte is used to specify the "alpha", or the opacity, of the color. Opacity comes into play when layers with different colors are stacked. If the color in the top layer is less than fully opaque (alpha < 255), the color from underlying layers "shows through". In the RGB model, hues are represented by specifying one color as full intensity (255), a second color with a variable intensity, and the third color with no intensity (0). The following provides some examples using red as the full-intensity and green as the partial-intensity colors; blue is always zero: Shades are created by multiplying the intensity of each primary color by 1 minus the shade factor, in the range 0 to 1. A shade factor of 0 does nothing to the hue, a shade factor of 1 produces black: new intensity = current intensity (1 – shade factor) The following provides examples using orange: Tints are created by modifying each primary color as follows: the intensity is increased so that the difference between the intensity and full intensity (255) is decreased by the tint factor, in the range 0 to 1. A tint factor of 0 does nothing, a tint factor of 1 produces white: new intensity = current intensity + (255 – current intensity) tint factor The following provides examples using orange: Tones are created by applying both a shade and a tint. The order in which the two operations are performed does not matter, with the following restriction: when a tint operation is performed on a shade, the intensity of the dominant color becomes the "full intensity"; that is, the intensity value of the dominant color must be used in place of 255. The following provides examples using orange: === HSV === The HSV, or HSB, model describes colors in terms of hue, saturation, and value (brightness). Note that the range of values for each attribute is arbitrarily defined by various tools or standards. Be sure to determine the value ranges before attempting to interpret a value. Hue corresponds directly to the concept of hue in the Color Basics section. The advantages of using hue are The angular relationship between tones around the color circle is easily identified Shades, tints, and tones can be generated easily without affecting the hue Saturation corresponds directly to the concept of tint in the Color Basics section, except that full saturation produces no tint, while zero saturation produces white, a shade of gray, or black. Value corresponds directly to the concept of intensity in the Color Basics section. Pure colors are produced by specifying a hue with full saturation and value Shades are produced by specifying a hue with full saturation and less than full value Tints are produced by specifying a hue with less than full saturation and full value Tones are produced by specifying a hue and both less than full saturation and value White is produced by specifying zero saturation and full value, regardless of hue Black is produced by specifying zero value, regardless of hue or saturation Shades of gray are produced by specifying zero saturation and between zero and full value The advantage of HSV is that each of its attributes corresponds directly to the basic color concepts, which makes it conceptually simple. The perceived disadvantage of HSV is that the saturation attribute corresponds to tinting, so desaturated colors have increasing total intensity. For this reason, the CSS3 standard plans to support RGB and HSL but not HSV. === HSL === The HSL model describes colors in terms of hue, saturation, and lightness (also called luminance). (Note: the definition of sa

    Read more →
  • House of Suns

    House of Suns

    House of Suns is a 2008 science fiction novel by Welsh author Alastair Reynolds. The novel was shortlisted for the 2009 Arthur C. Clarke Award. == Setting == Approximately six million years in the future, humanity has spread throughout the Milky Way galaxy, which appears devoid of any other organic sentient life. The galaxy is populated by numerous civilizations of humans and posthumans of widely varying levels of development. A civilization of sentient robots known as the Machine People coexists peacefully with humanity. Technologies of the era include anti-gravity, inertia damping, force fields, stellar engineering, and stasis fields. Also of note is the "Absence"—the mysterious disappearance of the Andromeda Galaxy. Large-scale human civilizations almost invariably seem to collapse and disappear within a few millennia (a phenomenon referred to as "turnover"), the limits of sub-lightspeed travel making it too difficult to hold interstellar empires together. Consequently, the most powerful entities in the galaxy are the "Lines"—familial organizations made of cloned "shatterlings". The Lines do not inhabit planets, but instead travel through space, holding reunions after they have performed a "circuit" of the galaxy; something that takes about 200,000 years. House of Suns concerns the Gentian Line, also known as the House of Flowers, composed of Abigail Gentian and her 999 clones (or "shatterlings"), male and female: exactly which of the 1,000 shatterlings is the original Abigail Gentian is unknown. The clones and Abigail travel the Milky Way Galaxy, helping young civilizations, collecting knowledge, and experiencing what the universe has to offer. Members of the Gentian Line are named after flowering plants. == Synopsis == The novel is divided into eight parts, with the first chapter of each part taking the form of a narrative flashback to Abigail Gentian's early life (six million years earlier, in the 31st century), before the cloning and the creation of the Gentian Line. Each subsequent chapter is narrated from the first-person perspective of two shatterlings named Campion and Purslane, alternating between them each chapter. Campion and Purslane are in a relationship, which is frowned upon, even punishable, by the Line. The primary storyline begins as Campion and Purslane are roughly fifty years late to the 32nd Gentian reunion. They take a detour to contact a posthuman known as ‘Ateshga’ in hopes of getting a replacement ship for Campion because his is getting old (several million years old). After being tricked by Ateshga, Campion and Purslane manage to turn the tables on him and leave his planet with a being he had been keeping captive, a golden robot called Hesperus. Hesperus is a member of the "Machine People", an advanced civilization of robots, and supposedly the only non-human sentient society in existence. The two shatterlings hope that the rescue of Hesperus will let them off the hook for their lateness, as returning him to his people (who will be at the reunion as guests of other shatterlings) will put the Gentian Line on good terms with the Machine People. However, before reaching the reunion world, Campion and Purslane encounter an emergency distress signal from Fescue, another Gentian shatterling. There was a vicious attack on the reunion world; an ambush in which the majority of the Gentian Line was wiped out. The identity of the responsible party is unknown, but the attackers used the supposedly long-vanished 'Homunculus' weapons – monstrous spacetime-bending weapons that were created ages ago, but were ordered to be destroyed by another Line. Despite Fescue's warning, Campion and Purslane approach the reunion system to look for survivors. They manage to find the remains of a ship with several Gentian members still alive, and rescue them and the four enemy prisoners they had captured. Hesperus, however, is gravely injured in the process by remaining ambushers. The group escapes and make their way to the Gentian backup meeting planet, Neume, in the hope of re-grouping with any other Gentians who may have survived the ambush. Upon reaching Neume, Campion, Purslane and the other shatterlings they rescued are greeted by the few Gentian survivors of the ambush (numbering only in the forties, compared to the hundreds that existed before the ambush). They also meet two members of the Machine People: Cadence and Cascade, guests of another shatterling. During the next few days, the interrogation of the prisoners commences. Another Gentian, Cyphel, is mysteriously murdered, which fuels the Line's concerns that there is a traitor among them. As a way of punishing Campion for transgressions against the Line, Purslane is made to give up her ship, the Silver Wings of Morning (one of the fastest and most powerful in the Line) to Cadence and Cascade, ostensibly so they can return to the Machine People with news of the ambush, in a bid to gain the Line some assistance. Hesperus, still critically wounded following the rescue of the survivors, is taken to the Neumean "Spirit of the Air", an ancient posthuman machine-intelligence, in the hopes that it will fix him. The Spirit takes Hesperus away and returns him some time later, though apparently still not functioning. The robots Cadence and Cascade make preparations to leave on Purslane's ship. They agree to take him aboard and return him to their people, who they promise may be able to help Hesperus. Purslane accompanies them to her ship, where she must be physically present to give the ship order to transfer control over to the robots. On their way to the bridge, Hesperus suddenly springs to life, grabbing Purslane and hiding her while Cadence and Cascade are whisked along to the bridge. Hersperus quickly explains that Cadence and Cascade are actually planning on hijacking the ship. Bewildered by this sudden change of events, Purslane delays in acting, not sure if she should trust Hesperus, before deciding to ask the ship to detain and eject the robots in the bridge. By then, though, it is too late. Cadence and Cascade hack into the ship's computer, taking it over, and take off from Neume with Hesperus and Purslane still aboard. Campion and several other shatterlings immediately launch a pursuit. Together Hesperus and Purslane find a hideout in a smaller ship in the hold of the Silver Wings of Morning. Using information gained from the other two robots and his own memories, Hesperus (who is now an amalgamation of both Hesperus and the Spirit of the Air) has pieced together what is going on: Cadence and Cascade have discovered that the Line was involved in the accidental extermination of a forgotten earlier race of machine people, dubbed the "First Machines". The Commonality (a confederation of the various Lines), horrified and ashamed of this pointless genocide, erased all knowledge of the event from historical records and their own memories. Unfortunately, Campion, in a previous circuit, unwittingly uncovered information pertaining to the extermination. Hesperus believes that the ambush at the reunion was seeking to destroy this evidence before it could spread, carried out by a shadow Line known as the "House of Suns", tasked with maintaining the conspiracy. Cadence and Cascade, on the other hand, are racing for a wormhole which leads to the Andromeda Galaxy, to where the few survivors of the First Machines are revealed to have retreated. They plan to release the First Machines back into the Milky Way, thus effecting a revenge against the Commonality for the genocide. As Campion and the shatterlings are pursuing Purslane's hijacked ship, transmissions from Neume confirm that a shatterling within their midst, Galingale, is the traitor and a secret member of the House of Suns. The shatterlings open fire on both Galingale's and Purslane's ships, and while they manage to capture Galingale, they are unable to stop Purslane's ship. Unable to get within weapons range, Campion pursues Purslane's ship for sixty thousand light years, during which time he and Purslane, on their separate ships, are suspended in "abeyance", a form of temporal slowdown or stasis. Despite efforts to stop the hijacked ship from reaching the concealed wormhole by local civilisations, the robot Cascade succeeds in opening the "stardam" enclosing the wormhole and travelling through it to the Andromeda Galaxy. On board Silver Wings of Morning, Hesperus reveals to Campion that while he managed to destroy Cadence before they could leave the Neume star system, Cascade survived and he and Cascade had engaged in a marathon battle, several thousand years. Hesperus was ultimately victorious, but Cascade has fused the ship controls before his defeat and they are past the point of no return. Campion, now the only shatterling still in pursuit, enters the wormhole after them and emerges in the Andromeda Galaxy, a place apparently devoid of all sentient life. In his search for Purslane and her ship, he travels to a star enca

    Read more →
  • Distributed multi-agent reasoning system

    Distributed multi-agent reasoning system

    In artificial intelligence, the distributed multi-agent reasoning system (dMARS) was a platform for intelligent software agents developed at the AAII that makes uses of the belief–desire–intention software model (BDI). The design for dMARS was an extension of the intelligent agent cognitive architecture developed at SRI International called procedural reasoning system (PRS). The most recent incarnation of this framework is the JACK Intelligent Agents platform. == Overview == dMARS was an agent-oriented development and implementation environment written in C++ for building complex, distributed, time-critical systems.

    Read more →