pip install begump
Every product works the same way: import, call, get results. All local. All deterministic.
from gump.orgxray import scan, scan_csv, scan_org, visualize
# From a CSV file (node_a, node_b per line)
result = scan_csv('connections.csv')
# From an org chart
result = scan_org(
people=['CEO', 'VP_Eng', 'VP_Sales', 'Dev1', 'Dev2', 'Sales1'],
reports_to={'VP_Eng': 'CEO', 'VP_Sales': 'CEO',
'Dev1': 'VP_Eng', 'Dev2': 'VP_Eng', 'Sales1': 'VP_Sales'}
)
print(result['health_score']) # 0-100
print(result['tensions']) # missing connections
print(result['isolates']) # disconnected people
print(result['action_plan']) # what to fix
# Interactive HTML report
html = visualize(result)
with open('report.html', 'w') as f: f.write(html)
from gump.learnengine import LearnEngine
engine = LearnEngine(
topics=['algebra', 'trig', 'calculus', 'stats'],
prerequisites=[('algebra', 'calculus'), ('trig', 'calculus')]
)
# Student answers questions
engine.answer('algebra', correct=True)
engine.answer('algebra', correct=True)
engine.answer('calculus', correct=False)
print(engine.next()) # what to study next
print(engine.gaps()) # knowledge gaps
print(engine.status()) # full state
html = engine.visualize() # interactive dashboard
from gump.foldwatch import foldwatch, analyze, fold
from gump.foldwatch_app import report
# One call — everything
result = foldwatch('DAEFRHDSGYEVHHQKLVFFAEDVGSNKGAIIGLMVGGVVIA', name='Amyloid-beta')
print(result['misfolding_risk']) # medium
print(result['is_disordered']) # True/False
print(result['radius_of_gyration']) # Angstroms
print(result['disulfide_distances']) # 3D verified
# Analyze any amino acid sequence
result = analyze('DAEFRHDSGYEVHHQKLVFFAEDVGSNKGAIIGLMVGGVVIA')
print(result['misfolding_risk']) # low / medium / high
print(result['aggregation_regions']) # hotspots
print(result['secondary_structure']) # H/E/C per residue
print(result['disulfide_candidates']) # Cys-Cys bonds
print(result['net_charge']) # electrostatics
# 3D structure prediction (spectral folding)
structure = fold('FVNQHLCGSHLVEALYLVCGERGFFYTPKT')
print(structure['radius_of_gyration']) # Angstroms
print(structure['coordinates']) # Nx3 C-alpha positions
print(structure['burial_score']) # hydrophobic core quality
print(structure['disulfide_distances'])# Cys-Cys 3D distances
# Interactive HTML report
html = report('FVNQHLCGSHLVEALYLVCGERGFFYTPKT', title='Insulin B')
with open('insulin.html', 'w') as f: f.write(html)
from gump.chipfast import design, design_netlist
from gump.chipfast_app import design_report
# From gates and connections
result = design(
gates=['and', 'or', 'xor', 'buf', 'nand'],
wires=[(0,1), (1,2), (2,3), (3,4), (0,4)]
)
print(result['wire_length']) # total wire length
print(result['positions']) # (x, y) per gate
print(result['missing_connections']) # what wants to connect
# From Verilog-style netlist
result = design_netlist('and g0 (y, a, b); or g1 (z, y, c);')
# Interactive HTML report
html = design_report(['g0','g1','g2'], [(0,1),(1,2)], title='My Circuit')
from gump.aitrainer import AITrainer
trainer = AITrainer('my_model')
for epoch in range(10000):
train(model)
trainer.log(
train_acc=train_accuracy,
test_acc=test_accuracy,
loss=loss_value,
n_params=model.parameter_count()
)
if trainer.should_stop():
print(trainer.recommendation())
break
print(trainer.status()) # phase, savings, energy
html = trainer.visualize() # training dashboard
from gump.knowledge import KnowledgeEngine
engine = KnowledgeEngine()
engine.absorb("The hippocampus is essential for memory formation.")
engine.absorb("Long-term potentiation strengthens synapses.")
engine.absorb("Dopamine drives reward processing and motivation.")
result = engine.recall('memory') # find related concepts
print(result['results']) # ranked by relevance
print(engine.tensions()) # knowledge gaps
print(engine.clusters()) # topic groups
print(engine.status()) # concept count, connections
html = engine.visualize() # knowledge graph
from gump.sensor import UniversalSensor
sensor = UniversalSensor('heart_rate')
sensor.feed([72, 71, 73, 75, 74, 120, 73, 72, 71]) # any numbers
diagnosis = sensor.diagnose()
print(diagnosis['K']) # coupling strength
print(diagnosis['R']) # order parameter
print(diagnosis['T']) # tension (volatility)
print(diagnosis['regime']) # locked/coherent/transitional/volatile/diffuse
print(diagnosis['anomalies']) # spikes
print(diagnosis['recommendation']) # what to do
html = sensor.visualize() # interactive dashboard
from gump.turbo import compile_k, run_native, benchmark # Write K source k_code = """ : x 5 : y 10 + x y sum * x y prod * sum prod result @ result """ # Compile to native binary binary = compile_k(k_code, output='my_program') # Run it result = run_native(binary) print(result) # 750 # Benchmark against Python report = benchmark(k_code) print(report['speedup']) # e.g. 611304x print(report['native_ns']) # nanoseconds per iteration print(report['python_ns']) # Python equivalent time
from gump.trace import Trace
t = Trace()
t.add('A', 'B', 100000) # A sends B $100K
t.add('B', 'C', 95000) # B sends C $95K
t.add('C', 'A', 90000) # C sends A $90K ← circular!
report = t.analyze()
print(report['risk_score']) # 0-100
print(report['circular_flows']) # detected cycles
print(report['wash_trades']) # bidirectional flows
print(report['anomalous_amounts']) # statistical outliers
print(report['concentration']) # single-entity dominance
html = t.visualize() # money flow visualization
from gump.sentinel import Sentinel
s = Sentinel()
s.set_baseline({
'cpu': {'mean': 20, 'std': 5, 'min': 10, 'max': 35, 'samples': 60},
'memory': {'mean': 50, 'std': 3, 'min': 44, 'max': 58, 'samples': 60},
})
# Feed live metrics
s.feed_metrics({'cpu': 22, 'memory': 51})
# Check for anomalies
alerts = s.check({'cpu': 85, 'memory': 92})
for a in alerts:
print(a['metric'], a['severity'], a['zscore'])
# File integrity
s.watch_files(['/etc/passwd', '/var/log/auth.log'])
changes = s.check_integrity()
# Intruder profiling
profile = s.profile_intruder(attack_events)
print(profile['predicted_targets'])
from gump.oracle import Oracle
o = Oracle('monthly_sales')
o.feed([100, 102, 98, 105, 97, 110, 95, 112, 93, 115,
90, 120, 88, 125, 85, 130, 82, 135, 80, 140])
p = o.predict(steps=12)
print(p['forecast']) # next 12 predicted values
print(p['confidence']) # 0-1 how predictable
print(p['frequencies']) # hidden frequencies found
print(p['turning_point']) # is a reversal coming?
print(p['trend_direction']) # rising / falling / flat
# Anomaly detection
anomalies = o.anomalies() # points that don't fit
# Human-readable report
print(o.report())
from gump.accord import Accord
a = Accord('My Company')
a.set_profile({
'industry': 'software', 'state': 'NJ',
'employees': 5, 'handles_data': True,
'accepts_payments': True,
})
# Ingest regulations
a.ingest_regulation(
title='NJ Data Privacy Act',
text='All businesses must implement reasonable security...',
jurisdiction='NJ', effective='2026-07-01',
category='privacy', penalty='$10,000 per violation',
)
# Scan for gaps
print(a.scan()) # compliance gaps found
print(a.action_plan()) # prioritized actions
print(a.deadlines()) # upcoming deadlines
print(a.risk_assessment()) # risk per regulation
print(a.estimate_cost()) # hours and dollars
# Regulatory intelligence
a.ingest_origin('NJ Data Privacy Act', {
'sponsor': 'Senator Turner',
'public_comment': True,
'comment_deadline': '2026-05-01',
})
print(a.counter_strategies('NJ Data Privacy Act'))
print(a.find_exemptions('NJ Data Privacy Act'))
print(a.trace_full('NJ Data Privacy Act'))
# Full dashboard
print(a.dashboard()) # everything in one call
Ask Harmonia — she knows every product.
[email protected] — I answer every email.