This repository is configured to use the Maven Release Plugin.
Important notes before running a release
-
The project's
<scm>section inpom.xmlmust point to your repository. It has been set to:- connection:
scm:git:git://github.com/nanson10/Boolean_AI.git - developerConnection:
scm:git:ssh://git@github.com:nanson10/Boolean_AI.git - url:
https://github.com/nanson10/Boolean_AI
If you use a different remote URL or organization, update those fields in
pom.xml. - connection:
-
Ensure your local Git
originmatches the SCM location and you have push/tag permissions (SSH keys or appropriate HTTPS credentials).
Using the Maven Release Plugin (recommended workflow)
-
Validate the effective POM and plugin configuration:
mvn help:effective-pom
-
Dry-run prepare (no push) to see what changes will be made locally:
mvn -DskipTests=true release:prepare -DpushChanges=false
-
If the dry-run looks good, perform the actual release prepare (creates a tag and commits version changes):
mvn -DskipTests=true release:prepare
-
Perform the release (checks out the tag and builds/deploys the release):
mvn -DskipTests=true release:perform
Notes and tips
- To skip tests during the release steps, pass
-Darguments='-DskipTests'torelease:performor use-DskipTests=trueon the command line as shown above. - If you prefer the release plugin not to push changes automatically, either set
<pushChanges>false</pushChanges>in the plugin configuration or use-DpushChanges=falseon the command line. - If you're running this in CI, make sure the CI environment has valid credentials and the git workspace is a proper clone (not a shallow or detached state that prevents tagging/pushing).
Need help?
If you'd like, I can run mvn help:effective-pom to validate the POM now, or tweak the plugin config (e.g., change pushChanges) per your preferences.
A Java-based neural network simulator that uses boolean logic to simulate neuron activation patterns. The application can learn to generate sequences through reward/punishment-based training.
- Boolean Matrix Neural Network: Visualize neural activation patterns in real-time
- Manual Mode: Interactive control with manual reward/punishment
- Auto Mode: Automated learning to generate the alphabet sequence (A-Z)
- Real-time Visualization: See neural network state changes as they happen
- Progress Tracking: Monitor learning progress in Auto Mode
- Java 17 or higher
- Maven 3.6 or higher
# Clean and compile
mvn clean compile
# Build executable JAR
mvn clean packageThe executable JAR will be created at: target/boolean_ai-1.0-SNAPSHOT.jar
java -jar target/boolean_ai-1.0-SNAPSHOT.jarThis will launch a GUI dialog where you can choose between:
- Manual Mode: Interactive neural network with manual controls
- Auto Mode: Automated learning to generate alphabet sequence
# Launch the Driver (selection dialog)
mvn exec:java -Dexec.mainClass="nanson.Driver"
# Or run Manual Mode directly
mvn exec:java -Dexec.mainClass="nanson.BooleanMatrixDisplay"
# Or run Auto Mode directly
mvn exec:java -Dexec.mainClass="nanson.AutoGrader"- Each neuron has configurable incoming connections with boolean weights
- Activation is determined by weighted sum of inputs vs. threshold
- The network adjusts its behavior through selective rewiring of poorly-performing neurons
- Click Run Cycle to execute a learning iteration
- View the character output generated from neuron states
- Click Reward if the output is correct (strengthens current neural pathways)
- Click Punish if incorrect (rewires poorly-performing neurons)
- Automatically attempts to learn the alphabet sequence (A, B, C, ... Z)
- Rewards correct characters, punishes incorrect ones
- Tracks current progress and furthest progress achieved
- Continuously cycles until stopped
- Neuron Matrix: Visual representation of neural activation states (green = active, white = inactive)
- Iteration Counter: Shows current/total iterations per cycle
- Activation Percentage: Percentage of neurons currently active
- Threshold Multiplier: Current activation threshold
- Character Display: Current character generated from output neurons
- Progress Tracker (Auto Mode only): Current and furthest learning progress
Default configuration in Constants.java:
- Matrix Size: 20x20 neurons
- Neurons per cycle: 1000
- Incoming connections per neuron: 5
- Result length: 7 bits
src/main/java/nanson/
├── Driver.java # Main entry point with mode selection
├── Simulator.java # Core neural network simulation
├── BooleanMatrixDisplay.java # GUI visualization
├── AutoGrader.java # Automated learning mode
├── Constants.java # Configuration constants
└── Utilities.java # Helper functions
This project is provided as-is for educational purposes.